LagoLunatic / DSVEdit

Multi-purpose editor for ROM hacking DS and GBA Castlevania games
MIT License
91 stars 12 forks source link

HoD: Layer resizing of initial room corrupts built ROM and forces editor crash on startup #60

Closed 4lorn5 closed 2 years ago

4lorn5 commented 2 years ago

When resizing the initial room's layer size and committing the change, DSVania will keep working as if nothing is wrong, allowing a user to save and build a ROM. However, when opening the editor again, a warning pop-up will suggest otherwise:

Error: BGLayer::LayerReadError: Invalid Layer Size: 16x68

The error is reported and the program will terminate by itself. This change is facilitated by, and made directly through DSVania, yet only produces an error upon exiting and reopening the editor, potentially causing hours of work to be lost as no warning is given otherwise. No external editor or ROM hacking was used to modify the room's size; it was done purely through the editor, reducing layer size to sizes between 2 and 5.

Screenshot:

https://i.ibb.co/vB0KfnJ/Untitled.jpg

LagoLunatic commented 2 years ago

I'm not able to reproduce this. I opened a vanilla HoD ROM, changed the first room's first layer's size to 5x1 instead of 6x1, saved and reopened DSVEdit, and it worked as expected with no crash. I went on to make several other changes to the sizes of various layers in the first room in DSVEdit and reloaded, and it worked as expected each time.

The crash you're getting must be caused by something else you changed besides layer size. This is supported by the fact that, even if you did tell DSVEdit to resize a room to 16x68 it would forcibly cap the size at 15x15 as that is the maximum allowed size.

The only ways I can think of that you could get the error in that screenshot are:

If you want me to see if I can check what the unrelated thing that you pointed at the layer on accident is, create an IPS patch of your hack and upload it somewhere so I can check your project.

LagoLunatic commented 2 years ago

Closing since OP isn't providing any more info