Underrout / callisto

A build-system for Super Mario World projects with a focus on git-compatibility and flexibility.
14 stars 3 forks source link

"ExGFX stored at XXX differ from ExGFX stored in ROM, export ExGFX from the ROM anyway?" crashes #94

Open exedriver opened 9 months ago

exedriver commented 9 months ago

Hey guys, first of all: Thank you sooo much for this awesome tool - I'm using it with the RHR Baserom and it helps so much building levels - really awesome!

However, I'm having troubles with Callisto again and again and I'm not sure, if I do something wrong.

I'm currently working on my 10th level within my hack and I'm facing the following error again and again both on Callisto Rebuild and Update: "ExGFX stored at 'LOCATION OF MY HACK' differ from ExGFX stored in ROM, export ExGFX from the ROM anyway".

Afterwards, Callisto.exe crashes and stops working. Needed to turn on console output and open Calisto in a cmd window on Windows to see the error before it crashes.

Sometimes it works if I extract and insert GFX and exGFX graphics again and delete the temp folder within the workspace before rebuilding, but not very often. Most of the time it crashes again and now I'm afraid that I can't finish my hack.

Any idea what I'm doing wrong? I have around 40 exGFX graphics currently, the GFX graphics haven't been modified on my own.

Thank you very much :)

FYI: I've also opened this issue at the RHR Baserom, see https://github.com/romhackraces/baserom/issues/130

Underrout commented 9 months ago

Are you certain that it actually crashes? You should be prompted to press Y or N alongside that message but the prompt is easy to miss among the other output.

exedriver commented 9 months ago

Yes it crashes. If I start the "Callisto Update" from the Lunar Magic button, the new cmd window opens and closes without resulting in the "Finish - Press Enter to continue"-dialog at the end of each normal run. If I start the callisto.exe from a new cmd window, the process closes after starting the update and I'm back in the folder.

What I should add: I currently get a prompt when I try to update / rebuild:

image

If I say yes, than the process starts (but crashes). I don't know why callisto finds unexported ressources even after I extracted and inserted both GFX & exGFX. Maybe something is cached anywhere? I delete the temp folder within the workspace before running the rebuild / update, but doesn't make any difference.

Underrout commented 9 months ago

If possible, please make a copy of your entire project folder and, if you're comfortable, it'd really help me if I could take a look at it to figure out what's actually causing this/if I can reproduce it on my own computer. If you're ok with doing that my discord is here (idk if the link works, my username is underway). Alternatively, my email is underwayu@gmail.com.

It sounds to me like the program that interacts with Lunar Magic to export resources whenever you save anything is having trouble actually exporting things, which probably results in your (Ex)GFX only partially being exported, if at all.

The window you're seeing appears if Callisto has not ran a successful save on your ROM since you've last edited it. Manually exporting things will not cause it to go away since Callisto inserts a special marker into the ROM to signify that the ROM is "safe" to be overwritten by a build since it knows there is nothing left to export if its marker is intact.

If you are certain that there is nothing in your ROM that you would lose by deleting it and your ExGFX & GFX folders are completely exported, you can try deleting/moving your ROM and doing a Callisto update which might help.

EDIT: It'd also help me to know if there's anything special about your folder or drive, i.e. is it compressed, what file system is it using, etc. since I've always struggled with reproducing this particular type of bug.

exedriver commented 9 months ago

Update: After looking into the issue with @Underrout directly, it seems like the parallel subprocesses while building the ROM are creating this issue. He mentioned that it is planned to make the parallel processing configurable for users like me, who are having problems with it, in a future release.