Sorry to keep you waiting, but I have something to post about! Don't worry, the project is still under development and I've gained even more knowledge on some things, like address that control the tile grass turns into after being chopped, or when to swap a room or tile with another. Basically things that can really only be done with an assembler and a hex editor.
So anyway, I've finished both stages of the warp editor (Currently STILL only a viewer, but not to worry, it will surely be able to edit when I stop slacking). This means we can see what maps have what warps, and exactly where those warps lead to. Here's a screenshot of the editing screens.
On the left is the normal, global room warp, middle is position-specific, and right is side-room. The ones below them are their windows for editing the secondary warp.
Other than warps, it is now possible to edit area properties (Including what area a map gets). I've also fixed an ASM bug with side room loading from warps, since they use groups 6 and 7 instead of 4 and 5, so they were loading improper pointers. But that's all good, and that concludes today's post. Thanks for staying with me so long and bearing my unexpected vacation. Until tomorrow, keep on trollin' (I wonder if BreakingNYC will start again now... Hmm...).
Subscribe to:
Post Comments (Atom)
Are you sure the side warps being loaded from group 6 and 7 is an ASM bug? For one thing, it works the same way in Seasons too. All side scrolling rooms in the game are attributed to these "phantom groups", and I think the purpose is so that side scrolling rooms can be handled differently than regular warps. Also I'm not sure how they are loading the wrong pointers, unless there exists two copies of the same data, and the one that's listed in the 4th and 5th group don't add up or somthing.
ReplyDeleteYes. Keep in mind I wrote a custom ASM script for loading maps a special way. Basically my script would take the value at CC2D, the current map group/region/etc, multiply it by 2, and add that to 0x4000 and read the next two values as a pointer and read map data pointers from there. Obviously since the side rooms are really in groups 4 and 5, it was reading the wrong "pointer", so I had to fix it to read the right one.
ReplyDeleteAlso side rooms aren't the only ones with different warps. Small indoor rooms, or rooms with bit 3 of flag 2 set, also have a minor different loading procedure that leads to the main one. However, my editor won't be loading these but will be described how to edit them using a hex editor (It would be too much work to go through that I really don't wanna do, as I hate my warp editor already).