News: 11 March 2016 - Forum Rules

Author Topic: FF3j Hexcode  (Read 986 times)

warpedDev

  • Jr. Member
  • **
  • Posts: 3
    • View Profile
FF3j Hexcode
« on: November 12, 2020, 09:31:24 pm »
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

  • Hero Member
  • *****
  • Posts: 3239
    • View Profile
Re: FF3j Hexcode
« Reply #1 on: November 13, 2020, 08:52:16 am »
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.