Post by Jason777 on Feb 25, 2013 22:31:34 GMT -5
Currently only for OoT Debug ROM
Tested using Nemu64 and PJ64
Okay, I tried to make this tool as noob-friendly as possible! Let me give you a run down of what this program does...
I think it's safe to assume that every has needed to add a few more actors of objects to a map file but just couldn't get the hang of any tutorials. Well, this tool completely obliterates the need to learn those tutorials and even the need to know how to inject the map file into the ROM. Basically, it does everything for you without you even needing to know anything about the format of the map file, how to fix pointers for the actor list, or where free space in the ROM is. Everything is done for you. List of features:
Possible Bugs:
NOOBS: If you don't like a bunch of information spewing on your computer screen, I would recommend running the program in non-verbose mode. You would do this by typing 'n' when the program asks you "Do you want program's output to be detailed? (y / n) : ".
I included a verbose mode for people who want to see if the program is grabbing information correctly or to learn just exactly what is going while we modify the map file. It's useful for finding errors/debugging.
Also, the program creates a DAT file after it's done making changes to the ROM to let you know where the map file is in the ROM and what space is now free for general use.
The only thing that the user is required to do besides input in the program is to go fix the CRC of the ROM afterwards if you want to use it in an emulator like PJ64 and to specify the actor number, variable, XYZ position, and XYZ rotation using a program like SayakaGL or Utility of Time.
Anyways, here we go! Downloads!
(v1.0) Downlaod: www.mediafire.com/?p6f2ei616bz11me
(v1.0) Source (Developed with Code::Blocks): www.mediafire.com/?ghd5jyrgfmeiffy
(v1.1) Download: www.mediafire.com/?8c3umdr9ptqbs1y
(v1.2) Download: www.mediafire.com/?0zpncm2ll7bwey8
ZAO-ADD v1.3 Download: www.mediafire.com/download/xew8rgxrcjcdbzp/ZAO-ADD_(v1.3).zip
ZAO-ADD v1.3 Source: www.mediafire.com/download/bd43ybd41dnk11d/ZAO-ADD_(v1.3)_Source.zip
^^ WinRAR or 7-Zip to extract
Possible Future Updates:
Sunday, March 03, 2013
ZAO-ADD (v1.1) Download: www.mediafire.com/?8c3umdr9ptqbs1y
^^ Use WinRAR or 7-Zip to extract
I believe I've taken out most of the bugs present in the initial release.
[/LIST]
Things that are going to be present in the next release:
Once I'm finished implementing everything that I had hoped to have in this program, I'll turn it into a JAVA GUI to make it look cleaner and less intimidating. Oh yeah, I've decided that I won't be releasing the updated source code until the final release.
[/quote]
Saturday, April 27, 2013
ZAO-ADD Version 1.2 Release
In this release, there are very few updates:
Command-line Arguments:
Download: www.mediafire.com/?0zpncm2ll7bwey8
I will link to the Master GUI as soon as haddockd has ZAO-ADD implemented.
Friday, July 19, 2013
Alrighty, time for a new release.
July 19, 2013 : Version 1.3 Release
Updates:
Here are the current command-line arguments:
Future Updates:
And here we are...
ZAO-ADD v1.3 Download: www.mediafire.com/download/xew8rgxrcjcdbzp/ZAO-ADD_(v1.3).zip
ZAO-ADD v1.3 Source: www.mediafire.com/download/bd43ybd41dnk11d/ZAO-ADD_(v1.3)_Source.zip
Tested using Nemu64 and PJ64
Okay, I tried to make this tool as noob-friendly as possible! Let me give you a run down of what this program does...
I think it's safe to assume that every has needed to add a few more actors of objects to a map file but just couldn't get the hang of any tutorials. Well, this tool completely obliterates the need to learn those tutorials and even the need to know how to inject the map file into the ROM. Basically, it does everything for you without you even needing to know anything about the format of the map file, how to fix pointers for the actor list, or where free space in the ROM is. Everything is done for you. List of features:
- The ability to add actors or objects to a map file
- The ability to automatically search for free space in the ROM
- If you don't trust the automated space-finder, you can manually define the injection offset
- The ability to automatically inject and fix all pointers pertaining to the map file
- The ability to choose between verbose and non-verbose "modes"
- Writes important data concerning the modified map file to a DAT document
Possible Bugs:
- If the map doesn't contain a 0x01 or 0x0B header command I haven't added any code to insert a new command; the program just closes.
- The automatic free space finder isn't terribly thorough or advanced. It looks for the highest offset found after searching through the scene table, actor table, object table, and general file table; it doesn't try to "squeeze" the map file between other files if there is enough space.
- Even though the though ROM doesn't need it, it updates the file table with a new pointer to the map file. I can see that this may lead to issues if someone tries to compress the ROM since I seriously doubt that the "virtual offsets" and the "physical offsets" should be the same.
- I wouldn't recommend choosing the automated injection offset finder if you happen to have ASM hacks laying around in the ROM after 0x35CE040.
NOOBS: If you don't like a bunch of information spewing on your computer screen, I would recommend running the program in non-verbose mode. You would do this by typing 'n' when the program asks you "Do you want program's output to be detailed? (y / n) : ".
I included a verbose mode for people who want to see if the program is grabbing information correctly or to learn just exactly what is going while we modify the map file. It's useful for finding errors/debugging.
Also, the program creates a DAT file after it's done making changes to the ROM to let you know where the map file is in the ROM and what space is now free for general use.
The only thing that the user is required to do besides input in the program is to go fix the CRC of the ROM afterwards if you want to use it in an emulator like PJ64 and to specify the actor number, variable, XYZ position, and XYZ rotation using a program like SayakaGL or Utility of Time.
Anyways, here we go! Downloads!
ZAO-ADD v1.3 Download: www.mediafire.com/download/xew8rgxrcjcdbzp/ZAO-ADD_(v1.3).zip
ZAO-ADD v1.3 Source: www.mediafire.com/download/bd43ybd41dnk11d/ZAO-ADD_(v1.3)_Source.zip
^^ WinRAR or 7-Zip to extract
Possible Future Updates:
- Add in code to add 0x01 or 0x0B commands if they aren't present in the map file.
Be able to go into alternate map headersAutomatic CRC recalculation.Possible removal of the file table pointer fixing if it causes people too much trouble.- Possibly make a Java GUI for the program and have detailed data be displayed on a seperate console window. This will be a seperate GUI from haddockd's that I will personally develop
Sunday, March 03, 2013
ZAO-ADD (v1.1) Download: www.mediafire.com/?8c3umdr9ptqbs1y
^^ Use WinRAR or 7-Zip to extract
I believe I've taken out most of the bugs present in the initial release.
- You're able to specify whether or not you would like to update the file table pointer if possible (since that can lead to bugs).[/*]
- It automatically updates the ROM CRC if you choose to update the file table pointer.
- You can specify what object values to add.
- It gives all default added actors the value of "Magenta Flame".
Things that are going to be present in the next release:
- The ability to navigate and add actors/objects to alternate map headers.
- Addition of 0x01 or 0x0B commands if they aren't present in the map header.
Once I'm finished implementing everything that I had hoped to have in this program, I'll turn it into a JAVA GUI to make it look cleaner and less intimidating. Oh yeah, I've decided that I won't be releasing the updated source code until the final release.
[/quote]
Saturday, April 27, 2013
ZAO-ADD Version 1.2 Release
In this release, there are very few updates:
- Added in command-line support. You can see the arguments below.
- A GUI has been implemented... sort of. I'm waiting on haddockd
- A readme file has been added (finally).
Command-line Arguments:
ZAO-ADD.exe [ARGUMENTS]
-r [ROM FILE] : Specify a ROM to modify and doesn't do anything if it is the only argument
-s [SCENE NUMBER] : Specify a scene number (if used as the only argument, it prints the number of maps as a decimal number)
-m [MAP NUMBER] : Specify a map number and doesn't return anything if it is the last argument (use in conjunction with -s)
-a : Prints the amount of actors in the specified map as a decimal (use in conjuction with -s and -m)
-o : Prints the amount of objects in the specified map as a decimal (use in conjunction with -s and -m)
-A [ACTOR ADD] : Specify the amount of actors to add (use in conjunction with -s and -m)
-O [OBJECT ADD] : Specify the amount of objects to add (use in conjunction with -s and -m)
-i [OFFSET] : Manually specify an offset to inject at (use in conjunction with -s, -m, and -A/-O)
-f : Try to fix file table offsets if possible (use in conjunction with -s, -m, -A/-O, and/or -i).
For example, say you wanted to find out how many maps were in scene 109:
ZAO-ADD.exe -r ZELOOTMA.Z64 -s 109
Say you wanted to find out how many actors were in scene 109 map 0 (the same could be applied for objects using the -o argument):
ZAO-ADD.exe -r ZELOOTMA.Z64 -s 109 -m 0 -a
Say you wanted to add 2 actors to the actor list in scene 109 map 0 (the same could be applied for objects using the -O argument):
ZAO-ADD.exe -r ZELOOTMA.Z64 -s 109 -m 0 -A 2
Say you wanted to add 2 actors to the actor list in scene 109 map 0 and inject the map at 0x35CE040:
ZAO-ADD.exe -r ZELOOTMA.Z64 -s 109 -m 0 -A 2 -i 0x35CE040
Say you wanted to try to fix the file table entry as well:
ZAO-ADD.exe -r ZELOOTMA.Z64 -s 109 -m 0 -A 2 -i 0x35CE040 -f
Download: www.mediafire.com/?0zpncm2ll7bwey8
I will link to the Master GUI as soon as haddockd has ZAO-ADD implemented.
Friday, July 19, 2013
Alrighty, time for a new release.
July 19, 2013 : Version 1.3 Release
Updates:
- Added in the ability to add actors and objects to alternate headers
- Even more space is able to be freed from the ROM. Yay for free space!
- This is probably the final version of the console application form of this program
- Source code released.
Here are the current command-line arguments:
ZAO-ADD.exe [ARGUMENTS]
-r [ROM FILE] : Specify a ROM to modify and doesn't return anything if it is the only argument
-s [SCENE NUMBER] : Specify a scene number and returns the number of maps as an integer
-m [MAP NUMBER] : Specify a map number and returns the number of alternate headers as an integerĀ
-h [HEADER INDEX] : Specify an alternate header to use and doesn't return anything
-a : Returns the amount of actors in the specified map as an integer
-o : Returns the amount of objects in the specified map as an integer
-A [ACTOR ADD] : Specify the amount of actors to add
-O [OBJECT ADD] : Specify the amount of objects to add
-i [OFFSET] : Manually specify an offset to inject at
-f : Try to fix file table offsets if possible
Future Updates:
- Java GUI
- Add code to be able to add 0x01 and 0x0B commands if they don't exist
- Random bug fixes
- Random optimzations
And here we are...
ZAO-ADD v1.3 Download: www.mediafire.com/download/xew8rgxrcjcdbzp/ZAO-ADD_(v1.3).zip
ZAO-ADD v1.3 Source: www.mediafire.com/download/bd43ybd41dnk11d/ZAO-ADD_(v1.3)_Source.zip