Post by Master Hand on Mar 24, 2009 15:51:10 GMT -5
I've decided to rewrite (from scratch) the tutorial for adding actors to a room for the Ocarina of Time Debug ROM. The one I learned from was a bit difficult to understand, so I wanted to simplify it for others who wish to add actors to rooms. I believe credit goes to BlooDMooN for originally discovering this method of adding actors; if this is an incorrect crediting, please let me know and I will fix it.
Items needed:
-Copy of Debug ROM
-Extracted files from Debug ROM
-Hex Editor (I'm using XVI32)
-Utility of Time
-Hex Calculator
-Patience
To begin, start off by getting the .zmap and .zscene of the rooms you wish to edit (for this tutorial, we'll be using Sutaru, or sutaru_room_0.zmap and sutaru_scene.zscene). It's important to find out how many lines of empty area, or buffer, are between the end of the zmap and the next, as this will help you determine how many actors you can add to that map. Open the zscene and find the end offset of the zmap in the full ROM; it should be near the top of the file.
Following that offset, open the full ROM in the hex editor and jump to the offset from the zscene.
As you can see, there is a large buffer area (it expands beyond the amount shown in the picture), so buffer space won't be a problem for this tutorial. However, it is important to check for other areas, as they might not have as much buffer between the zmaps. Once you have determined that there is enough buffer, open the zmap file in the hex editor. You'll see the following information near the top.
The hex highlighted in red is what tells the game to look for 8 groups starting from the offset 40 in that zmap (0B is the header used to denote group information); the hex highlighted in blue tells the game to look for 1 actor starting from the offset 50 in that zmap (01 is the header for actor information); the hex highlighted in yellow (14, in case you can't see it) ends the actor and group information header. Since we're adding an actor, we'll change the appropriate values in the actor header.
Now, the zmap is looking for the information for 2 actors starting at the offset 72F0, which is right after the end of the zmap normally. Scroll down to the end of the zmap (or just jump to 72E0 if you're too lazy to scroll) and insert two lines at the end of the file. I copied the information for the Dark Link actor, but you can always change the actor(s) later in the Utility of Time.
You're almost finished! Open up the zscene in the hex editor, and relocate the end offset of the zmap in the full ROM you used earlier. Since the zmap now extends 20 hex further than before, you'll have to add 20 hex to the end offset (basically, for every actor you add onto the end of a zmap, you'll have to add 10 hex onto the end offset listed in the zscene for it to be detected ingame).
That's it! You've added an actor to the room. Now, you can edit and place the actor to your liking in Utility of Time (2 Dark Links tend to glitch up when in the same room), insert it into your default ROM, and see the addition for yourself. Congratulations!
NOTE: This method could also be used to add groups to the zmap; just change the offset in the group information header rather than the actor information header.
Once again, credit to BlooDMooN for discovering the method for actor adding, Jisaan for writing the original tutorial, and Arcaith for posting/amending it. This tutorial was brought to you by Master Hand (0Aldaris0 on YouTube).
Items needed:
-Copy of Debug ROM
-Extracted files from Debug ROM
-Hex Editor (I'm using XVI32)
-Utility of Time
-Hex Calculator
-Patience
To begin, start off by getting the .zmap and .zscene of the rooms you wish to edit (for this tutorial, we'll be using Sutaru, or sutaru_room_0.zmap and sutaru_scene.zscene). It's important to find out how many lines of empty area, or buffer, are between the end of the zmap and the next, as this will help you determine how many actors you can add to that map. Open the zscene and find the end offset of the zmap in the full ROM; it should be near the top of the file.
Following that offset, open the full ROM in the hex editor and jump to the offset from the zscene.
As you can see, there is a large buffer area (it expands beyond the amount shown in the picture), so buffer space won't be a problem for this tutorial. However, it is important to check for other areas, as they might not have as much buffer between the zmaps. Once you have determined that there is enough buffer, open the zmap file in the hex editor. You'll see the following information near the top.
The hex highlighted in red is what tells the game to look for 8 groups starting from the offset 40 in that zmap (0B is the header used to denote group information); the hex highlighted in blue tells the game to look for 1 actor starting from the offset 50 in that zmap (01 is the header for actor information); the hex highlighted in yellow (14, in case you can't see it) ends the actor and group information header. Since we're adding an actor, we'll change the appropriate values in the actor header.
Now, the zmap is looking for the information for 2 actors starting at the offset 72F0, which is right after the end of the zmap normally. Scroll down to the end of the zmap (or just jump to 72E0 if you're too lazy to scroll) and insert two lines at the end of the file. I copied the information for the Dark Link actor, but you can always change the actor(s) later in the Utility of Time.
You're almost finished! Open up the zscene in the hex editor, and relocate the end offset of the zmap in the full ROM you used earlier. Since the zmap now extends 20 hex further than before, you'll have to add 20 hex to the end offset (basically, for every actor you add onto the end of a zmap, you'll have to add 10 hex onto the end offset listed in the zscene for it to be detected ingame).
That's it! You've added an actor to the room. Now, you can edit and place the actor to your liking in Utility of Time (2 Dark Links tend to glitch up when in the same room), insert it into your default ROM, and see the addition for yourself. Congratulations!
NOTE: This method could also be used to add groups to the zmap; just change the offset in the group information header rather than the actor information header.
Once again, credit to BlooDMooN for discovering the method for actor adding, Jisaan for writing the original tutorial, and Arcaith for posting/amending it. This tutorial was brought to you by Master Hand (0Aldaris0 on YouTube).