News:

11 March 2016 - Forum Rules

Main Menu

FF3j Hexcode

Started by warpedDev, November 12, 2020, 09:31:24 PM

Previous topic - Next topic

warpedDev

I am working on a ff3j hack and was scrolling through the hexcode(NES Memory) and I got to a few things I don't quite understand (This is my first hack, but I have programming experience). I noticed that lines 002000 through 003FF0 all seem to track the same thing (position, i think, but idk), and line 004000 is constantly changing. How would I figure out what these lines are doing?

FAST6191

https://wiki.nesdev.com/w/index.php/CPU_memory_map and 4000h is https://wiki.nesdev.com/w/index.php/APU . 2000h (repeating through most of it) is https://wiki.nesdev.com/w/index.php/PPU_registers which makes sense for position (or at least on screen position -- some games will have a virtual position on the map as a whole or something similar) as PPU = Picture Processing Unit .

More generally if you can't determine from context (change characters, items, location... and see if it changes) or experimentation (cheats fiddle with memory, change the memory and see what happens) then you play with a debugger. I think we are still suggesting http://fceux.com/web/help/fceux.html?TraceLogger.html has the debugger of choice for NES games but others might have another preference. Set a break on write to that location and the next thing that changes it will see the emulator halt, flash up a section saying this thing tried to write here and this is the last ? instructions and where they were (in ROM, or likely the ROM's position in memory, or in plain RAM if it is a system that copies things to RAM to run). You then either work back up through the instructions or switch to static analysis (larger space to look at that way) to figure out what is doing what.