Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Question: Other hacks #2

Open
AurySystem opened this issue Apr 27, 2019 · 1 comment
Open

Question: Other hacks #2

AurySystem opened this issue Apr 27, 2019 · 1 comment

Comments

@AurySystem
Copy link

What changes would be be necessary to make this compatible with hacks such as Project Base?

@aremath
Copy link
Owner

aremath commented May 2, 2019

The short answer is: a lot of changes.

The longer answer is: it depends on the hack. Probably the vast majority of the work would be rewriting encoding/rooms.txt because the logic is written room-by-room. You would also have to edit encoding/door_defns.txt because the pointers to each of the doors would be hack-specific (same goes for encoding/item_locations.txt and probably some other files hopefully all in encoding/ that I'm forgetting right now).

Additionally there might be some bugs based on door assembly. Right now the randomizer does not handle door ASM at all, which is why there are graphical glitches when loading the Crateria rooms, when exiting Kraid, and why I don't include the Maridia Zip Tube in the set of rooms (because it has ASM on either side that disables your inputs when you enter and re-enables them when you leave). If the hack in question is using door-specific scrolls or door-specific ASM, then my simple method of editing the ROM can easily break a lot of things. With more advanced hacks there can even be custom stuff going on in the background that could be broken by switching the door pointers around.

If things are relatively simple though, you can use SMILE to go through and find all the door pointers (hacks should (?) provide the necessary MDB files for SMILE). To find the other things you spend a lot of time looking at a hex dump of the ROM, although others are finding ways to make that stuff easier (cf. SMART). Eventually something that parses the ROM and can find things like door pointers might be a part of this project, but that is not something I'm currently pursuing. If there's an existing item randomizer, then that code base should have at least the item locations.

aremath pushed a commit that referenced this issue Jan 27, 2020
Merge pull request #5 from randomcodegen/master
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants