Title: Room Event IDs Post by: ArchProctor on June 17, 2013, 04:49:01 PM The IDs and triggers of rooms. Think of triggers as "causes" and IDs as "effects."
Just so you know, when I give a position number, read it as the y-coordinate followed by the x-coordinate. Therefore, "position 32" means y=3 and x=2. You can see the coordinates displayed if you use LALE 1.2 or later. I did compile several of these on my own, but I looked to Jigglysaint's The First Unofficial Link's Awakening DX ROM Hacking Document included with his bitchin' Link's Awakening hack "Nightmare's Illusion (http://www.zophar.net/hacks/gb/zelda-link-s-awakening-dx/the-legend-of-zelda-nightmare-s-illusion.html)" to help me out with many of these. I tested each one myself, and tried to elaborate on some things. Doorway tiles F0-F3 shut when the ID calls for it. If you want a room where some doors close, but not all of them, then use one of the tiles F4-F7 to make a doorway that never closes. If you want all shutter doors in the room to be one-way, then set ID to 2 and trigger to 0. IDs 0: Nothing. 2: Any locked doors open. 4: All enemies die. 6: Chest appears at position 28. 8: Key-drop at position 32.
E: Fairy appears at position 28.
Triggers 0: Nothing. 1: Kill all enemies. 2: Push a single block (tile 0xA7). 3: Step on button.
5: Light two torches. 6: Kill enemies in order of their sprite/object ID (after killing three enemies, the ID is triggered. This is the Pols Voice/Keese/Stalfos puzzle from Bottle Grotto). 7: Push 2 blocks together. They don't both have to be tile A7 (meaning you don't have to push both), but their final position must be horizontal.
9: This is the five-tile puzzle from Lv.4/Angler's Tunnel. You must do two things to get this to work:
E: Fill in the gaps with that rolling thing from Turtle Rock (sprite 0xB1). F: Shoot an arrow at the eye of a statue (tile 0xC0). You can have as many statues as you want; shooting any of them will work. Title: Re: Room Event IDs (Incomplete) Post by: Fatories on June 17, 2013, 07:43:54 PM I never did look much into the event IDs, but like you said there is a list of a decent amount (all the main ones anyway). I do know that ID 1, trigger 0 is used in the entrance of the colour dungeon. Never looked into what it actually does though.
Also trigger 4 is used in the colour dungeon at the very end, where you get the tunic (fairy room). Once again I did not look into exactly what it is, but those are where they are used in the game for sure if you want to look into them. Title: Re: Room Event IDs (Incomplete) Post by: ArchProctor on June 17, 2013, 09:04:02 PM Ah, thanks. Also I can see IDs 3 and 9 are used in that dungeon, so I'll look into all that.
Title: Re: Room Event IDs (Updated 6/26/13; Incomplete) Post by: Jigglysaint on June 30, 2013, 01:49:12 AM For the ID's, every other value is invalid. There are some, like 1 and 9 that work, but otherwise you should only use 0,2,4,6,8,etc because the game's code, unlike the triggers, does not count by twos. That mean that 00 will read the first byte, but 10 will read the second byte, not the third which is the second pointer. My guess is this is just laziness on part of the coders since I don't see why you couldn't have 16 events and 16 triggers. Don't forget that this game is nothing but a glorified rom hack of the original LA.
Title: Re: Room Event IDs (Updated 6/26/13; Incomplete) Post by: ArchProctor on June 30, 2013, 07:13:41 AM Well hello Jigglysaint, thanks for adding to this topic. You obviously know more about...well everything, so hopefully I can ask you some things so I can improve upon this ridiculous list.
For the ID's, every other value is invalid. There are some, like 1 and 9 that work, but otherwise you should only use 0,2,4,6,8,etc Yeah the odd values are a little wonky it seems. I just included them since they all appear to work, albeit with the exact same function, assuming trigger is set to 0. When you say 1 and 9 work, are you talking about how they're present in the Color Dungeon and do appear to have individual functions? I think technically ID 1 (appearing on map F of the Color Dungeon) is simply the chest thing I mentioned so that works alright. ID 3 (map A of CD) seems like it should open a locked door, but I can't get it to work that way in any other environment. ID 9 (map 8 of CD) seems to be a key-drop like ID 8. But again, testing these out in other environments only yields the chest. Speaking of the Color Dungeon, trigger 4 is used in the end room with the fairy, as you surely know. Did you ever look into this at any point? Being at the low value of 4, I wonder why it isn't a "normal" trigger. Hell maybe it does nothing. In one of Nightmare's Illusion's readmes you said trigger 8 was for killing "special enemies." How did you figure this out? Was it by perhaps making unkillable enemies killable via hacking and noticing that it triggered the ID? If so then I guess trigger 8 is useless to users of LALE until we can modify which enemies can and can't be killed. Finally, I cited your readme for NI as the basis for much of this list, but I'll go ahead and edit that post to credit you by name. Was it just you that compiled the room event data, or did others help with that part? Title: Re: Room Event IDs (Updated 6/26/13; Incomplete) Post by: Jigglysaint on July 05, 2013, 03:37:46 AM I believe the only thing I got help on when finding data for LA was finding the special object graphics, but most everything else was my doing. Anyway, what's really happening with all those odd ID values is that the pointer is being read wrong. Usually pointers are set up in such a way that two values are grouped together. In this list however, it increments by one byte only, so only every other value is valid. How the 1, 3 and 9 work is that during the code's excecution, it merely checks to see if those values are set and then excecutes code, rather than reading it straight from the pointer list. Also, yes I did figure out how "8" works by hacking the enemy values, but I also saw that one map in Eagle Tower had the ID value of 48, which how it works is if you kill all the sparks with the boomerang, all the Gibdos die. It's only use in this one spot in the entire game. Actually what kills enemies is the 4, the 8 means the trigger happens when you kill an unkillable enemy. Look at the two values as just being two different enemy groups. That's especially true since enemy weaknesses are stored elsewhere.
So basically, the values 3 and 9 are hardcoded to check for the color dungeon and possibly the room value for it to work. In fact a lot of things are hardcoded into the color dungeon. This game actually contains tons of room specific data that's hardcoded into the game. a good example is event 0D where the smashed chest will appear in the same place, and always have a nightmare key in it no matter where the chest is on screen or what the chest Id actually is. In fact if you look, even 0D doesn't even do anything. All the code is excecuted from the Power Bracelet ASM. Title: Re: Room Event IDs (Updated 6/26/13; Incomplete) Post by: Fatories on July 05, 2013, 04:08:26 AM In fact a lot of things are hardcoded into the color dungeon. This game actually contains tons of room specific data that's hardcoded into the game. The unfortunate truth about LA. There are so many small exceptions with many of the editors because there will constantly be hardcoded checks for a things. If you are actually debugging and hex editing to make a superb hack it isn't the worst thing (certainly not that great by any means), but for making a level editor it is the biggest pain. |