nunuhara / alice-tools

Tools for extracting/editing files from AliceSoft games.
GNU General Public License v2.0
126 stars 19 forks source link

[Dohna Dohna] "Failed to load DCF Base CG" #47

Closed N-SPC700 closed 1 year ago

N-SPC700 commented 1 year ago

Extracting the assets from Dohna Dohna mostly works, but for some reason a lot of the files first in the list give this warning: *WARNING*(../subprojects/libsys4/src/dcf.c:dcf_extract:249): Failed to load DCF base CG [path_to_file] image However, if I let it run for a while, it works mostly fine afterwards. image

Indeed, viewing the files via GUI seem to pull from an existing CG it can seemingly pull from, which seem to be from the portraits used for dialogue. However this makes certain assets seemingly unrippable? I'm not sure what's causing this.

N-SPC700 commented 1 year ago

Update: this quite possibly may not be a bug with the program, I'm trying to understand these file formats better, so my best guess is that since the .dcf files usually rely on a "base" asset of some sort (usually something like a .qnt) this error is thrown if a base .qnt file cannot be found. I don't have any access to any sort of documentation other than the code in libsys4 so it's hard to say.

nunuhara commented 1 year ago

It's a filename encoding bug. It can't find the base CG because the .dcf decoder is doing the base CG lookup with the wrong text encoding for the filename (UTF-8 instead of Shift-JIS).

The fix is simple enough, but I've discovered that .dcf decoding is broken in a different way when the base CG is .pcf format, which happens in Dohna Dohna. Basically, the .pcf format specifies an (x,y) offset and size for the CG which isn't being applied, and that confuses the .dcf decoder because it thinks the base CG has the wrong dimensions.

Another thing I noticed is that a lot of .dcf images are using an image of Kanono as their base CG, which seems wrong. But I think that's probably a quirk of AliceSoft's encoder.

I'll try to fix both of these issues this weekend.

nunuhara commented 1 year ago

This should be fixed now in 0.12.1