Airikita Posted November 1, 2012 Share Posted November 1, 2012 (edited) I was looking into the AI in Zelda OoT from hex (and disassembler) and I've been working on a little value editor for hex values: UPDATE: the tool is complete. It may still need some work, but for now it works... you may need to find out what values you're editing before you start changing them. Here is a hex-to-float converter tool for float values: http://gregstoll.dyn...oll/floattohex/ This makes value-hunting a lot quicker, so I may just keep it as-is until I can figure out what else can be done with it. This tool will generate 100 different values available for changing within the rom. It stores the location per value, and saves directly to the appropriate locations. You can even use the display to record where your value is being edited (which includes the entire 8-digit hex code found). I also added a feature to either save over the file you have open, or save to a completely new file... after creating a new file, saving works by saving over your newly created file. EDIT: I also eliminated any 8080+ values from appearing... editing any of THOSE values will/can cause a BLACK SCREEN OF DEATH during AI operations, whatever that might be. *A new JAL search has been added... may need to be researched on a bit more, I may even split the 2 different JAL searches, but for now I'll leave it as-is. Update (changes): Cleaner display (boxes blanked out with no values) Undo/redo will now work if any mistakes are made (ctrl+z or ctrl+y). Custom value search entry is now available to narrow searching. Searching for floating-point values is now more refined. This will work for both Ocarina of Time and Majora's Mask. Download: http://www.the-gcn.c...a-value-editor/ (Windows/Linux compatible) Alternate download: http://www.filehosting.org/file/details/391383/OcarinaValueEditor.zip *** More details in the description on the download page *** NOTE: This is actually a good learning tool for those interested in ROM hacking, and learning about a few ASM hex values and commands. Comparing the values in this tool to the ones in ROM that you edit will help you understand a bit more about how things are set up. This is mainly for those who can understand a bit more about ASM and their values, for the trickier hacking, but messing around is a good learning curve for anyone willing to take it up. If it takes a while to understand, feel free to ask questions and I'll help out as much as I can! Edited November 6, 2012 by Airikita 1 Link to comment Share on other sites More sharing options...
Kazegaya Posted November 1, 2012 Share Posted November 1, 2012 Looks interesting ! I definitely must improve my skills in order to be able to better understand the inner working of this great game Link to comment Share on other sites More sharing options...
Guest sakura Posted November 2, 2012 Share Posted November 2, 2012 This is actually really useful! I don't know if people will really understand what it's for, so I'd like to jump in and explain a little. Actor files are partially made up R4300i MIPS instructions, one of them being ADDIU. It's an instruction that adds a constant value to a register. What does that mean? It means looking at these instructions give you the hard coded values in the actor. For example, how long a bomb takes before exploding is set intially with an ADDIU instruction if I remember correctly, and Airikita's program here would have it show up. It's hard to figure out what these values are without the context of the instructions that use them, but this does allow editing those values without any knowledge of assembly. Nice work! As for what could be done next with the tool, the best thing I can think of is relocating the file to 0 to find those values as well. Edit: I just also wanted to say, the reason that your "80A?" (it's anything from 8080000 upwards) values crash, is because those aren't actually offsets that exist in RAM. Those are offsets relative to where the file ends up in memory, and that's what I meant when I was talking about relocating. The last thing in an actor file besides the header pointer is relocation data, and you can use it to get these values as well. I can get you documentation if you'd like, this would give you the values that are in the .data and .rodata sections which are usually really interesting to edit. Link to comment Share on other sites More sharing options...
Airikita Posted November 2, 2012 Author Share Posted November 2, 2012 Certainly... I can add more functions to the program that way. I will make note of it for I'm still working on the float values, but I will certainly add it in to the program when I have time. I can make a separate search for values 8080 and up so they don't get mixed with the floating-point values. UPDATE: more bug fixes, and a complete change of how the tool displays the data, and extra functionality has been added. I pumped this tool with everything I got to make it work better. Download v1.21 as v1.2 has/had an issue with the undo/redo which has been fixed. Link to comment Share on other sites More sharing options...
spinout Posted November 6, 2012 Share Posted November 6, 2012 At first I didn't look at this very thoroughly and I thought it was some oddly glorified hex editor. But as sakura said, it is a very useful, interesting tool for tuning the values within actors, in the case that you just want to "tune" an actor rather than disassemble and then reassemble. 1 Link to comment Share on other sites More sharing options...
Airikita Posted November 6, 2012 Author Share Posted November 6, 2012 Yes, this actually gives you JUST the values in an enemy's AI, and sorts them out for easy access. There are still other values it could be looking for, but for now it works like a charm. Link to comment Share on other sites More sharing options...
Jason777 Posted November 6, 2012 Share Posted November 6, 2012 I've been trying to download this but for some reason "I don't have permission to access this file"... I'm quite interested in what you have here Link to comment Share on other sites More sharing options...
Airikita Posted November 6, 2012 Author Share Posted November 6, 2012 Weird, maybe it has to be confirmed first? I don't know why it's preventing downloading... EDIT: here's an alternate download link to the software: http://www.filehosting.org/file/details/391383/OcarinaValueEditor.zip 1 Link to comment Share on other sites More sharing options...
Guest sakura Posted November 7, 2012 Share Posted November 7, 2012 You were right about the file needing approval, I went ahead and approved it for you. Link to comment Share on other sites More sharing options...
Airikita Posted November 7, 2012 Author Share Posted November 7, 2012 You were right about the file needing approval, I went ahead and approved it for you. I see, thank you Sakura. Link to comment Share on other sites More sharing options...
Recommended Posts