THIS IS A WORK IN PROGRESS. IF YOU CAN CONTRIBUTE ANYTHING SUCH AS TESTING THE INFORMATION IT WILL BE APPRECIATED.
The goal of this project is to deconstruct the data table at 0x676a8, which is the entire backbone of BATTLE.BIN. Knowing which routines are loaded will improve speed and knowledge of hacking, meaning we can do even more wondrous things. FDC believes hacks such as being able to cancel Move commands will be easily achieved if this information is decoded.
These are my own notes that I put together in about 3 hours of breakpointing with Write command only. I only hope it's readable for those who need to understand.
0x960e4 change patterns
- this data location seems to be important for some reason. i personally suspect that this number tells
which routine to load to make FFT battles function. Things such as music, menus and all that.
CURRENTLY KNOWN LOAD SPOTS
-0x79c00(BATTLE.BIN)
- This is the area which uses 0x960e4 to set r2 = predetermined location in a data table, which the game then jumps to.
The data table starts at 0x676a8
CURRENTLY KNOWN WRITE SPOTS (STARTS AT THE ORI [unless otherwise noted], WHICH IS THE VALUE STORED)
NOTES: It is currently unknown why 0x960e4 is loaded and saved as a word, instead of a byte.
So far, all write spots have been observed to be single bytes.
0x8c36c - This happened after I accepted a team at Formation. Music had not started yet.
ori r2,r0,0x3a
0x71144 - This happened after music started. I believe the map had not been shown yet. Was in mid-rotation of map if i remember correctly. Please test.
ori r2,r0,0x27
0x70c44 - Pressed confirm while not highlighting any unit, also happens after completing move
ori r2,r0,0x03
0x713d0 - selecting the active unit.
ori r2,r0,0x04
0x71478 - every time you select a unit, and there are choices. For example, selecting one of your own non active units, or checking enemy unit status. Number does not change if you go deeper into the menus
ori r2,r0,0x04
0x715b8 - pressing select to read further information on an action command or status screen. Basically any time while the above is true
ori r2,r0,0x06
0x715f8 - Pressing Cancel on a unit to check how far they can move.
ori r2,r0,0x07
0x71678 - Pressing Triangle to bring up the AT, Unit list and Options. Does not change if you go deeper into the menus unless you select a unit in AT list.
ori r2,r0,0x08
0x716ec - pressing select while in the AT, Unit list and Options. Pressing Select while in Unit List does not change number.
ori r2,r0,0x09
0x71738 - Selecting a unit in the AT list.
ori r2,r0,0x0a
0x717e0 - Pressed "Move" Command
ori r2,r0,0x0c
0x718f4 - Pressed Circle to remove the reminder on how to move a unit, also after removing "Select within movable range" box
ori r2,r0,0x0d
0x7193c - "select within movable range" box appeared. selected tree (unpathable) as movement location. works for spaces outside of range as well
ori r2,r0,0x0f
0x71994 - selected a spot within legal distance (blue square)
ori r2,r0,0x10
0x71ac8 - blue squares disappeared, unit walks to location
ori r2,r0,0x11
0x71b60 - unit finishes walking to location "are you sure you want to move here?" box appears
ori r2,r0,0x12
0x72484 - begin choosing facing for Wait
ori r3,r0,0x13
0x725e8 - Choose Wait action, or Move/Act used up
ori r2,r0,0x14
0x71f30 - confirm move command
ori r2,r0,0x15
0x72b60 - chose "Attack" command
ori r2,r0,0x16
0x74518 - happens right before red boxes appear for targetting
ori r2,r0,0x17
0x74480 - choosing out of range target location
ori r2,r0,0x18
0x743d4 - choosing valid location (red box)
ori r2,r0,0x19
0x745bc - confirming location, "Executing action" box appears
ori r2,r0,0x1b
0x73ff4 - Execute action chosen
ori r2,r0,0x1c
0x74214 - ????happened during Mimic
ori r2,r0,0x1e
0x74b0b - Something about Mimic
sw r17,0x60e4(r1) r17 = 0x1d //(My complete guess is that it's a right hand attack data store)
0x7418c - happens right after choosing Execute
ori r2,r0,0x1e
0x71c9c - happens right after confirming move command, attack command
ori r2,r0,0x25
0x72ae0 - also happens after confirming move command or attack command, happens after 0x71c9c
ori r2,r0,0x26
0x71144 - ???? happened for me before and after Mimic action
ori r2,r0,0x27
0x734d0 - finish Attack command, happened 3x in a row
ori r2,r0,0x28
0x73a78 - ???? Something about Mimic
sw r19,0x60e4(r1) r19 - 0x29
0x73a78 - also happens after executing command, happens after 0x7418c
sw r19,0x60e4(r1) - r19 = 0x29 at the time
0x73fc4 - happens after 0x73a78, unit status at bottom of screen almost completely disappeared. Means one of the previous menus was to hide the unit status
ori r2,r0,0x2a
0x73f74 - ???? Only during Mimic
ori r2,r0,0x2b
0x73bac - unit status compltely gone, unit is about to attack, this section will happen twice for 2 swords attacks
ori r2,r0,0x2c
0x72bf4 - happens right after 0x73bac, unit attacks, this section will happen twice for 2 swords attacks
ori r2,r0, 0x2d
0x732cc - attack finishes, this section will happen twice for 2 swords attacks
ori r2,r0,0x2e
0x72cec - unit stands straight, break happened twice in a row, goes back to 0x73bac for 2 swords
ori r2,r0,0x2f
The goal of this project is to deconstruct the data table at 0x676a8, which is the entire backbone of BATTLE.BIN. Knowing which routines are loaded will improve speed and knowledge of hacking, meaning we can do even more wondrous things. FDC believes hacks such as being able to cancel Move commands will be easily achieved if this information is decoded.
These are my own notes that I put together in about 3 hours of breakpointing with Write command only. I only hope it's readable for those who need to understand.
0x960e4 change patterns
- this data location seems to be important for some reason. i personally suspect that this number tells
which routine to load to make FFT battles function. Things such as music, menus and all that.
CURRENTLY KNOWN LOAD SPOTS
-0x79c00(BATTLE.BIN)
- This is the area which uses 0x960e4 to set r2 = predetermined location in a data table, which the game then jumps to.
The data table starts at 0x676a8
CURRENTLY KNOWN WRITE SPOTS (STARTS AT THE ORI [unless otherwise noted], WHICH IS THE VALUE STORED)
NOTES: It is currently unknown why 0x960e4 is loaded and saved as a word, instead of a byte.
So far, all write spots have been observed to be single bytes.
0x8c36c - This happened after I accepted a team at Formation. Music had not started yet.
ori r2,r0,0x3a
0x71144 - This happened after music started. I believe the map had not been shown yet. Was in mid-rotation of map if i remember correctly. Please test.
ori r2,r0,0x27
0x70c44 - Pressed confirm while not highlighting any unit, also happens after completing move
ori r2,r0,0x03
0x713d0 - selecting the active unit.
ori r2,r0,0x04
0x71478 - every time you select a unit, and there are choices. For example, selecting one of your own non active units, or checking enemy unit status. Number does not change if you go deeper into the menus
ori r2,r0,0x04
0x715b8 - pressing select to read further information on an action command or status screen. Basically any time while the above is true
ori r2,r0,0x06
0x715f8 - Pressing Cancel on a unit to check how far they can move.
ori r2,r0,0x07
0x71678 - Pressing Triangle to bring up the AT, Unit list and Options. Does not change if you go deeper into the menus unless you select a unit in AT list.
ori r2,r0,0x08
0x716ec - pressing select while in the AT, Unit list and Options. Pressing Select while in Unit List does not change number.
ori r2,r0,0x09
0x71738 - Selecting a unit in the AT list.
ori r2,r0,0x0a
0x717e0 - Pressed "Move" Command
ori r2,r0,0x0c
0x718f4 - Pressed Circle to remove the reminder on how to move a unit, also after removing "Select within movable range" box
ori r2,r0,0x0d
0x7193c - "select within movable range" box appeared. selected tree (unpathable) as movement location. works for spaces outside of range as well
ori r2,r0,0x0f
0x71994 - selected a spot within legal distance (blue square)
ori r2,r0,0x10
0x71ac8 - blue squares disappeared, unit walks to location
ori r2,r0,0x11
0x71b60 - unit finishes walking to location "are you sure you want to move here?" box appears
ori r2,r0,0x12
0x72484 - begin choosing facing for Wait
ori r3,r0,0x13
0x725e8 - Choose Wait action, or Move/Act used up
ori r2,r0,0x14
0x71f30 - confirm move command
ori r2,r0,0x15
0x72b60 - chose "Attack" command
ori r2,r0,0x16
0x74518 - happens right before red boxes appear for targetting
ori r2,r0,0x17
0x74480 - choosing out of range target location
ori r2,r0,0x18
0x743d4 - choosing valid location (red box)
ori r2,r0,0x19
0x745bc - confirming location, "Executing action" box appears
ori r2,r0,0x1b
0x73ff4 - Execute action chosen
ori r2,r0,0x1c
0x74214 - ????happened during Mimic
ori r2,r0,0x1e
0x74b0b - Something about Mimic
sw r17,0x60e4(r1) r17 = 0x1d //(My complete guess is that it's a right hand attack data store)
0x7418c - happens right after choosing Execute
ori r2,r0,0x1e
0x71c9c - happens right after confirming move command, attack command
ori r2,r0,0x25
0x72ae0 - also happens after confirming move command or attack command, happens after 0x71c9c
ori r2,r0,0x26
0x71144 - ???? happened for me before and after Mimic action
ori r2,r0,0x27
0x734d0 - finish Attack command, happened 3x in a row
ori r2,r0,0x28
0x73a78 - ???? Something about Mimic
sw r19,0x60e4(r1) r19 - 0x29
0x73a78 - also happens after executing command, happens after 0x7418c
sw r19,0x60e4(r1) - r19 = 0x29 at the time
0x73fc4 - happens after 0x73a78, unit status at bottom of screen almost completely disappeared. Means one of the previous menus was to hide the unit status
ori r2,r0,0x2a
0x73f74 - ???? Only during Mimic
ori r2,r0,0x2b
0x73bac - unit status compltely gone, unit is about to attack, this section will happen twice for 2 swords attacks
ori r2,r0,0x2c
0x72bf4 - happens right after 0x73bac, unit attacks, this section will happen twice for 2 swords attacks
ori r2,r0, 0x2d
0x732cc - attack finishes, this section will happen twice for 2 swords attacks
ori r2,r0,0x2e
0x72cec - unit stands straight, break happened twice in a row, goes back to 0x73bac for 2 swords
ori r2,r0,0x2f