Difference between revisions of "BATTLE.BIN Routines"
Jump to navigation
Jump to search
("Free Cursor Controller Input" was attached to the wrong routine. Moved it to the line with its routine and enabled the link to the existing page for routine 0x00074bf8) |
m (→Action Phase Control Related: Titled the routine at 0x740d4) |
||
(88 intermediate revisions by 7 users not shown) | |||
Line 1: | Line 1: | ||
+ | [[BATTLE.BIN Data Tables]] | ||
+ | ==Animation & Display== | ||
00067000 - 00067794: Return Addresses | 00067000 - 00067794: Return Addresses | ||
00067798 - 0006780c: ??? some data | 00067798 - 0006780c: ??? some data | ||
Line 5: | Line 7: | ||
000683d4 - 000683e0: [[Store AT list ID = 0]] | 000683d4 - 000683e0: [[Store AT list ID = 0]] | ||
000683e4 - 00068414: [[Transfer Unit's X/Y/Map Level]] | 000683e4 - 00068414: [[Transfer Unit's X/Y/Map Level]] | ||
− | 00068418 - 00068490: [[X/Y Data Gathering for Attacks | + | 00068418 - 00068490: [[X/Y Data Gathering for Attacks]] |
00068494 - 00068530: [[Store Palette data for each unit]] | 00068494 - 00068530: [[Store Palette data for each unit]] | ||
00068534 - 00068630: [[Palette modification based on team]] | 00068534 - 00068630: [[Palette modification based on team]] | ||
Line 14: | Line 16: | ||
00068794 - 000687a0: [[Clear AT list ID]] | 00068794 - 000687a0: [[Clear AT list ID]] | ||
000687a4 - 000687b8: [[Clear 960f8 and 960fc]] | 000687a4 - 000687b8: [[Clear 960f8 and 960fc]] | ||
− | 000687bc - 000687dc: [[ | + | 000687bc - 000687dc: [[Setup Secondary effect initialise table]] |
000687e0 - 00068948: [[Set evade special effects based on Evade Type]] Weapon Break, Golem Hand, etc. | 000687e0 - 00068948: [[Set evade special effects based on Evade Type]] Weapon Break, Golem Hand, etc. | ||
0006894c - 000689a0: [[Set evade type data and weapon element effect]] | 0006894c - 000689a0: [[Set evade type data and weapon element effect]] | ||
000689a4 - 00068a1c: [[Set evade type data, item and throw stone hardcoding]] | 000689a4 - 00068a1c: [[Set evade type data, item and throw stone hardcoding]] | ||
− | 00068a20 - 00068a70: [[ | + | 00068a20 - 00068a70: [[Set Secondary Effect Struct]] |
− | 00068a74 - 00068a90: [[ | + | 00068a74 - 00068a90: [[Zodiac Poof: Set Secondary Effect Struct]] |
− | 00068a94 - 00068ab0: [[ | + | 00068a94 - 00068ab0: [[Death Smoke: Set Secondary Effect Struct]] |
− | 00068ab4 - 00068ad0: [[ | + | 00068ab4 - 00068ad0: [[Level Up: Set Secondary Effect Struct]] |
− | 00068ad4 - 00068af0: [[ | + | 00068ad4 - 00068af0: [[Venom Trap: Set Secondary Effect Struct]] |
− | 00068af4 - 00068b10: [[ | + | 00068af4 - 00068b10: [[Splash: Set Secondary Effect Struct]] |
− | 00068b14 - 00068b30: [[ | + | 00068b14 - 00068b30: [[Fall Dust Cloud: Set Secondary Effect Struct]] |
− | 00068b34 - 00068b50: [[ | + | 00068b34 - 00068b50: [[Teleport: Set Secondary Effect Struct]] |
00068b54 - 00068b90: [[Set targets animation 1]] based on attack type | 00068b54 - 00068b90: [[Set targets animation 1]] based on attack type | ||
00068b94 - 00068bd0: [[Set targets animation 2]] based on attack type | 00068b94 - 00068bd0: [[Set targets animation 2]] based on attack type | ||
Line 31: | Line 33: | ||
00068c18 - 00068c7c: [[Set Bow Hardcoding]] | 00068c18 - 00068c7c: [[Set Bow Hardcoding]] | ||
00068c80 - 00068cc0: [[Call Bow Hardcoding routine]] | 00068c80 - 00068cc0: [[Call Bow Hardcoding routine]] | ||
− | 00068cc4 - 00068d04: [[Call Bow Hardcoding routine Copy | + | 00068cc4 - 00068d04: [[Call Bow Hardcoding routine Copy]] |
00068d08 - 00068e2c: [[Status/sprite transformation/animation display setting]] | 00068d08 - 00068e2c: [[Status/sprite transformation/animation display setting]] | ||
00068e30 - 00068e54: [[Update Status/Sprite/Animation Display By Unit Misc ID]] | [[Jump to 68d08]] | 00068e30 - 00068e54: [[Update Status/Sprite/Animation Display By Unit Misc ID]] | [[Jump to 68d08]] | ||
00068e58 - 00068e7c: [[Jump to 68d08 2]] | 00068e58 - 00068e7c: [[Jump to 68d08 2]] | ||
− | 00068e80 - 000690f4: [[Special Status Flag Enabling | + | 00068e80 - 000690f4: [[Special Status Flag Enabling]] |
000690f8 - 0006912c: [[Jump to set item graphic/palette]] (83758) | 000690f8 - 0006912c: [[Jump to set item graphic/palette]] (83758) | ||
[[00069130 - 00069250]]: | [[00069130 - 00069250]]: | ||
00069254 - 000692b8: [[Set some data for Mounted Units]] | 00069254 - 000692b8: [[Set some data for Mounted Units]] | ||
− | 000692bc - 00069338: [[ | + | 000692bc - 00069338: [[0x692bc]] (WalkTo Animation inner routine for Mounted units?) | [[Set Animation/Facing for Mounted Units]] |
[[0006933c - 000693f0]]: | [[0006933c - 000693f0]]: | ||
[[000693f4 - 000694d4]]: | [[000693f4 - 000694d4]]: | ||
Line 64: | Line 66: | ||
0006ba38 - 0006bad4: [[Palette adjustment based on Tile Type]] | 0006ba38 - 0006bad4: [[Palette adjustment based on Tile Type]] | ||
[[0006bad8 - 0006bbf8]]: | [[0006bad8 - 0006bbf8]]: | ||
− | 0006bbfc - 0006bce0: [[Store Coordinate,Mount,Animation Data]] | [[ | + | 0006bbfc - 0006bce0: [[Store Coordinate,Mount,Animation Data]] | [[0x6bbfc]] |
[[0006bce4 - 0006bda4]]: | [[0006bce4 - 0006bda4]]: | ||
[[0006bda8 - 0006be88]]: | [[0006bda8 - 0006be88]]: | ||
[[0006be8c - 0006c020]]: | [[0006be8c - 0006c020]]: | ||
− | [[0006c024 - 0006c2b8]]: [[ | + | [[0006c024 - 0006c2b8]]: [[0x6c024]] |
[[0006c2bc - 0006c31c]]: | [[0006c2bc - 0006c31c]]: | ||
[[0006c320 - 0006c3d4]]: | [[0006c320 - 0006c3d4]]: | ||
Line 77: | Line 79: | ||
[[0006c878 - 0006c948]]: | [[0006c878 - 0006c948]]: | ||
[[0006c94c - 0006ca38]]: | [[0006c94c - 0006ca38]]: | ||
− | 0006ca3c - 0006cacc | + | [[0006ca3c - 0006cacc]]: |
[[0006cad0 - 0006cbb4]]: | [[0006cad0 - 0006cbb4]]: | ||
[[0006cbb8 - 0006cc90]]: | [[0006cbb8 - 0006cc90]]: | ||
Line 90: | Line 92: | ||
0006d7c4 - 0006d7e0: [[Call Initialize Units Coordinates, Animation, Facing ]] | 0006d7c4 - 0006d7e0: [[Call Initialize Units Coordinates, Animation, Facing ]] | ||
[[0006d7e4 - 0006d814]]: | [[0006d7e4 - 0006d814]]: | ||
− | + | 0006d818 - 0006db0c: [[Process Single Unit Movement]] | |
0006db10 - 0006dc88: [[Knockback Processing]] | 0006db10 - 0006dc88: [[Knockback Processing]] | ||
− | 0006dc8c - 0006dda8: [[Knockback with bows | + | 0006dc8c - 0006dda8: [[Knockback with bows]] |
0006ddac - 0006dde8: [[Transfer Target Coordinates (knockback)]] knockback with bows? | 0006ddac - 0006dde8: [[Transfer Target Coordinates (knockback)]] knockback with bows? | ||
+ | |||
+ | ==Free Cursor & Inputs During== | ||
0006ddec - 0006e558: [[free cursor input related]] | 0006ddec - 0006e558: [[free cursor input related]] | ||
0006e55c - 0006e5bc: [[Store Name and data of unit selected by cursor]] | 0006e55c - 0006e5bc: [[Store Name and data of unit selected by cursor]] | ||
Line 103: | Line 107: | ||
0006eef0 - 0006eefc: [[Set Game Flow Variable to 0]] | 0006eef0 - 0006eefc: [[Set Game Flow Variable to 0]] | ||
[[0006ef00 - 0006f138]]: | [[0006ef00 - 0006f138]]: | ||
− | 0006f13c - 0006f170: [[Rotate Map ( | + | 0006f13c - 0006f170: [[Rotate Map (L1) 2]] L1 controller input |
− | 0006f174 - 0006f1a4: [[Rotate Map ( | + | 0006f174 - 0006f1a4: [[Rotate Map (L1)]] |
− | 0006f1a8 - 0006f1dc: [[Rotate Map ( | + | 0006f1a8 - 0006f1dc: [[Rotate Map (R1) 2]] R1 Controller input |
− | 0006f1e0 - 0006f214: [[Rotate Map ( | + | 0006f1e0 - 0006f214: [[Rotate Map (R1)]] |
− | + | 0006f218 - 0006f288: [[L1 and R1 rotation]] | |
[[0006f28c - 0006f31c]]: | [[0006f28c - 0006f31c]]: | ||
[[0006f320 - 0006f4ac]]: | [[0006f320 - 0006f4ac]]: | ||
− | + | 0006f4b0 - 0006f5b8: [[Change Map Zoom 2]] | |
− | + | 0006f5bc - 0006f630: [[Player Camera Zoom]] (L1 Button) | |
0006f634 - 0006f674: [[Change Map Zoom]] (L2 Controller Input) | 0006f634 - 0006f674: [[Change Map Zoom]] (L2 Controller Input) | ||
− | + | 0006f678 - 0006f7c0: [[Camera Zoom Related (0x6f678)]] | |
− | + | 0006f7c4 - 0006f8c4: [[Tilt Map/Zoom 2]] | |
[[0006f8c8 - 0006f964]]: | [[0006f8c8 - 0006f964]]: | ||
0006f968 - 0006f9a8: [[Tilt Map/Zoom]](R2 Controller Input) | 0006f968 - 0006f9a8: [[Tilt Map/Zoom]](R2 Controller Input) | ||
Line 126: | Line 130: | ||
[[000702e4 - 0007063c]]: | [[000702e4 - 0007063c]]: | ||
[[00070640 - 000707c0]]: | [[00070640 - 000707c0]]: | ||
− | + | ||
+ | ==Input & Between Actions== | ||
+ | 000707c4 - 0007081c: [[Process Unit Movement]] | ||
00070820 - 00070994: [[Some Tile - map rotation interaction]] | 00070820 - 00070994: [[Some Tile - map rotation interaction]] | ||
00070998 - 000709f8: [[Set casting unit ID = FF 2]] | 00070998 - 000709f8: [[Set casting unit ID = FF 2]] | ||
Line 134: | Line 140: | ||
00070c04 - 00070c74: [[Set next script = action menus]]Pressed confirm while not highlighting any unit, also happens after completing move | 00070c04 - 00070c74: [[Set next script = action menus]]Pressed confirm while not highlighting any unit, also happens after completing move | ||
// Stores Script 0x03 | // Stores Script 0x03 | ||
− | + | 00070c78 - 00070cd8: [[Store next Battle flow script = 1]] (Select pressed during free cursor) | |
− | + | [[00070cdc - 00070d14]]: | |
[[00070d18 - 00070dd8]]: | [[00070d18 - 00070dd8]]: | ||
[[00070ddc - 00070e20]]: | [[00070ddc - 00070e20]]: | ||
Line 146: | Line 152: | ||
[[000712d8 - 00071348]]: | [[000712d8 - 00071348]]: | ||
0007134c - 0007139c: [[Highlight units based on team]] (Square pressed during free cursor) | 0007134c - 0007139c: [[Highlight units based on team]] (Square pressed during free cursor) | ||
− | 000713a0 - 00071430: | + | [[000713a0 - 00071430]]: Menu stuff? - selecting the active unit. |
// Stores Script 0x04 | // Stores Script 0x04 | ||
− | [[00071434 - 000714f0]]:- 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 | + | [[00071434 - 000714f0]]: - 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 |
// Stores Script 0x04 | // Stores Script 0x04 | ||
− | 000714f4 - 000715a4: | + | [[000714f4 - 000715a4]]: Menu stuff |
− | [[000715a8 - 000715e4]]:- pressing select to read further information on an action command or status screen. Basically any time while the above is true- Pressing Cancel on a unit to check how far they can move. | + | [[000715a8 - 000715e4]]: - pressing select to read further information on an action command or status screen. Basically any time while the above is true- Pressing Cancel on a unit to check how far they can move. |
// Stores Script 0x06, 0x07 | // Stores Script 0x06, 0x07 | ||
[[000715e8 - 00071664]]: | [[000715e8 - 00071664]]: | ||
− | [[00071668 - 00071698]]:- 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. | + | [[00071668 - 00071698]]: - 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. |
// Stores Script 0x08 | // Stores Script 0x08 | ||
[[0007169c - 000716d8]]: | [[0007169c - 000716d8]]: | ||
− | [[000716dc - 00071718]]:- pressing select while in the AT, Unit list and Options. Pressing Select while in Unit List does not change number. | + | [[000716dc - 00071718]]: - pressing select while in the AT, Unit list and Options. Pressing Select while in Unit List does not change number. |
// Stores Script 0x09 | // Stores Script 0x09 | ||
− | 0007171c - 000717c8: [[Get next acting unit | + | 0007171c - 000717c8: [[Get next acting unit]] - Selecting a unit in the AT list. |
// Stores Script 0x0a | // Stores Script 0x0a | ||
− | [[000717cc - 00071820]]:- Pressed "Move" Command | + | [[000717cc - 00071820]]: - Pressed "Move" Command |
// Stores Script 0x0c | // Stores Script 0x0c | ||
[[00071824 - 00071878]]: | [[00071824 - 00071878]]: | ||
− | [[0007187c - 00071928]]:- Pressed Circle to remove the reminder on how to move a unit, also after removing "Select within movable range" box | + | [[0007187c - 00071928]]: - Pressed Circle to remove the reminder on how to move a unit, also after removing "Select within movable range" box |
// Stores Script 0x0d | // Stores Script 0x0d | ||
− | [[0007192c - 00071980]]:- "select within movable range" box appeared. selected tree (unpathable) as movement location. works for spaces outside of range as well | + | [[0007192c - 00071980]]: -"select within movable range" box appeared. selected tree (unpathable) as movement location. works for spaces outside of range as well |
// Stores Script 0x0f | // Stores Script 0x0f | ||
[[00071984 - 00071a78]]: - selected a spot within legal distance (blue square) | [[00071984 - 00071a78]]: - selected a spot within legal distance (blue square) | ||
// Stores Script 0x10 | // Stores Script 0x10 | ||
[[00071a7c - 00071ab4]]: | [[00071a7c - 00071ab4]]: | ||
− | [[00071ab8 - 00071b48]]:- blue squares disappeared, unit walks to location | + | [[00071ab8 - 00071b48]]: - blue squares disappeared, unit walks to location |
// Stores Script 0x11 | // Stores Script 0x11 | ||
[[00071b4c - 00071c88]]: - unit finishes walking to location "are you sure you want to move here?" box appears | [[00071b4c - 00071c88]]: - unit finishes walking to location "are you sure you want to move here?" box appears | ||
Line 178: | Line 184: | ||
// Stores Script 0x25 | // Stores Script 0x25 | ||
[[00071cec - 00071de4]]: | [[00071cec - 00071de4]]: | ||
− | + | ||
− | + | ==Post Action Menuing== | |
+ | 00071de8 - 00071e64: [[Level up animation and report]] | ||
+ | 00071e68 - 00071ee4: [[Post Movement Display]]- confirm move command | ||
00071ee8 - 000723d0: [[Main Post Movement ]] | 00071ee8 - 000723d0: [[Main Post Movement ]] | ||
// Stores Script 0x15 | // Stores Script 0x15 | ||
Line 188: | Line 196: | ||
// Stores Script 0x14 | // Stores Script 0x14 | ||
[[00072674 - 00072708]]: | [[00072674 - 00072708]]: | ||
+ | |||
+ | ==Some Attack related Display Processing== | ||
0007270c - 00072738: [[Turn sprite towards attack]] | 0007270c - 00072738: [[Turn sprite towards attack]] | ||
− | 0007273c - 00072924: [[Movement/action direction setting | + | 0007273c - 00072924: [[Movement/action direction setting]] |
− | 00072928 - 00072a0c: [[Rider/Mount X/Y/Facing Setting | + | 00072928 - 00072a0c: [[Rider/Mount X/Y/Facing Setting]] |
[[00072a10 - 00072a84]]: | [[00072a10 - 00072a84]]: | ||
− | 00072a88 - 00072acc: [[Check if Facing Needs Changed | + | 00072a88 - 00072acc: [[Check if Facing Needs Changed]] |
[[00072ad0 - 00072b10]]: - also happens after confirming move command or attack command, happens after 0x71c9c | [[00072ad0 - 00072b10]]: - also happens after confirming move command or attack command, happens after 0x71c9c | ||
// Stores Script 0x26 | // Stores Script 0x26 | ||
Line 200: | Line 210: | ||
- happens right after 0x73bac, unit attacks, this section will happen twice for 2 swords attacks | - happens right after 0x73bac, unit attacks, this section will happen twice for 2 swords attacks | ||
// Stores Script 0x2d | // Stores Script 0x2d | ||
− | 00072bf0 - 00072ce4: [[Set item/throw stone ability display stuff | + | 00072bf0 - 00072ce4: [[Set item/throw stone ability display stuff]] |
− | [[00072ce8 - 00072d88]]:- unit stands straight, break happened twice in a row, goes back to 0x73bac for 2 swords | + | [[00072ce8 - 00072d88]]: - unit stands straight, break happened twice in a row, goes back to 0x73bac for 2 swords |
ori r2,r0,0x2f | ori r2,r0,0x2f | ||
// Stores SCript 0x2f | // Stores SCript 0x2f | ||
00072d8c - 00073160: [[Set_Post_Effect_Messages_data]] | 00072d8c - 00073160: [[Set_Post_Effect_Messages_data]] | ||
− | 00073164 - 000731d4 :[[Prep_Targets_Post_Action_message]] | + | 00073164 - 000731d4: [[Prep_Targets_Post_Action_message]] |
[[000731d8 - 0007324c]]: | [[000731d8 - 0007324c]]: | ||
[[00073250 - 000732c4]]: | [[00073250 - 000732c4]]: | ||
000732c8 - 000734c8: [[Battle Message Display]]- attack finishes, this section will happen twice for 2 swords attacks | 000732c8 - 000734c8: [[Battle Message Display]]- attack finishes, this section will happen twice for 2 swords attacks | ||
// Stores Script 0x2e | // Stores Script 0x2e | ||
− | + | 000734cc - 00073634: [[Some post action (including learn on hit setup)]] - finish Attack command, happened 3x in a row | |
// Stores Script 0x28 | // Stores Script 0x28 | ||
[[00073638 - 000736d0]]: | [[00073638 - 000736d0]]: | ||
000736d4 - 000739c8: [[Ability effect calculations]] critical hit, reflect, etc. | 000736d4 - 000739c8: [[Ability effect calculations]] critical hit, reflect, etc. | ||
+ | |||
+ | ==Action Phase Control Related== | ||
000739cc - 00073b98: [[Action phase control]]- ???? Something about Mimic- also happens after executing command, happens after 0x7418c | 000739cc - 00073b98: [[Action phase control]]- ???? Something about Mimic- also happens after executing command, happens after 0x7418c | ||
// Stores Script 0x29 | // Stores Script 0x29 | ||
Line 221: | Line 233: | ||
00073eec - 00073fb4: [[Set damage display type based on ability]] - ???? Only during Mimic | 00073eec - 00073fb4: [[Set damage display type based on ability]] - ???? Only during Mimic | ||
// Stores Script 0x2b (Return from mimic?) | // Stores Script 0x2b (Return from mimic?) | ||
− | [[00073fb8 - 00073fdc]]:- happens after 0x73a78, unit status at bottom of screen almost completely disappeared. Means one of the previous menus was to hide the unit status | + | [[00073fb8 - 00073fdc]]: - happens after 0x73a78, unit status at bottom of screen almost completely disappeared. Means one of the previous menus was to hide the unit status |
// Stores Script 0x2a | // Stores Script 0x2a | ||
00073fe0 - 00074064: [[Store animation and facing based on animation flag 1]]- Execute action chosen | 00073fe0 - 00074064: [[Store animation and facing based on animation flag 1]]- Execute action chosen | ||
// Stores Script 0x1c | // Stores Script 0x1c | ||
[[00074068 - 000740d0]]: | [[00074068 - 000740d0]]: | ||
− | [[000740d4 - 00074200]]: - happens right after | + | [[000740d4 - 00074200]]: - [[Execute Ability]] - happens right after pressing Execute |
// Stores Script 0x1e | // Stores Script 0x1e | ||
− | [[00074204 - 000742c4]]:- ????happened during Mimic | + | [[00074204 - 000742c4]]: - ????happened during Mimic |
// Stores Script 0x1e | // Stores Script 0x1e | ||
[[000742c8 - 00074304]]: | [[000742c8 - 00074304]]: | ||
− | + | 00074308 - 0007446c: [[Select Target Tile]] choosing valid location (red box) | |
// Stores Script 0x19 | // Stores Script 0x19 | ||
− | [[00074470 - 000744c4]]:- choosing out of range target location | + | [[00074470 - 000744c4]]: - choosing out of range target location |
// Stores Script 0x18 | // Stores Script 0x18 | ||
[[000744c8 - 000745a8]]: - happens right before red boxes appear for targetting | [[000744c8 - 000745a8]]: - happens right before red boxes appear for targetting | ||
Line 251: | Line 263: | ||
[[00074b18 - 00074b34]]: | [[00074b18 - 00074b34]]: | ||
[[00074b38 - 00074b64]]: | [[00074b38 - 00074b64]]: | ||
+ | |||
+ | ==Main BATTLE.BIN Loop== | ||
[[00074b68 - 00074ba8]]: | [[00074b68 - 00074ba8]]: | ||
− | + | 00074bac - 00074bf4: [[Free Cursor Controller Input]] | |
[[00074bf8 - 00074dcc]]: | [[00074bf8 - 00074dcc]]: | ||
// Script 0x00 | // Script 0x00 | ||
− | 00074dd0 - 00074e28: | + | [[00074dd0 - 00074e28]]: Get Tile Information when Select is pressed |
// Script 0x01 | // Script 0x01 | ||
[[00074e2c - 00074e90]]: Controller input related | [[00074e2c - 00074e90]]: Controller input related | ||
Line 261: | Line 275: | ||
[[00074e94 - 00074f58]]: Action Menus | [[00074e94 - 00074f58]]: Action Menus | ||
// Script 0x03 | // Script 0x03 | ||
− | 00074f5c - 0007530c: | + | 00074f5c - 0007530c: [[Decide what to do based on skillset/ability selections]] |
// Script 0x04 | // Script 0x04 | ||
00075310 - 000755f8: [[Set move/act based on skillset]] mainly for defend/eq.change - also sets other flags | 00075310 - 000755f8: [[Set move/act based on skillset]] mainly for defend/eq.change - also sets other flags | ||
Line 307: | Line 321: | ||
[[00076be8 - 00076c4c]]: Sets next script = 1? | [[00076be8 - 00076c4c]]: Sets next script = 1? | ||
// Script 0x1d | // Script 0x1d | ||
− | + | 00076c50 - 00076d80: [[Ability Preview handling]] | |
// Script 0x1c | // Script 0x1c | ||
− | 00076d84 - | + | [[00076d84 - 00076f10]]: stores animation/facing based on ability flags 1 |
// Script 0x1e | // Script 0x1e | ||
− | |||
[[00076f14 - 00076fcc]]: | [[00076f14 - 00076fcc]]: | ||
// Script 0x1f - | // Script 0x1f - | ||
− | + | 00076fd0 - 00077094: [[Finish Ability Charging]] | |
// Script 0x20 | // Script 0x20 | ||
− | [[ | + | 00077098 - 00077130: [[Commence pre-attack phase control]] Action occurring |
// Script 0x21 - | // Script 0x21 - | ||
[[00077134 - 0007719c]]: action related | [[00077134 - 0007719c]]: action related | ||
// Script 0x22 | // Script 0x22 | ||
− | + | 000771a0 - 00077310: [[Before attack: Load SP2]] action related | |
// Script 0x23 | // Script 0x23 | ||
[[00077314 - 00077374]]: loads effect LBA sector | [[00077314 - 00077374]]: loads effect LBA sector | ||
Line 327: | Line 340: | ||
// script 0x25 | // script 0x25 | ||
[[000773b4 - 000773f4]]: | [[000773b4 - 000773f4]]: | ||
− | [[000773f8 - 0007775c]]: [[ | + | [[000773f8 - 0007775c]]: [[0x773f8]] | Big action/ability display |
// Script 0x26 | // Script 0x26 | ||
[[00077760 - 000777e8]]: | [[00077760 - 000777e8]]: | ||
// Script 0x27 | // Script 0x27 | ||
− | + | 000777ec - 0007799c: [[Recommence attack phase control]] action related | |
// Script 0x28 | // Script 0x28 | ||
[[000779a0 - 00077b54]]: | [[000779a0 - 00077b54]]: | ||
Line 346: | Line 359: | ||
[[00077e1c - 00077e84]]: | [[00077e1c - 00077e84]]: | ||
// Script 0x2e | // Script 0x2e | ||
− | 00077e88 - 00077f64: [[AI target processing | + | 00077e88 - 00077f64: [[AI target processing]] |
// Script 0x2f | // Script 0x2f | ||
[[00077f68 - 0007802c]]: | [[00077f68 - 0007802c]]: | ||
Line 383: | Line 396: | ||
00079a98 - 0007a1d0: [[Main BATTLE.BIN Loop]] | [[Game Flow Control routine]] | 00079a98 - 0007a1d0: [[Main BATTLE.BIN Loop]] | [[Game Flow Control routine]] | ||
*[[Game Flow Control Return Addresses]] | *[[Game Flow Control Return Addresses]] | ||
+ | |||
+ | ==Miscellaneous Processing & Get Data== | ||
0007a1d4 - 0007a214: [[Get casting unit's misc data]] data that matches 0x9112c | 0007a1d4 - 0007a214: [[Get casting unit's misc data]] data that matches 0x9112c | ||
0007a218 - 0007a258: [[Get Source Unit Misc Data Pointer]] | [[Get Casting units Misc Data]] | 0007a218 - 0007a258: [[Get Source Unit Misc Data Pointer]] | [[Get Casting units Misc Data]] | ||
0007a25c - 0007a2b4: [[Get Misc Data of unit that matches register inputs]] | 0007a25c - 0007a2b4: [[Get Misc Data of unit that matches register inputs]] | ||
− | 0007a2b8 - 0007a3f4: [[Find Unit at Coordinates (Misc Data) (0x7a2b8)]] | [[Check if unit is on panel | + | 0007a2b8 - 0007a3f4: [[Find Unit at Coordinates (Misc Data) (0x7a2b8)]] | [[Check if unit is on panel]] |
0007a3f8 - 0007a4f0: [[Get misc data of unit that matches register inputs that isn't crystal/treasure]] | 0007a3f8 - 0007a4f0: [[Get misc data of unit that matches register inputs that isn't crystal/treasure]] | ||
0007a4f4 - 0007a5cc: [[Some thing wtih check if chocobo is on panel]] | 0007a4f4 - 0007a5cc: [[Some thing wtih check if chocobo is on panel]] | ||
[[0007a5d0 - 0007a6e0]]: [[Get Overlapping Unit Misc Data Pointer]] | [[0007a5d0 - 0007a6e0]]: [[Get Overlapping Unit Misc Data Pointer]] | ||
− | 0007a6e4 - 0007a720: [[Get Unit Misc Data Pointer]] | [[Find Current Misc Unit Data Pointer (external ID) | + | 0007a6e4 - 0007a720: [[Get Unit Misc Data Pointer]] | [[Find Current Misc Unit Data Pointer (external ID)]] |
− | 0007a724 - 0007a770: [[Get Unit Misc Data Pointer By Battle Unit Index]] | [[Find Misc Unit Data Pointer (checking for specific unit) | + | 0007a724 - 0007a770: [[Get Unit Misc Data Pointer By Battle Unit Index]] | [[Find Misc Unit Data Pointer (checking for specific unit)]] | [[Get unit misc data that matches r4 ID]] |
− | 0007a774 - 0007a7b4: [[Count number of | + | 0007a774 - 0007a7b4: [[Count number of Crystals on map]] |
[[0007a7b8 - 0007a83c]]: | [[0007a7b8 - 0007a83c]]: | ||
− | + | 0007a840 - 0007a964: [[Open SP2]] | |
[[0007a968 - 0007a9ac]]: | [[0007a968 - 0007a9ac]]: | ||
− | + | 0007a9b0 - 0007aa30: [[Load Nibble of Compressed Graphic Data]] | |
− | + | 0007aa34 - 0007abcc: [[Decompress Attack spritesheet]] | |
0007abd0 - 0007ac5c: [[Initialize some display data]] | 0007abd0 - 0007ac5c: [[Initialize some display data]] | ||
− | 0007ac60 - 0007aca8: [[Unit RGB/Sprite Type/ | + | 0007ac60 - 0007aca8: [[Unit RGB/Sprite Type/etc Initialization]] |
0007acac - 0007ad04: [[Initialize WEP1 sprite RGB]] | 0007acac - 0007ad04: [[Initialize WEP1 sprite RGB]] | ||
0007ad08 - 0007adb0: [[Initialize RGB and some more stuff]] | 0007ad08 - 0007adb0: [[Initialize RGB and some more stuff]] | ||
Line 406: | Line 421: | ||
0007aecc - 0007af04: [[Call store screen offsets to GTE]] | 0007aecc - 0007af04: [[Call store screen offsets to GTE]] | ||
[[0007af08 - 0007af40]]: | [[0007af08 - 0007af40]]: | ||
− | + | 0007af44 - 0007b4e8: [[Construct Polygon Data for Units]] | [[Display Related (0x7af44)]] | |
0007b4ec - 0007b52c: [[Store Sprite Display Data]] | 0007b4ec - 0007b52c: [[Store Sprite Display Data]] | ||
[[0007b530 - 0007b550]]: | [[0007b530 - 0007b550]]: | ||
Line 419: | Line 434: | ||
[[0007b9d0 - 0007c440]]: | [[0007b9d0 - 0007c440]]: | ||
[[0007c444 - 0007c808]]: | [[0007c444 - 0007c808]]: | ||
− | + | 0007c80c - 0007cff4: [[Slope Calculations]] (HUGE) | |
[[0007cff8 - 0007d09c]]: | [[0007cff8 - 0007d09c]]: | ||
− | + | 0007d0a0 - 0007d0d0: [[Get Unit misc data pointer of ridden unit by r4]] | |
− | + | 0007d0d4 - 0007d2d8: [[Complex Height Data from unit misc data and coordinates]] | |
[[0007d2dc - 0007d34c]]: | [[0007d2dc - 0007d34c]]: | ||
[[0007d350 - 0007d3f0]]: | [[0007d350 - 0007d3f0]]: | ||
[[0007d3f4 - 0007d474]]: | [[0007d3f4 - 0007d474]]: | ||
[[0007d478 - 0007d518]]: | [[0007d478 - 0007d518]]: | ||
− | + | 0007d51c - 0007d5cc: [[Get Final Height data from unit misc data]] | |
− | + | 0007d5d0 - 0007db18: [[Calculate shadow VRAM palette]] | |
[[0007db1c - 0007e300]]: | [[0007db1c - 0007e300]]: | ||
[[0007e304 - 0007e728]]: | [[0007e304 - 0007e728]]: | ||
[[0007e72c - 0007e9a4]]: | [[0007e72c - 0007e9a4]]: | ||
[[0007e9a8 - 0007eb88]]: | [[0007e9a8 - 0007eb88]]: | ||
− | + | ||
− | + | ==Extra Unit Graphic Display== | |
− | + | eg. status bubbles, damage, missed! text. | |
− | + | 0007eb8c - 0007eebc: [[Determine Status Bubble Parameters]] | |
+ | 0007eec0 - 0007f1d0: [[Display Status Bubble]] | ||
+ | 0007f1d4 - 0007f23c: [[(Status Bubble Related)]] | ||
+ | 0007f240 - 0007f2a8: [[Scrapped animation code]] | ||
[[0007f2ac - 0007f3fc]]: | [[0007f2ac - 0007f3fc]]: | ||
[[0007f400 - 0007f458]]: | [[0007f400 - 0007f458]]: | ||
Line 450: | Line 468: | ||
0008008c - 000800b8: [["Missed" display]] | 0008008c - 000800b8: [["Missed" display]] | ||
000800bc - 000800e8: [["Guarded" display]] | 000800bc - 000800e8: [["Guarded" display]] | ||
− | 000800ec - 00080114: [["Caught | + | 000800ec - 00080114: [["Caught" display]] |
000803e4 - 000808b4: [[Post-Action Display Setup]] | 000803e4 - 000808b4: [[Post-Action Display Setup]] | ||
000808b8 - 00080bc0: [[Set Exp/JP Display Data and get Palette]] | 000808b8 - 00080bc0: [[Set Exp/JP Display Data and get Palette]] | ||
Line 460: | Line 478: | ||
00080e7c - 00080eb8: [[*"Silenced" Display*]] | 00080e7c - 00080eb8: [[*"Silenced" Display*]] | ||
00080ebc - 00080f00: [[*"No MP" Display*]] | 00080ebc - 00080f00: [[*"No MP" Display*]] | ||
− | [[00080f04 - 00080f40]]: Something to do with palette | + | [[00080f04 - 00080f40]]: Something to do with palette |
00080f44 - 00080fe8: [[Prep for Displaying Earned Exp/JP]] | 00080f44 - 00080fe8: [[Prep for Displaying Earned Exp/JP]] | ||
− | 00080fec - 000810a0: [[Activate numerical sprite data | + | 00080fec - 000810a0: [[Activate numerical sprite data]] |
− | 000810a4 - 00081974: [[ | + | |
+ | ==Unit Animation Processing== | ||
+ | 000810a4 - 00081974: [[Calculate XYZ, UV, and Palette of Post Action Text]] | ||
00081978 - 00081984: [[Store unit animation and facing value]] | 00081978 - 00081984: [[Store unit animation and facing value]] | ||
00081988 - 000819a4: [[Store unit animation/facing/someothervalue]] | 00081988 - 000819a4: [[Store unit animation/facing/someothervalue]] | ||
Line 472: | Line 492: | ||
00081ad0 - 00081adc: [[r2 = 0x800b669c]] | 00081ad0 - 00081adc: [[r2 = 0x800b669c]] | ||
00081ae0 - 00081aec: [[r2 = 0x800b6edc]] | 00081ae0 - 00081aec: [[r2 = 0x800b6edc]] | ||
− | + | 00081af0 - 00081b08: [[Get Spritesheet Graphic Height]] | |
00081b0c - 00081b84: [[Store some coordinate data]] | 00081b0c - 00081b84: [[Store some coordinate data]] | ||
00081b88 - 00081c18: [[Store some movement coordinate data]] | 00081b88 - 00081c18: [[Store some movement coordinate data]] | ||
− | + | 00081c1c - 00081c5c: [[Save Spritesheet ID to spritesheet data]] | |
− | 00081c60 - 00081d50: [[ | + | 00081c60 - 00081d50: [[Set Marlboro Spritesheet Change]] |
00081d54 - 0008210c: [[Weather/time of day/tile palette modification]] | 00081d54 - 0008210c: [[Weather/time of day/tile palette modification]] | ||
− | 00082110 - 000822b8: [[Special spritesheet ID palette mods | + | 00082110 - 000822b8: [[Special spritesheet ID palette mods]] |
000822bc - 00082464: [[palette mod by status]] | 000822bc - 00082464: [[palette mod by status]] | ||
00082468 - 00082504: [[check for tile, status palette mod]] | 00082468 - 00082504: [[check for tile, status palette mod]] | ||
− | 00082508 - 0008254c: [[Determine Status Bubble Activation Byte]] | [[Status/ | + | 00082508 - 0008254c: [[Determine Status Bubble Activation Byte]] | [[Status/unknown Misc ID checks]] |
00082550 - 00082588: [[Transparent Check]] (for opacity?) | 00082550 - 00082588: [[Transparent Check]] (for opacity?) | ||
− | + | 0008258c - 0008261c: [[Set some display/anim data for weapon/evade types]] | |
− | 00082620 - 00082788: This routine still needs documenting | + | [[00082620 - 00082788]]: This routine still needs documenting |
− | 0008278c - 00082888: [[Movement validation - float/fly | + | 0008278c - 00082888: [[Movement validation - float/fly]] |
− | 0008288c - 00082a40: [[ | + | 0008288c - 00082a40: [[Determine attack animation from used Weapon Type]] |
00082a44 - 00082b18: [[Set animation for Item abilities]] | 00082a44 - 00082b18: [[Set animation for Item abilities]] | ||
00082b1c - 00082b7c: [[Store attack animation flags and facing 1]] | 00082b1c - 00082b7c: [[Store attack animation flags and facing 1]] | ||
00082b80 - 00082c0c: [[Set attack animation flags and facing 2]] | 00082b80 - 00082c0c: [[Set attack animation flags and facing 2]] | ||
00082c10 - 00082cc0: [[Set attack animation flags and facing 3]] | 00082c10 - 00082cc0: [[Set attack animation flags and facing 3]] | ||
− | 00082cc4 - 00082d4c: [[Set Level up/Job level up animations | + | 00082cc4 - 00082d4c: [[Set Level up/Job level up animations]] |
− | [[ | + | 00082d50 - 00082df4: [[Set In-Motion animation based on status (not MON)]] | [[Set Animation Based On Unit Mounted State]] |
− | + | 00082df8 - 00082ee8: [[Set Idle Animation based on status (not MON)]] | |
− | 00082eec - 000831b4: [[Set Animation Based On Unit Status | + | 00082eec - 000831b4: [[Set Animation Based On Unit Status]] |
000831b8 - 00083468: [[More animation based on status, death sound effects]] | 000831b8 - 00083468: [[More animation based on status, death sound effects]] | ||
0008346c - 0008356c: [[Poach/Morbol Transformation]] Can change spritesheet ID here | 0008346c - 0008356c: [[Poach/Morbol Transformation]] Can change spritesheet ID here | ||
− | 00083570 - 00083754: [[Sprite changing stuff | + | 00083570 - 00083754: [[Sprite changing stuff]] crystal, frog, etc. |
00083758 - 00083850: [[Set thrown item graphic/palette]] also throw stone | 00083758 - 00083850: [[Set thrown item graphic/palette]] also throw stone | ||
− | + | 00083854 - 00083870: [[Call Set Animation Based on Status]] | |
00083874 - 00083974: [[Set attacker animation for shield block]] | 00083874 - 00083974: [[Set attacker animation for shield block]] | ||
00083978 - 00083c54: [[Set targets animation based on attack type]] | 00083978 - 00083c54: [[Set targets animation based on attack type]] | ||
00083c58 - 00083cd0: [[Sprite display setting for all units based on attack]] | 00083c58 - 00083cd0: [[Sprite display setting for all units based on attack]] | ||
[[00083cd4 - 00083e0c]]: | [[00083cd4 - 00083e0c]]: | ||
− | + | 00083e10 - 00083f14: [[Unit graphic information loading]] | |
− | + | 00083f18 - 00084210: [[Update Sprite display data]] | |
− | + | 00084214 - 000846ac: [[Trap & Unit graphic information loading]] | |
− | [[ | + | 000846b0 - 00084754: [[Move Unit Right+/Left-]] |
− | [[ | + | 00084758 - 0008476c: [[Move Unit Down+/Up-]] |
− | [[ | + | 00084770 - 00084814: [[Move Unit Forward+/Back-]] |
00084818 - 00085230: [[Load Unit graphics from sprite sheet]] | 00084818 - 00085230: [[Load Unit graphics from sprite sheet]] | ||
[[00085234 - 00085268]]: | [[00085234 - 00085268]]: | ||
0008526c - 00085a14: [[Load WEP graphic from WEP1 Sheet]] | 0008526c - 00085a14: [[Load WEP graphic from WEP1 Sheet]] | ||
− | + | 00085a18 - 00085b9c: [[Move Atk sprites to Frame Buffer from RAM]] | |
− | + | 00085ba0 - 00085c08: [[Mark Unit's VRAM Slot as Unoccupied]] | |
− | + | 00085c0c - 000865a0: [[Update & Animate Unit/WEP/EFF]] | |
− | + | 000865a4 - 0008663c: [[Process Status Bubble Display]] | |
[[00086640 - 00086b40]]: | [[00086640 - 00086b40]]: | ||
[[00086b44 - 00086dc0]]: | [[00086b44 - 00086dc0]]: | ||
Line 524: | Line 544: | ||
[[000870ac - 00087198]]: | [[000870ac - 00087198]]: | ||
[[0008719c - 000871f0]]: | [[0008719c - 000871f0]]: | ||
− | + | 000871f4 - 000872e8: [[Copy SEQ data into RAM]] | |
[[000872ec - 000873b8]]: | [[000872ec - 000873b8]]: | ||
[[000873bc - 000875ec]]: | [[000873bc - 000875ec]]: | ||
Line 530: | Line 550: | ||
[[00087704 - 000878a0]]: | [[00087704 - 000878a0]]: | ||
[[000878a4 - 000879b4]]: | [[000878a4 - 000879b4]]: | ||
− | + | 000879b8 - 00087a24: [[Copy OTHER.SPR Palette data to RAM]] | |
+ | |||
+ | ==Sprite & Display Initialisation== | ||
00087a28 - 00088014: [[Misc unit data initialization]] | 00087a28 - 00088014: [[Misc unit data initialization]] | ||
[[00088018 - 0008812c]]: | [[00088018 - 0008812c]]: | ||
− | + | 00088130 - 00088804: [[Load unit SHP & SEQ data to RAM]] | |
− | + | 00088808 - 0008883c: [[Perform Animate All Units 3 times]] | |
[[00088840 - 00088864]]: | [[00088840 - 00088864]]: | ||
[[00088868 - 00088900]]: | [[00088868 - 00088900]]: | ||
− | + | 00088904 - 00088ee8: [[Load lucavi SHP & SEQ data to RAM]] | |
[[00088eec - 000890b4]]: | [[00088eec - 000890b4]]: | ||
[[000890b8 - 00089248]]: | [[000890b8 - 00089248]]: | ||
Line 547: | Line 569: | ||
[[0008957c - 000895c0]]: | [[0008957c - 000895c0]]: | ||
[[000895c4 - 00089634]]: | [[000895c4 - 00089634]]: | ||
− | + | 00089638 - 00089744: [[Teleport distortion anim]] | |
[[00089748 - 000897d8]]: | [[00089748 - 000897d8]]: | ||
− | + | 000897dc - 0008989c: [[Something height related]] | |
− | + | 000898a0 - 00089b9c: [[Accelerate Unit to Destination]] | |
[[00089ba0 - 00089d9c]]: | [[00089ba0 - 00089d9c]]: | ||
[[00089da0 - 00089dbc]]: | [[00089da0 - 00089dbc]]: | ||
Line 560: | Line 582: | ||
[[0008a118 - 0008a348]]: | [[0008a118 - 0008a348]]: | ||
[[0008a34c - 0008a358]]: | [[0008a34c - 0008a358]]: | ||
− | + | 0008a35c - 0008a4a8: [[Jump animation Start]] | |
[[0008a4ac - 0008a6d4]]: | [[0008a4ac - 0008a6d4]]: | ||
[[0008a6d8 - 0008a6fc]]: | [[0008a6d8 - 0008a6fc]]: | ||
− | + | 0008a700 - 0008a77c: [[Set Altima teleport move ID]] | |
− | + | 0008a780 - 0008a7fc: [[Set Altima teleport arrive ID]] | |
[[0008a800 - 0008a880]]: | [[0008a800 - 0008a880]]: | ||
[[0008a884 - 0008a920]]: | [[0008a884 - 0008a920]]: | ||
Line 571: | Line 593: | ||
[[0008adf8 - 0008b0c4]]: | [[0008adf8 - 0008b0c4]]: | ||
[[0008b0c8 - 0008b230]]: | [[0008b0c8 - 0008b230]]: | ||
− | + | 0008b234 - 0008b288: [[Animate Unit Distorts]] | |
[[0008b28c - 0008b2c0]]: | [[0008b28c - 0008b2c0]]: | ||
[[0008b2c4 - 0008b2f8]]: | [[0008b2c4 - 0008b2f8]]: | ||
Line 605: | Line 627: | ||
[[0008bcbc - 0008bd08]]: | [[0008bcbc - 0008bd08]]: | ||
[[0008bd0c - 0008bde0]]: | [[0008bd0c - 0008bde0]]: | ||
+ | ==Uncertain== | ||
[[0008bde4 - 0008be00]]: [[Update Status/Sprite/Animation Display By Unit Misc ID (Wrapper Function)]] | [[0008bde4 - 0008be00]]: [[Update Status/Sprite/Animation Display By Unit Misc ID (Wrapper Function)]] | ||
[[0008be04 - 0008be28]]: [[Set Animation Based On Unit Mounted State From Unit Misc ID]] | [[0008be04 - 0008be28]]: [[Set Animation Based On Unit Mounted State From Unit Misc ID]] | ||
Line 611: | Line 634: | ||
[[0008be7c - 0008beb8]]: [[Set Specific Animation Value From Unit Misc ID]] | [[0008be7c - 0008beb8]]: [[Set Specific Animation Value From Unit Misc ID]] | ||
[[0008bebc - 0008bf10]]: | [[0008bebc - 0008bf10]]: | ||
− | [[0008bf14 - | + | [[0008bf14 - 0008bf18]]: |
0008bf1c - 0008bf80: [[0x8bf1c]] | 0008bf1c - 0008bf80: [[0x8bf1c]] | ||
[[0008bf84 - 0008bff8]]: | [[0008bf84 - 0008bff8]]: | ||
Line 678: | Line 701: | ||
0008dc9c - 0008dcc0: [[Find Unit's Misc Data Pointer and Load Spritesheet Value]] | 0008dc9c - 0008dcc0: [[Find Unit's Misc Data Pointer and Load Spritesheet Value]] | ||
[[0008dcc4 - 0008dd0c]]: | [[0008dcc4 - 0008dd0c]]: | ||
+ | |||
+ | ==Pre-Effect display== | ||
+ | ? | ||
[[0008dd10 - 0008dda4]]: [[Start New Effect]] | [[0008dd10 - 0008dda4]]: [[Start New Effect]] | ||
[[0008dda8 - 0008ddc8]]: | [[0008dda8 - 0008ddc8]]: | ||
Line 699: | Line 725: | ||
[[0008e11c - 0008e14c]]: | [[0008e11c - 0008e14c]]: | ||
[[0008e150 - 0008e178]]: | [[0008e150 - 0008e178]]: | ||
− | [[0008e17c - 0008e1f4]]: [[ | + | [[0008e17c - 0008e1f4]]: [[0x8e17c]] |
[[0008e1f8 - 0008e230]]: | [[0008e1f8 - 0008e230]]: | ||
[[0008e234 - 0008e2c4]]: | [[0008e234 - 0008e2c4]]: | ||
Line 711: | Line 737: | ||
[[0008e540 - 0008e6cc]]: | [[0008e540 - 0008e6cc]]: | ||
[[0008e6d0 - 0008e7b4]]: | [[0008e6d0 - 0008e7b4]]: | ||
− | [[0008e7b8 - 0008e808]]: | + | [[0008e7b8 - 0008e808]]: [[Get ENTD data pointer and load units]] |
[[0008e80c - 0008ea68]]: | [[0008e80c - 0008ea68]]: | ||
[[0008ea6c - 0008ec6c]]: | [[0008ea6c - 0008ec6c]]: | ||
Line 718: | Line 744: | ||
[[0008ef44 - 0008ef78]]: | [[0008ef44 - 0008ef78]]: | ||
[[0008ef7c - 0008efb0]]: | [[0008ef7c - 0008efb0]]: | ||
+ | |||
+ | ==Colour & Palette Modification== | ||
[[0008efb4 - 0008f12c]]: [[Color Screen Related (0x8efb4)]] | [[0008efb4 - 0008f12c]]: [[Color Screen Related (0x8efb4)]] | ||
[[0008f130 - 0008f204]]: | [[0008f130 - 0008f204]]: | ||
Line 747: | Line 775: | ||
[[00092e98 - 00092f14]]: | [[00092e98 - 00092f14]]: | ||
[[00092f18 - 00092f94]]: | [[00092f18 - 00092f94]]: | ||
− | [[00092f98 - 00093044]]: [[ | + | [[00092f98 - 00093044]]: [[0x92f98]] |
[[00093048 - 00093114]]: | [[00093048 - 00093114]]: | ||
[[00093118 - 00093140]]: | [[00093118 - 00093140]]: | ||
Line 762: | Line 790: | ||
[[00093614 - 00093630]]: | [[00093614 - 00093630]]: | ||
[[00093634 - 00093650]]: | [[00093634 - 00093650]]: | ||
− | [[00093654 - 000937f4]]: [[ | + | [[00093654 - 000937f4]]: [[0x93654]] |
[[000937f8 - 00093868]]: | [[000937f8 - 00093868]]: | ||
[[0009386c - 00093a94]]: | [[0009386c - 00093a94]]: | ||
Line 798: | Line 826: | ||
[[000f5a2c - 000f5a60]]: | [[000f5a2c - 000f5a60]]: | ||
[[000f5a64 - 000f5ae8]]: | [[000f5a64 - 000f5ae8]]: | ||
+ | |||
+ | ==Targetting Determination== | ||
000f5aec - 0011467c: | 000f5aec - 0011467c: | ||
00114680 - 0011474c: [[Math Skill targeting calculations]] | 00114680 - 0011474c: [[Math Skill targeting calculations]] | ||
Line 811: | Line 841: | ||
[[0012dbdc - 0012dc2c]]: | [[0012dbdc - 0012dc2c]]: | ||
[[0012dc30 - 0012dc80]]: | [[0012dc30 - 0012dc80]]: | ||
− | + | 0012dc84 - 0012dca8: [[Check If Tutorial Event Slot]] | |
+ | ==Uncertain 2== | ||
[[0012dcac - 0012dcf4]]: [[Get Battle Unit Index By ENTD Unit ID]] | [[0012dcac - 0012dcf4]]: [[Get Battle Unit Index By ENTD Unit ID]] | ||
[[0012dcf8 - 0012dd08]]: | [[0012dcf8 - 0012dd08]]: | ||
Line 822: | Line 853: | ||
[[0012dd94 - 0012ddc0]]: | [[0012dd94 - 0012ddc0]]: | ||
[[0012ddc4 - 0012dde4]]: | [[0012ddc4 - 0012dde4]]: | ||
− | + | 0012dde8 - 0012df08: [[Battle Camera Initialize]] | |
[[0012df0c - 0012df3c]]: | [[0012df0c - 0012df3c]]: | ||
− | + | 0012df40 - 0012df64: [[Get Attacker Data Pointer]] | |
[[0012df68 - 0012df94]]: | [[0012df68 - 0012df94]]: | ||
− | [[0012df98 - 0012e18c]]: [[ | + | [[0012df98 - 0012e18c]]: [[0x12df98]] |
− | [[0012e190 - 0012e240]]: | + | [[0012e190 - 0012e194]]: (Empty routine) |
+ | [[0012e198 - 0012e240]]: | ||
[[0012e244 - 0012e2b4]]: | [[0012e244 - 0012e2b4]]: | ||
[[0012e2b8 - 0012e31c]]: | [[0012e2b8 - 0012e31c]]: | ||
Line 841: | Line 873: | ||
[[0012eeb0 - 0012f028]]: | [[0012eeb0 - 0012f028]]: | ||
[[0012f02c - 0012f048]]: | [[0012f02c - 0012f048]]: | ||
− | [[0012f04c - 0012f108]]: [[ | + | [[0012f04c - 0012f108]]: [[0x12f04c]] |
[[0012f10c - 0012f35c]]: | [[0012f10c - 0012f35c]]: | ||
[[0012f360 - 0012f3c8]]: | [[0012f360 - 0012f3c8]]: | ||
Line 850: | Line 882: | ||
[[0012f6b0 - 0012f6d0]]: | [[0012f6b0 - 0012f6d0]]: | ||
[[0012f6d4 - 0012fd1c]]: | [[0012f6d4 - 0012fd1c]]: | ||
− | + | 0012fd20 - 0012fd88: [[Text Format String Fetching]] | |
[[0012fd8c - 00130188]]: | [[0012fd8c - 00130188]]: | ||
[[0013018c - 00130624]]: | [[0013018c - 00130624]]: | ||
Line 887: | Line 919: | ||
[[001340ac - 0013417c]]: [[Dismiss Unit Event Instruction]] | [[001340ac - 0013417c]]: [[Dismiss Unit Event Instruction]] | ||
[[00134180 - 00134220]]: | [[00134180 - 00134220]]: | ||
− | + | 00134224 - 00134244: [[Advance Date By One Year]] | |
[[00134248 - 001342c8]]: | [[00134248 - 001342c8]]: | ||
[[001342cc - 001343b8]]: | [[001342cc - 001343b8]]: | ||
Line 893: | Line 925: | ||
[[001343d0 - 001343dc]]: | [[001343d0 - 001343dc]]: | ||
[[001343e0 - 0013442c]]: | [[001343e0 - 0013442c]]: | ||
+ | |||
+ | ==Uncertain (Display Related)== | ||
00134438 - 001346f0: [[Display Height]] | 00134438 - 001346f0: [[Display Height]] | ||
001346f4 - 0013493c: [[Height Number Display Setup]] | 001346f4 - 0013493c: [[Height Number Display Setup]] | ||
Line 900: | Line 934: | ||
[[00136128 - 00136184]]: | [[00136128 - 00136184]]: | ||
[[00136188 - 001361e4]]: | [[00136188 - 001361e4]]: | ||
− | [[ | + | 001361e8 - 00136320: [[Attack preview - Caster stats]] |
− | [[ | + | 00136324 - 001363d8: [[Attack Preview - Target stats]] |
[[001363dc - 00136b0c]]: | [[001363dc - 00136b0c]]: | ||
00136b10 - 00136bcc: [[Get Item Graphic Data]] | 00136b10 - 00136bcc: [[Get Item Graphic Data]] | ||
− | + | 00136bd0 - 00136d30: [[Construct Polygon for unit battle portrait]] | |
[[00136d34 - 001370a0]]: | [[00136d34 - 001370a0]]: | ||
[[001370a4 - 00137b8c]]: | [[001370a4 - 00137b8c]]: | ||
[[00137b90 - 00137c0c]]: | [[00137b90 - 00137c0c]]: | ||
+ | ==Menuing== | ||
00137c10 - 00137ed0: [[Handle Menu Action]] | 00137c10 - 00137ed0: [[Handle Menu Action]] | ||
[[00137ed4 - 00137f80]]: | [[00137ed4 - 00137f80]]: | ||
[[00137f84 - 00138090]]: | [[00137f84 - 00138090]]: | ||
− | 00138094 - 00138170: [[ | + | 00138094 - 00138170: [[0x138094]] |
− | 00138174 - 001383c4: [[ | + | 00138174 - 001383c4: [[0x138174]] |
[[001383c8 - 00138410]]: | [[001383c8 - 00138410]]: | ||
[[00138414 - 0013845c]]: | [[00138414 - 0013845c]]: | ||
Line 924: | Line 959: | ||
[[00138b10 - 00138b60]]: | [[00138b10 - 00138b60]]: | ||
[[00138b64 - 00138ed4]]: | [[00138b64 - 00138ed4]]: | ||
− | + | 00138ed8 - 001390b8: [[Display Simple Selection Menu]] | [[Move/Act/Wait menu loading routine]] | |
− | + | ==Uncertain (Display Related 2) | |
− | + | 00136b10 - 00136bcc: [[Get Item Graphic Data]] | |
− | + | 001390bc - 00139578: [[Build AT List Unit & Ability text entry list]] | |
+ | 0013957c - 001395a8: [[Preview ability turn AT list]] | ||
[[001395ac - 001398f8]]: | [[001395ac - 001398f8]]: | ||
[[001398fc - 00139bd8]]: | [[001398fc - 00139bd8]]: | ||
Line 937: | Line 973: | ||
[[0013b280 - 0013b4f8]]: | [[0013b280 - 0013b4f8]]: | ||
[[0013b4fc - 0013b58c]]: | [[0013b4fc - 0013b58c]]: | ||
+ | |||
+ | ==Uncertain (Miscellany?)== | ||
0013b590 - 0013b640: [[Get Script Variable]] | 0013b590 - 0013b640: [[Get Script Variable]] | ||
− | + | 0013b644 - 0013b6e0: [[Set Script Variable]] | [[Set r5 as New Variable Value]] | |
[[0013b6e4 - 0013b894]]: | [[0013b6e4 - 0013b894]]: | ||
[[0013b898 - 0013ba64]]: | [[0013b898 - 0013ba64]]: | ||
[[0013ba68 - 0013bb6c]]: | [[0013ba68 - 0013bb6c]]: | ||
− | [[0013bb70 - 0013bbe8]]: [[ | + | [[0013bb70 - 0013bbe8]]: [[0x13bb70]] |
[[0013bbec - 0013bc10]]: | [[0013bbec - 0013bc10]]: | ||
[[0013bc14 - 0013bcb8]]: [[Load File (0x13bc14)]] | [[0013bc14 - 0013bcb8]]: [[Load File (0x13bc14)]] | ||
Line 956: | Line 994: | ||
[[0013c130 - 0013c230]]: | [[0013c130 - 0013c230]]: | ||
[[0013c234 - 0013c280]]: | [[0013c234 - 0013c280]]: | ||
− | [[0013c284 - 0013c2d8]]: [[ | + | [[0013c284 - 0013c2d8]]: [[0x13c284]] |
[[0013c2dc - 0013c3a0]]: | [[0013c2dc - 0013c3a0]]: | ||
− | [[0013c3a4 - 0013c568]]: | + | [[0013c3a4 - 0013c568]]: Equip Change Routine |
[[0013c56c - 0013c664]]: | [[0013c56c - 0013c664]]: | ||
[[0013c668 - 0013c70c]]: | [[0013c668 - 0013c70c]]: | ||
Line 965: | Line 1,003: | ||
[[0013c7c4 - 0013c8a4]]: | [[0013c7c4 - 0013c8a4]]: | ||
[[0013c8a8 - 0013c9bc]]: | [[0013c8a8 - 0013c9bc]]: | ||
+ | |||
+ | ==Eventing== | ||
[[0013c9c0 - 0013ca6c]]: [[Load Event]] | [[0013c9c0 - 0013ca6c]]: [[Load Event]] | ||
[[0013ca70 - 0013cac0]]: | [[0013ca70 - 0013cac0]]: | ||
Line 972: | Line 1,012: | ||
[[0013cccc - 0013cce8]]: | [[0013cccc - 0013cce8]]: | ||
[[0013ccec - 0013cf54]]: | [[0013ccec - 0013cf54]]: | ||
− | [[0013cf58 - 0013d0a8]]: | + | [[0013cf58 - 0013d0a8]]: menu Routine |
[[0013d0ac - 0013d184]]: | [[0013d0ac - 0013d184]]: | ||
[[0013d188 - 0013d198]]: | [[0013d188 - 0013d198]]: | ||
Line 1,016: | Line 1,056: | ||
[[0013f4f8 - 0013f51c]]: | [[0013f4f8 - 0013f51c]]: | ||
0013f520 - 0013f664: [[Data setting from menu selections]] | 0013f520 - 0013f664: [[Data setting from menu selections]] | ||
− | + | 0013f668 - 0013f768: [[Store Selected Tile Data]] | |
− | [[0013f76c - 0013f7a8]]: | + | ==Act Menuing== |
− | [[0013f7ac - | + | [[0013f76c - 0013f7a8]]: Initialize menu counters |
− | [[0013f7b4 - 0013f8b0]]: | + | [[0013f7ac - 0013f7b0]]: jr r31 |
+ | [[0013f7b4 - 0013f8b0]]: Store some data for menus | ||
[[0013f8b4 - 0013f8fc]]: | [[0013f8b4 - 0013f8fc]]: | ||
[[0013f900 - 0013f974]]: | [[0013f900 - 0013f974]]: | ||
− | + | 0013f978 - 0013f984: [[Set r2 to 0x80169828]] | |
[[0013f988 - 0013f9c0]]: | [[0013f988 - 0013f9c0]]: | ||
[[0013f9c4 - 0013f9fc]]: | [[0013f9c4 - 0013f9fc]]: | ||
Line 1,028: | Line 1,069: | ||
[[0013fa38 - 0013fa68]]: | [[0013fa38 - 0013fa68]]: | ||
0013fa6c - 00140224: [[Main Skillset/ability loading]] (abilities greyed/blinking red) | 0013fa6c - 00140224: [[Main Skillset/ability loading]] (abilities greyed/blinking red) | ||
− | + | 00140228 - 001404c8: [[Main act menu loading]] | |
− | 001404cc - 00140728 | + | [[001404cc - 00140728]]: |
[[0014072c - 00140888]]: | [[0014072c - 00140888]]: | ||
[[0014088c - 00140904]]: | [[0014088c - 00140904]]: | ||
− | + | 00140908 - 0014097c: [[Build Main menu]] | |
[[00140980 - 001409a0]]: | [[00140980 - 001409a0]]: | ||
[[001409a4 - 001409e8]]: | [[001409a4 - 001409e8]]: | ||
[[001409ec - 00140a2c]]: | [[001409ec - 00140a2c]]: | ||
00140a30 - 00140b00: [[Disable Move/Act based on menu ID]] | 00140a30 - 00140b00: [[Disable Move/Act based on menu ID]] | ||
− | [[ | + | 00140b04 - 00140cd0: [[Return Act-use Error Message]] |
− | + | 00140cd4 - 00140ed0: [[Ability selected routine]] (Good grief, can any of you put these in the right spot?) | |
00140ed4 - 0014115c: | 00140ed4 - 0014115c: | ||
[[00141160 - 001411b0]]: | [[00141160 - 001411b0]]: | ||
Line 1,055: | Line 1,096: | ||
*00141db0 - 00141e24: Gameover (party incapacitated) checks | *00141db0 - 00141e24: Gameover (party incapacitated) checks | ||
*00142074 - 001420e0: Calculator skillset loading? | *00142074 - 001420e0: Calculator skillset loading? | ||
− | *0014227c - 001422f4: | + | *0014227c - 001422f4: receive item whos quantity = 99 (increase gil) |
*001422f8 - 00142334: Increment item quantity | *001422f8 - 00142334: Increment item quantity | ||
[[00142508 - 001425ac]]: [[Get Battle Unit By Unit ID]] (For scenario conditionals?) | [[00142508 - 001425ac]]: [[Get Battle Unit By Unit ID]] (For scenario conditionals?) | ||
Line 1,062: | Line 1,103: | ||
[[00142b5c - 00142ba0]]: [[0x142b5c]] | [[00142b5c - 00142ba0]]: [[0x142b5c]] | ||
[[00142ba4 - 00142bcc]]: | [[00142ba4 - 00142bcc]]: | ||
− | [[00142bd0 - 00142c20]]: [[ | + | [[00142bd0 - 00142c20]]: [[0x142bd0]] |
− | [[00142c24 - 00142ca4]]: [[ | + | [[00142c24 - 00142ca4]]: [[0x142c24]] |
− | [[00142ca8 - 00142d28]]: [[ | + | [[00142ca8 - 00142d28]]: [[0x142ca8]] |
− | [[00142d2c - 00142d54]]: [[ | + | [[00142d2c - 00142d54]]: [[0x142d2c]] |
[[00142d58 - 001433a8]]: [[0x142d58]] | [[00142d58 - 001433a8]]: [[0x142d58]] | ||
[[001433ac - 001433e4]]: | [[001433ac - 001433e4]]: | ||
[[001433e8 - 00143414]]: | [[001433e8 - 00143414]]: | ||
− | [[00143418 - 001439bc]]: [[ | + | [[00143418 - 001439bc]]: [[0x143418]] |
[[001439c0 - 00143a98]]: | [[001439c0 - 00143a98]]: | ||
[[00143a9c - 00143b64]]: | [[00143a9c - 00143b64]]: | ||
Line 1,076: | Line 1,117: | ||
[[00143ba8 - 00143bcc]]: | [[00143ba8 - 00143bcc]]: | ||
[[00143bd0 - 00145f74]]: | [[00143bd0 - 00145f74]]: | ||
+ | |||
+ | ==Eventing 2== | ||
00143bd8 - 001449f8: [[Event Instruction Main Routine 1]] | 00143bd8 - 001449f8: [[Event Instruction Main Routine 1]] | ||
001449fc - 00145750: [[Event Instruction Main Routine 2]] | 001449fc - 00145750: [[Event Instruction Main Routine 2]] | ||
Line 1,085: | Line 1,128: | ||
*001459e8 - 00145a34: [[Event Instruction 0xf1: Wait]] | *001459e8 - 00145a34: [[Event Instruction 0xf1: Wait]] | ||
*00145e10 - 00145e68: [[Event Instruction 0x91: ShowMapTitle]] | *00145e10 - 00145e68: [[Event Instruction 0x91: ShowMapTitle]] | ||
− | + | 00145f78 - 00146000: [[Load Next Event]] | |
[[00146004 - 00146074]]: | [[00146004 - 00146074]]: | ||
00146078 - 00146090: [[Load Halfword]] | [[Load event command bytes]] | 00146078 - 00146090: [[Load Halfword]] | [[Load event command bytes]] | ||
− | + | 00146094 - 001460a0: [[Store Halfword]] | |
[[001460a4 - 001460e0]]: | [[001460a4 - 001460e0]]: | ||
[[001460e4 - 0014610c]]: | [[001460e4 - 0014610c]]: | ||
Line 1,103: | Line 1,146: | ||
[[001472dc - 00147314]]: | [[001472dc - 00147314]]: | ||
[[00147318 - 001474a0]]: | [[00147318 - 001474a0]]: | ||
− | + | 001474a4 - 00147580: [[0x1474a4]] | |
− | + | 00147584 - 0014777c: [[Focus Event Instruction]] | |
− | + | 00147780 - 00147914: [[Focus Speed Event Instruction]] | |
[[00147918 - 00147924]]: | [[00147918 - 00147924]]: | ||
− | + | 00147928 - 001479a8: [[Try Get Unit Misc Data By Unit ID]] | |
[[001479ac - 00147bcc]]: [[Process Unit Misc State Value]] | [[001479ac - 00147bcc]]: [[Process Unit Misc State Value]] | ||
[[00147bd0 - 00147ca4]]: | [[00147bd0 - 00147ca4]]: | ||
Line 1,118: | Line 1,161: | ||
[[00148284 - 00148484]]: | [[00148284 - 00148484]]: | ||
[[00148488 - 00148538]]: | [[00148488 - 00148538]]: | ||
− | + | 0014853c - 0014857c: [[Clear Some Staging Data]] | |
[[00148580 - 001488a4]]: [[Update Unit Status And Staged Status Data]] | [[00148580 - 001488a4]]: [[Update Unit Status And Staged Status Data]] | ||
[[001488a8 - 00148cd4]]: [[Apply Staged Status Data To Unit]] | [[001488a8 - 00148cd4]]: [[Apply Staged Status Data To Unit]] | ||
Line 1,143: | Line 1,186: | ||
00149ebc - 00149f0c: [[Find Event Instruction Byte Offset]] | 00149ebc - 00149f0c: [[Find Event Instruction Byte Offset]] | ||
[[00149f10 - 0014a014]]: | [[00149f10 - 0014a014]]: | ||
− | 0014a018 - 0014a2e8: [[Run Script Variable Command]] | + | 0014a018 - 0014a2e8: [[Run Script Variable Command]] | [[Run Script Variable Command (Alternative)]] |
− | + | 0014a2ec - 0014a398: [[Get Variable's Word Pointer from Variable's ID]] | |
[[0014a39c - 0014a3f4]]: | [[0014a39c - 0014a3f4]]: | ||
[[0014a3f8 - 0014a460]]: [[Wait Value Event Instruction]] | [[0014a3f8 - 0014a460]]: [[Wait Value Event Instruction]] | ||
[[0014a464 - 0014a488]]: | [[0014a464 - 0014a488]]: | ||
− | + | 0014a48c - 0014a4d4: [[Rand16 (Events)]] | |
[[0014a4d8 - 0014a518]]: | [[0014a4d8 - 0014a518]]: | ||
[[0014a51c - 0014a574]]: | [[0014a51c - 0014a574]]: | ||
[[0014a578 - 0014a594]]: | [[0014a578 - 0014a594]]: | ||
[[0014a598 - 0014a5e4]]: | [[0014a598 - 0014a5e4]]: | ||
− | + | ||
+ | ==Display Related== | ||
+ | 0014a5e8 - 0014a65c: [[Image Loading Setup (0x14a5e8)]] | ||
[[0014a660 - 0014a6a0]]: | [[0014a660 - 0014a6a0]]: | ||
[[0014a6a4 - 0014a6c8]]: | [[0014a6a4 - 0014a6c8]]: | ||
− | [[0014a6cc - 0014a6e0]]: [[ | + | [[0014a6cc - 0014a6e0]]: [[0x14a6cc]] |
[[0014a6e4 - 0014a7a4]]: | [[0014a6e4 - 0014a7a4]]: | ||
[[0014a7a8 - 0014a818]]: | [[0014a7a8 - 0014a818]]: | ||
− | [[ | + | 0014a81c - 0014a820: [[BATTLE.BIN: Return 0]] |
− | 0014a82c - 0014a830: jr r31 | + | [[0014a824 - 0014a828]]: jr r31 |
− | 0014a834 - 0014aa78: [[Image loading setup | + | [[0014a82c - 0014a830]]: jr r31 |
+ | 0014a834 - 0014aa78: [[Image loading setup (0x14a834)]] | ||
[[0014aa7c - 0014ab54]]: | [[0014aa7c - 0014ab54]]: | ||
[[0014ab58 - 0014ac2c]]: | [[0014ab58 - 0014ac2c]]: | ||
Line 1,168: | Line 1,214: | ||
[[0014b264 - 0014b2ec]]: | [[0014b264 - 0014b2ec]]: | ||
0014b2f0 - 0014b31c: [[Display Menu Text Entry]] | 0014b2f0 - 0014b31c: [[Display Menu Text Entry]] | ||
− | 0014b320 - 0014b34c: | + | [[0014b320 - 0014b34c]]: Display Menu Text Entry (Unused) |
− | + | 0014b350 - 0014b390: [[Display Specific Menu Text]] | |
0014b394 - 0014ba24: [[Display Menu Text]] | [[Giant message/menu loading routine]] | 0014b394 - 0014ba24: [[Display Menu Text]] | [[Giant message/menu loading routine]] | ||
0014ba28 - 0014bae0: [[Find Next Text Character]] | 0014ba28 - 0014bae0: [[Find Next Text Character]] | ||
Line 1,181: | Line 1,227: | ||
[[0014c164 - 0014c188]]: | [[0014c164 - 0014c188]]: | ||
[[0014c18c - 0014c4a4]]: | [[0014c18c - 0014c4a4]]: | ||
− | 0014c4a8 - 0014c754: [[ | + | 0014c4a8 - 0014c754: [[0x14c4a8]] |
[[0014c758 - 0014c854]]: | [[0014c758 - 0014c854]]: | ||
+ | |||
+ | ==Thread Management== | ||
[[0014c858 - 0014c89c]]: [[Wait]] (Switch To Next Thread Multiple Times) | [[0014c858 - 0014c89c]]: [[Wait]] (Switch To Next Thread Multiple Times) | ||
[[0014c8a0 - 0014c920]]: [[Initialize Thread]] | [[0014c8a0 - 0014c920]]: [[Initialize Thread]] | ||
Line 1,190: | Line 1,238: | ||
[[0014c994 - 0014c9cc]]: | [[0014c994 - 0014c9cc]]: | ||
[[0014c9d0 - 0014ca18]]: [[Wait For Thread]] | [[0014c9d0 - 0014ca18]]: [[Wait For Thread]] | ||
− | + | 0014ca1c - 0014ca34: [[Check Thread r4 Running Status]] | |
− | 0014ca38 - 0014ca54: [[Store Thread Function Parameters]] | + | 0014ca38 - 0014ca54: [[Store Thread Function Parameters]] | [[Store event command bytes]] |
− | 0014ca58 - 0014ca7c: [[Store Thread Parameters (0x14ca58)]] | + | 0014ca58 - 0014ca7c: [[Store Thread Parameters (0x14ca58)]] | [[Store event command bytes 2]] |
− | 0014ca80 - 0014cbb0: [[Switch To Next Thread]] | + | 0014ca80 - 0014cbb0: [[Switch To Next Thread]] | [[Some event data setting routine]] |
0014cbb4 - 0014cbbc: [[Return Global Pointer]] | 0014cbb4 - 0014cbbc: [[Return Global Pointer]] | ||
− | 0014cbc0 - 0014cbf0: [[Get First Thread Parameter]] | [[Get menu address | + | 0014cbc0 - 0014cbf0: [[Get First Thread Parameter]] | [[Get menu address]] |
0014cbf4 - 0014cc24: [[Get Second Thread Parameter]] | 0014cbf4 - 0014cc24: [[Get Second Thread Parameter]] | ||
[[0014cc28 - 0014cc58]]: | [[0014cc28 - 0014cc58]]: | ||
Line 1,204: | Line 1,252: | ||
0014ce78 - 0014ceb0: [[Find Text ID's Location]] | 0014ce78 - 0014ceb0: [[Find Text ID's Location]] | ||
0014ceb4 - 0014cf54: [[Call Inner Subroutine]] | 0014ceb4 - 0014cf54: [[Call Inner Subroutine]] | ||
− | + | [[0014cf28 - 0014cf54]]: | |
[[0014cf58 - 0014cf64]]: | [[0014cf58 - 0014cf64]]: | ||
0014cf68 - 001743c4: | 0014cf68 - 001743c4: | ||
Line 1,213: | Line 1,261: | ||
[[Action_menu_return_adress_(routine_0018b274_-_Store_used_weapon)|00174304 - 00174340]]: Return addresses : action menu for [[Store_used_weapon]] | [[Action_menu_return_adress_(routine_0018b274_-_Store_used_weapon)|00174304 - 00174340]]: Return addresses : action menu for [[Store_used_weapon]] | ||
[[Action_menu_return_address_(pre_formula_set_up)|00174344 - 0017436c]]: Return addresses : action menu for [[Pre_Formula_Setup_(FDC)]] | [[Action_menu_return_address_(pre_formula_set_up)|00174344 - 0017436c]]: Return addresses : action menu for [[Pre_Formula_Setup_(FDC)]] | ||
+ | |||
+ | ==Movement Calculations== | ||
+ | [[00174370 - 001743c4]]: | ||
001743c8 - 0017442c: [[Chocobo Check]] | 001743c8 - 0017442c: [[Chocobo Check]] | ||
00174430 - 00174b88: [[Store movement stuff into scratch pad]] | 00174430 - 00174b88: [[Store movement stuff into scratch pad]] | ||
Line 1,234: | Line 1,285: | ||
001764d8 - 001766b0: [[Spread_Horizontal_Jump]] | 001764d8 - 001766b0: [[Spread_Horizontal_Jump]] | ||
[[001766b4 - 00176c0c]]: | [[001766b4 - 00176c0c]]: | ||
− | + | 00176c10 - 00176c8c: [[Teleport Chances]] | |
[[00176c90 - 0017717c]]: | [[00176c90 - 0017717c]]: | ||
[[00177180 - 001773b4]]: | [[00177180 - 001773b4]]: | ||
Line 1,246: | Line 1,297: | ||
001780ec - 00178138: [[Calculate WalkTo Pathing]] | 001780ec - 00178138: [[Calculate WalkTo Pathing]] | ||
0017813c - 00178ca0: [[Calculate Pathing]] | 0017813c - 00178ca0: [[Calculate Pathing]] | ||
− | [[00178ca4 | + | 00178ca4 - 00179200: [[Find Tiles for the AI to move to (00178ca4)]] |
+ | ==Targetting Calculations== | ||
00179204 - 00179258: [[Moldball Virus Depth Check]] | 00179204 - 00179258: [[Moldball Virus Depth Check]] | ||
0017925c - 001792a0: [[Clear Some stuff for Untargetable Terrain]] | 0017925c - 001792a0: [[Clear Some stuff for Untargetable Terrain]] | ||
001792a4 - 001793fc: [[Check Vert Tolerance and if Tiles can be Chosen]] | 001792a4 - 001793fc: [[Check Vert Tolerance and if Tiles can be Chosen]] | ||
00179400 - 00179420: [[Null some Tile Data (192dd9)]] | 00179400 - 00179420: [[Null some Tile Data (192dd9)]] | ||
− | + | 00179424 - 00179514: [[Remove Close Range Routine]] | |
00179518 - 00179638: [[Calculate Tiles Hit by Ability]] | 00179518 - 00179638: [[Calculate Tiles Hit by Ability]] | ||
0017963c - 001797b0: [[Calculate Possible AoE Tiles]] | 0017963c - 001797b0: [[Calculate Possible AoE Tiles]] | ||
001797b4 - 001798ac: [[Depth Calculation]] | 001797b4 - 001798ac: [[Depth Calculation]] | ||
001798b0 - 00179a1c: [[Set initial panels]] | 001798b0 - 00179a1c: [[Set initial panels]] | ||
− | 00179a20 - 00179b54: | + | 00179a20 - 00179b54: [[Set targeting for weapon attack]] |
00179b58 - 00179c98: [[Striking/lunging modification]] | 00179b58 - 00179c98: [[Striking/lunging modification]] | ||
− | 00179c9c - 00179d80: [[Depth Calculation 2]]??? | + | 00179c9c - 00179d80: [[Depth Calculation 2]] ??? |
− | 00179d84 - 00179dc4: [[Remove | + | 00179d84 - 00179dc4: [[Remove targets for unclear reasons]] |
− | 00179dc8 - 0017a168: [[Set Ability Targeting | + | 00179dc8 - 0017a168: [[Set Ability Targeting]] | Or, more accurately, [[Set Jump Ability Targeting]]? |
− | 0017a16c - 0017a28c: [[calculate ability range with map parameters | + | 0017a16c - 0017a28c: [[calculate ability range with map parameters]] |
− | 0017a290 - 0017a514: [[Set panels affected by ability | + | 0017a290 - 0017a514: [[Set panels affected by ability]] |
0017a518 - 0017a5b8: [[Set targeting for weapon attack 2]] | 0017a518 - 0017a5b8: [[Set targeting for weapon attack 2]] | ||
0017a5bc - 0017a648: [[Set all panels targeted if targetable]] | 0017a5bc - 0017a648: [[Set all panels targeted if targetable]] | ||
0017a64c - 0017a6d8: [[Remove Selection state of all panels]] | 0017a64c - 0017a6d8: [[Remove Selection state of all panels]] | ||
0017a6dc - 0017a7b8: [[Set target state for all units panels]] | 0017a6dc - 0017a7b8: [[Set target state for all units panels]] | ||
− | 0017a7bc - 0017a8bc: [[ | + | 0017a7bc - 0017a8bc: [[Vertical Fixed Routine]] |
− | 0017a8c0 - 0017aaf4: [[Calculate Target Panels]] | + | 0017a8c0 - 0017aaf4: [[Calculate Target Panels]] / Alt version [[Set_Target_Tiles]] |
0017aaf8 - 0017ac8c: [[Calculate Targeting for Menu Types]] | 0017aaf8 - 0017ac8c: [[Calculate Targeting for Menu Types]] | ||
0017ac90 - 0017afbc: [[Targeting validation (weapon flags)]] | 0017ac90 - 0017afbc: [[Targeting validation (weapon flags)]] | ||
Line 1,290: | Line 1,342: | ||
0017cacc - 0017cd20: [[Reaction Target/Hit Calculation]] | 0017cacc - 0017cd20: [[Reaction Target/Hit Calculation]] | ||
0017cd24 - 0017ce40: [[Map calculations for attack]] Attack, charge, ranged weapon flag | 0017cd24 - 0017ce40: [[Map calculations for attack]] Attack, charge, ranged weapon flag | ||
− | 0017ce44 - 0017d34c: [[Main ability loading routine | + | 0017ce44 - 0017d34c: [[Main ability loading routine]] |
− | 0017d350 - 0017d40c: [[set target coordinates for ability | + | 0017d350 - 0017d40c: [[set target coordinates for ability]] also set regenerator target |
0017d410 - 0017d49c: [[draw out routine dealing with experience gain]] | 0017d410 - 0017d49c: [[draw out routine dealing with experience gain]] | ||
0017d4a0 - 0017d704: [[Current Action Ability Data Setting / Multi Hit Formulas]] | 0017d4a0 - 0017d704: [[Current Action Ability Data Setting / Multi Hit Formulas]] | ||
− | + | 0017d708 - 0017d84c: [[Select Random Tile For Random Fire Abilities]] | |
− | + | 0017d850 - 0017da1c: [[List and Sort Targeted Units]] | |
+ | ==Acting Caster Calculations== | ||
0017da20 - 0017dbc4: [[Ability Usage Checks and MP Reduction]] | 0017da20 - 0017dbc4: [[Ability Usage Checks and MP Reduction]] | ||
0017dbc8 - 0017dc84: [[Store Some Acting Unit Data]] | 0017dbc8 - 0017dc84: [[Store Some Acting Unit Data]] | ||
0017dc88 - 0017dca4: [[Get ID of Unit if Tile is Targetable]] | 0017dc88 - 0017dca4: [[Get ID of Unit if Tile is Targetable]] | ||
0017dca8 - 0017decc: [[Find Unit at Specified Coordinates]] | [[Check if another unit is on the same Tile]] | 0017dca8 - 0017decc: [[Find Unit at Specified Coordinates]] | [[Check if another unit is on the same Tile]] | ||
− | 0017ded0 - 0017def8: [[Clear targeting panel data | + | 0017ded0 - 0017def8: [[Clear targeting panel data]] |
− | 0017defc - 0017e174: [[Big... Contains Hamedo check]] | + | 0017defc - 0017e174: [[Big... Contains Hamedo check]] Pre Attack Phase |
− | 0017e178 - 0017e58c: [[Main reaction routine | + | 0017e178 - 0017e58c: [[Main reaction routine]] |
− | 0017e590 - 0017e64c: [[Counter magic targeting | + | 0017e590 - 0017e64c: [[Counter magic targeting]] |
− | 0017e650 - 0017e77c: [[Store counter ability | + | 0017e650 - 0017e77c: [[Store counter ability]] |
0017e780 - 0017e7e0: [[Auto Potion]] | 0017e780 - 0017e7e0: [[Auto Potion]] | ||
− | 0017e7e4 - 0017ea24: [[ | + | 0017e7e4 - 0017ea24: [[Award EXP and JP for actions]] |
0017ea28 - 0017ea7c: [[Load Job Level]] | 0017ea28 - 0017ea7c: [[Load Job Level]] | ||
0017ea80 - 0017ec14: [[Store JP; Calculate Unlocked Jobs]] | 0017ea80 - 0017ec14: [[Store JP; Calculate Unlocked Jobs]] | ||
− | 0017ec18 - 0017f01c: [[big map/panel routine ]] | + | 0017ec18 - 0017f01c: [[big map/panel routine]] |
− | 0017f020 - 0017f0e8: [[Float/Float/Fly movements ]] | + | 0017f020 - 0017f0e8: [[Float/Float/Fly movements]] |
− | 0017f0ec - 0017f178: [[Move | + | 0017f0ec - 0017f178: [[Calculate Move EXP/JP UP To earn]] |
0017f17c - 0017f2d4: [[Calculate Projected Action Effect]] | 0017f17c - 0017f2d4: [[Calculate Projected Action Effect]] | ||
0017f2d8 - 0017f318: [[Get Elemental Ability ID]] | 0017f2d8 - 0017f318: [[Get Elemental Ability ID]] | ||
+ | |||
+ | ==Battle Initialisation== | ||
0017f31c - 0017f384: [[Initialize party members Job data, Sp cap, Status initialization]] | 0017f31c - 0017f384: [[Initialize party members Job data, Sp cap, Status initialization]] | ||
0017f388 - 0017f5f4: [[Initialize units battlefield data]](ENTD ID/flags, Map location, palette, control, etc.) | 0017f388 - 0017f5f4: [[Initialize units battlefield data]](ENTD ID/flags, Map location, palette, control, etc.) | ||
Line 1,321: | Line 1,376: | ||
0017f6c4 - 0017f89c: [[Validate unit placement]] | 0017f6c4 - 0017f89c: [[Validate unit placement]] | ||
0017f8a0 - 0017fbe8: [[Load ENTD Units]] | [[Big ENTD unit loading routine]] | 0017f8a0 - 0017fbe8: [[Load ENTD Units]] | [[Big ENTD unit loading routine]] | ||
− | 0017fbec - 0017fcc4: | + | 0017fbec - 0017fcc4: [[Add Unique Value to List]] |
0017fcc8 - 0017fd04: [[Disable/Remove unit]] | 0017fcc8 - 0017fd04: [[Disable/Remove unit]] | ||
− | 0017fd08 - 0017fd7c: [[Check | + | 0017fd08 - 0017fd7c: [[Check if unit present and ENTD level setting]] |
0017fd80 - 0017fda8: [[Set unit cannot exist(but can), return r2 = 0]] | 0017fd80 - 0017fda8: [[Set unit cannot exist(but can), return r2 = 0]] | ||
0017fdac - 0017fdd8: [[Erase unit, set to be removed from party]] | 0017fdac - 0017fdd8: [[Erase unit, set to be removed from party]] | ||
+ | |||
+ | ==Movement Calculations 2== | ||
0017fddc - 0017ffbc: [[Set Rider/Mount's X/Y Data]] | 0017fddc - 0017ffbc: [[Set Rider/Mount's X/Y Data]] | ||
0017ffc0 - 00180130: [[Set target for mounted unit, move find item/trap]] | 0017ffc0 - 00180130: [[Set target for mounted unit, move find item/trap]] | ||
Line 1,334: | Line 1,391: | ||
001802c8 - 001804c0: [[Set map Item/trap data]] | 001802c8 - 001804c0: [[Set map Item/trap data]] | ||
001804c4 - 0018052c: [[Move find item flag calculation]] | 001804c4 - 0018052c: [[Move find item flag calculation]] | ||
+ | ==Unit Death Handling== | ||
00180530 - 00180900: [[Generate Crystal or Treasure]] | 00180530 - 00180900: [[Generate Crystal or Treasure]] | ||
00180904 - 00180a04: [[Learn from Crystal]] | 00180904 - 00180a04: [[Learn from Crystal]] | ||
Line 1,340: | Line 1,398: | ||
00180b2c - 00180c8c: [[Check Base Class]] | [[Ramza Causes Game Over]] | 00180b2c - 00180c8c: [[Check Base Class]] | [[Ramza Causes Game Over]] | ||
00180c90 - 00180dac: [[Find Unit Data Pointer For ENTD Unit ID]] | [[Unit Existence/crystaltreasure check]] Uses 0x183 byte, 0x161 ENTD ID | 00180c90 - 00180dac: [[Find Unit Data Pointer For ENTD Unit ID]] | [[Unit Existence/crystaltreasure check]] Uses 0x183 byte, 0x161 ENTD ID | ||
− | 00180db0 - 00180dfc: [[Party level XX modification | + | 00180db0 - 00180dfc: [[Party level XX modification]] | [[Set Enemy Level Data]] |
00180e00 - 00180f3c: [[Find War Trophies and Bonus Money]] | [[Store some ENTD Data(War Trophy, gil), party level calculation]] | 00180e00 - 00180f3c: [[Find War Trophies and Bonus Money]] | [[Store some ENTD Data(War Trophy, gil), party level calculation]] | ||
[[00180f40 - 00180fe0]]: | [[00180f40 - 00180fe0]]: | ||
+ | ==Player Action & Menuing== | ||
00180fe4 - 0018109c: [[Prep for Special Status Flag Enabling]] | 00180fe4 - 0018109c: [[Prep for Special Status Flag Enabling]] | ||
001810a0 - 001810d0: [[Map Location Calculation]] | 001810a0 - 001810d0: [[Map Location Calculation]] | ||
001810d4 - 00181110: [[Get Existent Battle Unit Pointer]] | [[Load unit Data]] (exists check within) | 001810d4 - 00181110: [[Get Existent Battle Unit Pointer]] | [[Load unit Data]] (exists check within) | ||
− | 00181114 - 00181148: [[Find Active Unit Data Pointer | + | 00181114 - 00181148: [[Find Active Unit Data Pointer]] |
0018114c - 001811f4: [[Get Menu ID based on mount, moveable/actable]] | 0018114c - 001811f4: [[Get Menu ID based on mount, moveable/actable]] | ||
− | 001811f8 - 00181308: [[Player Control Routine | + | 001811f8 - 00181308: [[Player Control Routine]] |
0018130c - 001813bc: [[Weapon Guard Usability ]] (Check if Unit can React) | 0018130c - 001813bc: [[Weapon Guard Usability ]] (Check if Unit can React) | ||
001813c0 - 00181580: [[Setup Act Menu]] | [[Player Skill Set]] | 001813c0 - 00181580: [[Setup Act Menu]] | [[Player Skill Set]] | ||
− | 00181584 - 0018171c: [[Skillset Loading | + | 00181584 - 0018171c: [[Skillset Loading]] |
− | 00181720 - 001817bc: [[Get Number of Turns to Resolve]] | [[ | + | 00181720 - 001817bc: [[Get Number of Turns to Resolve]] | [[Get Number of Turns to Resolve(Alt)]] |
001817c0 - 00181b6c: [[Get Unit Skillset Ability Data]] | [[Load ability data for skillset]] (MP, CT, req. sword booleans) | 001817c0 - 00181b6c: [[Get Unit Skillset Ability Data]] | [[Load ability data for skillset]] (MP, CT, req. sword booleans) | ||
00181b70 - 00181b90: [[Item Inventory Ability Display]] | 00181b70 - 00181b90: [[Item Inventory Ability Display]] | ||
Line 1,360: | Line 1,419: | ||
00181ef0 - 00181f10: [[Math Skill Ability Display]] | 00181ef0 - 00181f10: [[Math Skill Ability Display]] | ||
00181f14 - 00181f34: [[Math skill ability loading routine]] | 00181f14 - 00181f34: [[Math skill ability loading routine]] | ||
− | + | 00181f38 - 00182064: [[Math skill Ability ID Check]] | |
00182068 - 001821c8: [[Math Skill ability loading]] | 00182068 - 001821c8: [[Math Skill ability loading]] | ||
001821cc - 001822c8: [[Elemental ability loading]] | 001821cc - 001822c8: [[Elemental ability loading]] | ||
Line 1,368: | Line 1,427: | ||
00182664 - 00182684: [[Draw Out]] | 00182664 - 00182684: [[Draw Out]] | ||
00182688 - 00182784: [[Draw Out 2 (main routine)]] | 00182688 - 00182784: [[Draw Out 2 (main routine)]] | ||
− | 00182788 - 001827b0: [[Call | + | 00182788 - 001827b0: [[Call Charge Skillset Loading]] |
− | 001827b4 - 001827ec: [[ | + | 001827b4 - 001827ec: [[Charge Skillset Loading]] |
+ | |||
+ | ==In-Between Turns Unit & Status Processing== | ||
001827f0 - 00183074: [[In between turn control routine]] | 001827f0 - 00183074: [[In between turn control routine]] | ||
*0018282c - 001828ac: Initialize data? | *0018282c - 001828ac: Initialize data? | ||
Line 1,375: | Line 1,436: | ||
*00182924 - 00182978: Set active turn | *00182924 - 00182978: Set active turn | ||
*001829b8 - 00182a40: Next clocktick - CT increment | *001829b8 - 00182a40: Next clocktick - CT increment | ||
− | + | 00182a44 - 00182ba8: [[Dead/next turn processing (100CT)]] | |
*00182bac - 00182c04: Ability CT decrement | *00182bac - 00182c04: Ability CT decrement | ||
*00182c08 - 00182c8c: Post-ability CT setting | *00182c08 - 00182c8c: Post-ability CT setting | ||
Line 1,393: | Line 1,454: | ||
001834bc - 00183540: [[Check some list for Unit Battle ID]] | 001834bc - 00183540: [[Check some list for Unit Battle ID]] | ||
00183544 - 001835a4: [[Calculate AT List and Get Specific Unit ID]] | 00183544 - 001835a4: [[Calculate AT List and Get Specific Unit ID]] | ||
− | + | 001835a8 - 001835f4: [[Unit doesn't exist/deadcrystaltreasurepetrify/being ridden check]] | |
− | 001835f8 - 00183708: [[AT List Preview | + | 001835f8 - 00183708: [[AT List Preview]] |
0018370c - 00183ac8: [[Calculate AT List]] | 0018370c - 00183ac8: [[Calculate AT List]] | ||
00183acc - 00183ba4: [[AT List Sorting]] | 00183acc - 00183ba4: [[AT List Sorting]] | ||
Line 1,401: | Line 1,462: | ||
00183bf0 - 00183c68: [[Set move/act flags]] used in defend/equip change routines | 00183bf0 - 00183c68: [[Set move/act flags]] used in defend/equip change routines | ||
00183c6c - 00183d0c: [[End of Turn]] | 00183c6c - 00183d0c: [[End of Turn]] | ||
− | 00183d10 - 00183d6c: [[Able to move/act checks (Menu | + | 00183d10 - 00183d6c: [[Able to move/act checks (Menu)]] |
00183d70 - 00183ddc: [[Change of Turn check]] | 00183d70 - 00183ddc: [[Change of Turn check]] | ||
00183de0 - 00183dfc: [[Enable/disable acting status]] | 00183de0 - 00183dfc: [[Enable/disable acting status]] | ||
00183e00 - 00183e38: [[another intermediate routine]] | 00183e00 - 00183e38: [[another intermediate routine]] | ||
− | + | 00183e3c - 00183e90: [[Unit exists checks]] | |
− | + | 00183e94 - 00183e9c: [[Activates move/act]] | |
00183ea0 - 00183f5c: [[something involving map coordinates]] | 00183ea0 - 00183f5c: [[something involving map coordinates]] | ||
00183f60 - 00183fb0: [[Load Move Find-Item data to Current Map]] | 00183f60 - 00183fb0: [[Load Move Find-Item data to Current Map]] | ||
Line 1,413: | Line 1,474: | ||
0018414c - 001842f4: [[deals with map coordinates 3]] | 0018414c - 001842f4: [[deals with map coordinates 3]] | ||
001842f8 - 00184308: [[Clear r2 2]] | 001842f8 - 00184308: [[Clear r2 2]] | ||
+ | |||
+ | ==Formula Processing Subroutines== | ||
0018430c - 00184338: [[Force Attack Miss]] | 0018430c - 00184338: [[Force Attack Miss]] | ||
− | 0018433c - 0018435c: [[Cause Action Miss]] | [[Force Attack Miss | + | 0018433c - 0018435c: [[Cause Action Miss]] | [[Force Attack Miss 2]] |
− | + | 00184360 - 001843e8: [[Dance/Song hit %]] Returns if attack hit or not | |
001843ec - 0018460c: [[Knockback Calculation]] | 001843ec - 0018460c: [[Knockback Calculation]] | ||
00184610 - 001848d4: [[Knockback 2]] | 00184610 - 001848d4: [[Knockback 2]] | ||
001848d8 - 00184960: [[Attack Evaded Calculations]] | 001848d8 - 00184960: [[Attack Evaded Calculations]] | ||
− | 00184964 - 00184b20: | + | 00184964 - 00184b20: [[Compatibility]] |
00184b24 - 00184e3c: [[Modify Status Inflictions]] | [[Validate Status Changes]] | 00184b24 - 00184e3c: [[Modify Status Inflictions]] | [[Validate Status Changes]] | ||
00184e40 - 00184e94: [[Nullify Action]] | [[Elemental Nullification]] | 00184e40 - 00184e94: [[Nullify Action]] | [[Elemental Nullification]] | ||
Line 1,435: | Line 1,498: | ||
00185a9c - 00185c90: [[Base XA Calculation]] | 00185a9c - 00185c90: [[Base XA Calculation]] | ||
00185c94 - 00185cbc: [[Store MA and Y]] | 00185c94 - 00185cbc: [[Store MA and Y]] | ||
− | + | 00185cc0 - 00185cfc: [[Base XA and YA for MA + Y / 2 ]] | |
− | + | 00185d00 - 00185d3c: [[Store PA and PA + Y / 2]] | |
00185d40 - 00185d7c: [[Store MA and PA + Y / 2]] | 00185d40 - 00185d7c: [[Store MA and PA + Y / 2]] | ||
00185d80 - 00185da8: [[Store MA and X]] | 00185d80 - 00185da8: [[Store MA and X]] | ||
Line 1,464: | Line 1,527: | ||
00186744 - 00186810: [[Steal Gil]] | 00186744 - 00186810: [[Steal Gil]] | ||
00186814 - 001868ec: [[Set EXP Stolen]] | 00186814 - 001868ec: [[Set EXP Stolen]] | ||
− | + | 001868f0 - 00186918: [[36 +PA (Y)]] | |
0018691c - 001869e8: [[Damage and Knockback Routine (Dash, tackle, throw stone)]] | 0018691c - 001869e8: [[Damage and Knockback Routine (Dash, tackle, throw stone)]] | ||
001869ec - 00186af4: [[Song abilities]] | 001869ec - 00186af4: [[Song abilities]] | ||
00186af8 - 00186c00: [[Dance abilities]] | 00186af8 - 00186c00: [[Dance abilities]] | ||
00186c04 - 00186cfc: [[Talk Skill]] | 00186c04 - 00186cfc: [[Talk Skill]] | ||
− | + | 00186d00 - 00186d28: [[3A +Brave (Y)]] | |
− | + | 00186d2c - 00186d54: [[39 +SP (Y)]] | |
− | + | 00186d58 - 00186db8: [[3B +Brave (X) +PA/MA/SP (Y)]] | |
− | + | 00186dbc - 00186e24: [[3C Heal (CasMaxHP*2/5) DmgCas (CasMaxHP/5)]] | |
− | + | 00186e28 - 00186e50: [[43 Dmg (CasMaxHP-CasCurHP)]] | |
− | + | 00186e54 - 00186e74: [[44 Dmg (TarCurMP)]] | |
− | + | 00186e78 - 00186ea0: [[45 Dmg (TarMaxHP-TarCurHP)]] | |
00186ea4 - 00186ecc: [[Y brave]] | 00186ea4 - 00186ecc: [[Y brave]] | ||
00186ed0 - 00186fcc: [[Weather Elemental effects]]? | 00186ed0 - 00186fcc: [[Weather Elemental effects]]? | ||
00186fd0 - 00186ff4: [[Elemental Damage Modification (Prep)]] | 00186fd0 - 00186ff4: [[Elemental Damage Modification (Prep)]] | ||
− | 00186ff8 - 001870f8: [[ | + | 00186ff8 - 001870f8: [[Apply Elemental]] |
001870fc - 0018714c: [[Elemental Absorption]] | 001870fc - 0018714c: [[Elemental Absorption]] | ||
00187150 - 00187244: [[Faith Calculation]] | 00187150 - 00187244: [[Faith Calculation]] | ||
Line 1,513: | Line 1,576: | ||
00188638 - 001886a0: [[Weapon Damage Calculation]] | 00188638 - 001886a0: [[Weapon Damage Calculation]] | ||
001886a4 - 001886d0: [[Damage Calculation]] | 001886a4 - 001886d0: [[Damage Calculation]] | ||
− | 001886d4 - 00188718: [[ | + | 001886d4 - 00188718: [[Calculate_Accuracy_for_Physical]] |
0018871c - 00188740: [[Elemental Absorb and status roll]] 19% conditional status | 0018871c - 00188740: [[Elemental Absorb and status roll]] 19% conditional status | ||
00188744 - 00188778: [[Magical Support/Status/Compat]] | 00188744 - 00188778: [[Magical Support/Status/Compat]] | ||
0018877c - 001887c0: [[Elemental XA * YA]] | 0018877c - 001887c0: [[Elemental XA * YA]] | ||
001887c4 - 001887fc: [[Elemental Absorb/Status]] | 001887c4 - 001887fc: [[Elemental Absorb/Status]] | ||
− | |||
00188800 - 00188854: [[MA + X]] | 00188800 - 00188854: [[MA + X]] | ||
00188858 - 00188884: [[Magical XA * YA]] | 00188858 - 00188884: [[Magical XA * YA]] | ||
− | + | 00188888 - 00188960: [[Golem Accuracy]] Calculate Accuracy as User Faith * (MA + X)% | |
00188964 - 001889a0: [[Truth/Formula 5E-5F Magical damage]] | 00188964 - 001889a0: [[Truth/Formula 5E-5F Magical damage]] | ||
001889a4 - 001889c8: [[2Truth/Formula 5E-5F Calculate damage]] | 001889a4 - 001889c8: [[2Truth/Formula 5E-5F Calculate damage]] | ||
Line 1,529: | Line 1,591: | ||
00188adc - 00188b10: [[Cluster of Physical Routines]] | 00188adc - 00188b10: [[Cluster of Physical Routines]] | ||
00188b14 - 00188b60: [[Physical Routine for Hit % abilities]] | 00188b14 - 00188b60: [[Physical Routine for Hit % abilities]] | ||
+ | |||
+ | ==Formulas== | ||
00188b64 - 0018ac70: [[Formulas]] | 00188b64 - 0018ac70: [[Formulas]] | ||
− | + | 00188b64 - 00188ba0: [[01 Dmg_(Weapon)]] | |
− | + | 00188ba4 - 00188be0: [[02 Dmg_(Weapon)]] | |
− | + | 00188be4 - 00188c20: [[03 Dmg_(WP^2)]] | |
− | + | 00188c24 - 00188c98: [[04 Magic Gun]] | |
− | + | 00188c9c - 00188cf0: [[05 Dmg (Weapon)]] | |
− | + | 00188cf4 - 00188d38: [[06 AbsHP (Weapon)]] | |
− | + | 00188d3c - 00188d80: [[07 Heal (Weapon)]] | |
− | + | 00188d84 - 00188df0: [[08 Dmg F(MA*Y)]] | |
− | + | 00188df4 - 00188e74: [[09 Dmg (Y/100)% Hit F(MA+X)%]] | |
− | + | 00188e78 - 00188eb4: [[0A Hit F(MA+X)%]] | |
− | + | 00188eb8 - 00188ef4: [[0B Hit F(MA+X)%]] | |
− | + | 00188ef8 - 00188f34: [[0C Heal F(MA*Y)]] | |
− | + | 00188f38 - 00188f8c: [[0D Heal (Y)% Hit F(MA+X)%]] | |
− | + | 00188f90 - 00189080: [[0E Dmg (Y)% Hit F(MA+X)% 100% Status Hide Status]] | |
− | + | 00189084 - 001890d8: [[0F AbsMP (Y)% Hit F(MA+X)%]] | |
− | + | 001890dc - 00189120: [[10 AbsHP (Y)% Hit F(MA+X)%]] | |
− | [[ | + | 00189124 - 00189128: [[11]] (does nothing) |
− | [[ | + | 0018912c - 00189160: [[12 Set Quick Hit F(MA+X)%]] |
− | + | 00189164 - 00189168: [[13]] (does nothing) | |
− | + | 0018916c - 001891a8: [[14 Set Golem Hit CasF/100*(MA+X)%]] | |
− | + | 001891ac - 00189200: [[15 Set CT00 Hit F(MA+X)%]] | |
− | + | 00189204 - 00189258: [[16 DmgMP (TarCurMP) Hit F(MA+X)%]] | |
− | + | 0018925c - 00189298: [[17 Dmg (TarCurHP-1) Hit F(MA+X)%]] | |
− | + | 0018929c - 001892a0: [[18]] (does nothing) | |
− | + | 001892a4 - 001892a8: [[19]] (does nothing) | |
− | + | 001892ac - 00189338: [[1A Hit F(MA+Y)% // -PA/MA/SP (X)]] | |
− | + | 0018933c - 00189378: [[1B DmgMP (MA+Y)% Hit F(X)%]] | |
− | + | 0018937c - 001893d4: [[1C Hit (X)%]] Sing | |
− | + | 001893d8 - 00189430: [[1D Hit (X)%]] Dance | |
− | + | 00189434 - 00189460: [[1E Dmg ((MA+Y)*MA/2)]] | |
− | + | 00189464 - 001895c0: [[1F Dmg ((100-CasF)*(100-TarF)*(MA+Y)*MA/2)]] | |
− | + | 001895c4 - 001895f0: [[20 Dmg (MA*Y)]] Draw Out | |
− | + | 001895f4 - 00189650: [[21 DmgMP (MA*Y)]] Draw Out | |
− | + | 00189654 - 00189678: [[22 Hit (100%) Status]] Draw Out | |
− | + | 0018967c - 001896b0: [[23 Heal (MA*Y)]] Draw Out | |
− | + | 001896b4 - 001896e8: [[24 Dmg ((PA+Y)/2*MA)]] | |
− | + | 001896ec - 00189790: [[25 Equipped: Break Hit (PA+WP+X)%]] | |
− | + | 00189794 - 00189824: [[26 Equipped: Steal Hit (SP+X)%]] | |
− | + | 00189828 - 0018986c: [[27 StealGil (CasLVL*SP) Hit (SP+X)%]] | |
− | + | 00189870 - 0018990c: [[28 StealExp (Lowest of TarCurExp & SP+Y) Hit (SP+X)%]] | |
− | + | 00189910 - 001899a0: [[29 OppositeSex: Hit (MA+X)%]] | |
− | + | 001899a4 - 00189a8c: [[2A Hit (MA+X)% // AffectBraveOrFaith(Y)]] | |
− | + | 00189a90 - 00189ad4: [[2B Hit (PA+X)% // -PA/MA/SP (X)]] | |
− | + | 00189ad8 - 00189b1c: [[2C DmgMP (X)% Hit (PA+Y)%]] | |
− | + | 00189b20 - 00189b90: [[2D Dmg (PA*(WP+Y)) 100% Status]] | |
− | + | 00189b94 - 00189c4c: [[2E Equipped:Break Dmg (PA*WP)]] | |
− | + | 00189c50 - 00189c8c: [[2F AbsMP (PA*WP)]] | |
− | + | 00189c90 - 00189ccc: [[30 AbsHP (PA*WP)]] | |
− | + | 00189cd0 - 00189d70: [[31 Dmg ((PA+Y)/2*PA)]] | |
− | + | 00189d74 - 00189e24: [[32 Dmg (Rdm(1…X)*(PA*3+Y))]] | |
− | + | 00189e28 - 00189e90: [[33 Hit (PA+X)%]] | |
− | + | 00189e94 - 00189f04: [[34 Heal (PA*Y) HealMP (PA*Y/2)]] | |
− | + | 00189f08 - 00189f80: [[35 Heal (Y)% Hit (PA+X)%]] | |
− | + | 00189f84 - 00189fc8: [[37 Dmg (Rdm(1…Y)*PA)]] | |
− | + | 00189fcc - 0018a008: [[3D Hit (MA+X)%]] | |
− | + | 0018a00c - 0018a028: [[3E Dmg (TarMaxHP-1)]] | |
− | + | 0018a02c - 0018a084: [[3F Hit (SP+X)%]] | |
− | + | 0018a088 - 0018a110: [[40 Undead: Hit (SP+X)%]] | |
− | + | 0018a114 - 0018a178: [[41 Hit (MA+X)%]] | |
− | + | 0018a17c - 0018a214: [[42 Dmg (PA*Y) DmgCas (PA*Y/X)]] | |
− | + | 0018a218 - 0018a21c: [[46]] (does nothing) | |
− | + | 0018a220 - 0018a24c: [[47 AbsHP (Y)% 100% Status]] | |
− | + | 0018a250 - 0018a2a0: [[48 Heal (Z*10)]] | |
− | + | 0018a2a4 - 0018a2c0: [[49 HealMP (Z*10)]] | |
− | + | 0018a2c4 - 0018a2e8: 4A [[Elixir Formula]] | |
− | + | 0018a2ec - 0018a39c: [[4B Heal (Rdm(1..9)) 100% Status]] | |
− | + | 0018a3a0 - 0018a3cc: [[4C Heal (MA*Y)]] | |
− | + | 0018a3d0 - 0018a41c: [[4D AbsHP (Y)% Hit (MA+X)%]] | |
− | + | 0018a420 - 0018a454: [[4E Dmg (MA*Y)]] | |
− | + | 0018a458 - 0018a49c: [[4F Dmg (CasMaxHP-CasCurHP) Hit (PA+X)%]] | |
− | + | 0018a4a0 - 0018a4e4: [[50 Hit (MA+X)%]] | |
− | + | 0018a4e8 - 0018a550: [[51 Hit (MA+X)%]] | |
− | + | 0018a554 - 0018a5e0: [[52 Dmg (CasMaxHP-CasCurHP) 100% Add Status Caster in AoE: DmgSelf (CasCurHP)]] | |
− | + | 0018a5e4 - 0018a664: [[53 Dmg (X)% Hit (MA+X)%]] | |
− | + | 0018a668 - 0018a694: [[54 HealMP (MA*Y)]] | |
− | + | 0018a698 - 0018a6f4: [[55 –PA (Y) Hit (MA+X)%]] | |
− | + | 0018a6f8 - 0018a754: [[56 –MA (Y) Hit (MA+X)%]] | |
− | + | 0018a758 - 0018a820: [[57 +Lvl(1) NS 100% Add Status on Caster]] | |
− | + | 0018a824 - 0018a904: [[58 Generic: Set Morbol: Hit(MA+X)%]] | |
− | + | 0018a908 - 0018a97c: [[59 –Lvl(1) Hit (MA+X)%]] | |
− | + | 0018a980 - 0018a9c0: [[5A Dragon: Hit(100)%]] | |
− | + | 0018a9c4 - 0018aa0c: [[5B Dragon: Heal (Y)% 100% Add Status]] | |
− | + | 0018aa10 - 0018aa50: [[5C Dragon: +Brave (X) +PA/MA/SP(Y)]] | |
− | + | 0018aa54 - 0018aa94: [[5D Dragon: Set Quick]] | |
− | + | 0018aa98 - 0018aac4: [[5E Dmg ((MA+Y)/2*MA)]] | |
− | + | 0018aac8 - 0018aaf4: [[5F Dmg ((MA+Y)/2*MA)]] | |
− | + | 0018aaf8 - 0018ab14: [[60 Dmg ((MA+Y)/2*MA) 6.25 Status]] | |
− | 0018ac74 - 0018acd8: [[remove transparent status if Jump is used | + | 0018ab18 - 0018ab54: [[61 –Brave (Y) Hit F(MA+X)%]] |
− | 0018acdc - 0018ad54: [[Apply Status and Check Undead]] | + | 0018ab58 - 0018ab94: [[62 –Brave (Y) Hit (MA+X)%]] |
− | 0018ad58 - 0018adf0: [[ | + | 0018ab98 - 0018ac40: [[63 Dmg (SP*WP)]] |
+ | 0018ac44 - 0018ac70: [[64 Dmg (PA * WP); if using Spear (PA * 3/2 * WP); if weaponless (PA * Brave /100 * WP)]] | ||
+ | ==Post Formula Handling== | ||
+ | 0018ac74 - 0018acd8: [[remove transparent status if Jump is used]] | ||
+ | 0018acdc - 0018ad54: [[Apply Status and Check Undead]] | ||
+ | 0018ad58 - 0018adf0: [[Switch_Ability_to_default_Attack]] | ||
0018adf4 - 0018ae38: [[action data nulling]] | 0018adf4 - 0018ae38: [[action data nulling]] | ||
− | 0018ae3c - 0018af28: [[Knockback | + | 0018ae3c - 0018af28: [[Knockback]] |
0018af2c - 0018b270: [[Perform reaction abilities]] | 0018af2c - 0018b270: [[Perform reaction abilities]] | ||
0018b274 - 0018b348: [[Store used weapon]] based on action menu byte | 0018b274 - 0018b348: [[Store used weapon]] based on action menu byte | ||
Line 1,628: | Line 1,697: | ||
0018ba44 - 0018bcec: [[set some data for current attack]] | 0018ba44 - 0018bcec: [[set some data for current attack]] | ||
0018bcf0 - 0018bd30: [[Called by Nullify Action]] - Glain | 0018bcf0 - 0018bd30: [[Called by Nullify Action]] - Glain | ||
− | 0018bd34 - 0018bd70: [[Remove Knockback Flag]] | [[ | + | 0018bd34 - 0018bd70: [[Remove Knockback Flag]] | [[Possibly nullify steal item]] |
0018bd74 - 0018bdd0: [[Current Action Data Nulling]] | 0018bd74 - 0018bdd0: [[Current Action Data Nulling]] | ||
0018bdd4 - 0018be04: [[Null Some Status Data]] | 0018bdd4 - 0018be04: [[Null Some Status Data]] | ||
− | 0018be08 - 0018c67c: [[ | + | 0018be08 - 0018c67c: [[Attack Finalisation & Reaction Flagging]] |
0018c680 - 0018c754: [[Poach Inventory Routine]] | 0018c680 - 0018c754: [[Poach Inventory Routine]] | ||
0018c758 - 0018c858: [[some kind of ENTD/Unit manipulation]] | 0018c758 - 0018c858: [[some kind of ENTD/Unit manipulation]] | ||
0018c85c - 0018c91c: [[Level up/down ability]] | 0018c85c - 0018c91c: [[Level up/down ability]] | ||
+ | |||
+ | ==Reaction processing== | ||
0018c920 - 0018c964: [[Check if unit can react 1]] | 0018c920 - 0018c964: [[Check if unit can react 1]] | ||
− | 0018c968 - 0018c99c: [[Check if unit can react | + | 0018c968 - 0018c99c: [[Check if unit can react]] |
− | 0018c9a0 - 0018c9e0: [[Reaction check | + | 0018c9a0 - 0018c9e0: [[Reaction check]] |
0018c9e4 - 0018cafc: [['Reflect', Blade Grasp, and Arrow Guard]] | 0018c9e4 - 0018cafc: [['Reflect', Blade Grasp, and Arrow Guard]] | ||
0018cb00 - 0018cc30: [[Sunken State, Caution, Dragon Spirit, etc. usability]] | 0018cb00 - 0018cc30: [[Sunken State, Caution, Dragon Spirit, etc. usability]] | ||
− | |||
0018cc34 - 0018ccd4: [[MP Switch, Distribute, and Damage Split usability]] | 0018cc34 - 0018ccd4: [[MP Switch, Distribute, and Damage Split usability]] | ||
0018ccd8 - 0018ce00: [[PA Save, MA Save, Speed Save Regenerator, HP Restore, MP Restore, Critical Quick, Meatbone Slash, Auto Potion, Gilgame Heart check]] | 0018ccd8 - 0018ce00: [[PA Save, MA Save, Speed Save Regenerator, HP Restore, MP Restore, Critical Quick, Meatbone Slash, Auto Potion, Gilgame Heart check]] | ||
− | 0018ce04 - 0018ce84: | + | 0018ce04 - 0018ce84: [[Counter, Counter Tackle, Counter Flood, Brave Up, Dragon Spirit, Sunken State, and Caution Usability usability]] |
0018ce88 - 0018cef0: [[PA Save, MA Save, Speed Save, Regenerator, Auto Potion, Gilgame Heart usability]] | 0018ce88 - 0018cef0: [[PA Save, MA Save, Speed Save, Regenerator, Auto Potion, Gilgame Heart usability]] | ||
0018cef4 - 0018cf70: [[Critical Quick, HP Restore, MP Restore, Meatbone Slash usability]] | 0018cef4 - 0018cf70: [[Critical Quick, HP Restore, MP Restore, Meatbone Slash usability]] | ||
0018cf74 - 0018cfe4: [[Face Up and Absorb Used MP usability]] | 0018cf74 - 0018cfe4: [[Face Up and Absorb Used MP usability]] | ||
− | 0018cfe8 - 0018d04c: [[Reflect Reaction | + | 0018cfe8 - 0018d04c: [[Reflect "Reaction"]] |
0018d050 - 0018d0e4: [[Blade Grasp Usability]] | 0018d050 - 0018d0e4: [[Blade Grasp Usability]] | ||
0018d0e8 - 0018d1b4: [[Arrow Guard Usability]] | 0018d0e8 - 0018d1b4: [[Arrow Guard Usability]] | ||
Line 1,654: | Line 1,724: | ||
0018d318 - 0018d380: [[Damage Split Usability]] | 0018d318 - 0018d380: [[Damage Split Usability]] | ||
0018d384 - 0018d3bc: [[Chance to React]] | 0018d384 - 0018d3bc: [[Chance to React]] | ||
+ | |||
+ | ==Post Action Handling== | ||
0018d3c0 - 0018d56c: [[Steal Routine]] | 0018d3c0 - 0018d56c: [[Steal Routine]] | ||
0018d570 - 0018d61c: [[Stat Increment/Decrement]] | 0018d570 - 0018d61c: [[Stat Increment/Decrement]] | ||
Line 1,660: | Line 1,732: | ||
0018d7c8 - 0018d864: [[Poison and Regen]] | 0018d7c8 - 0018d864: [[Poison and Regen]] | ||
0018d868 - 0018d90c: [[Transparent removal routine]] | 0018d868 - 0018d90c: [[Transparent removal routine]] | ||
− | 0018d910 - 0018da00: [[Process Expiring Statuses]] | [[status CT decrement and innate statuses | + | 0018d910 - 0018da00: [[Process Expiring Statuses]] | [[status CT decrement and innate statuses]] |
0018da04 - 0018da40: [[Set Action Target Variables]] | [[target pointers]] | 0018da04 - 0018da40: [[Set Action Target Variables]] | [[target pointers]] | ||
0018da44 - 0018da84: [[Crystal, Dead, Jump, Petrify, Treasure check ]] | 0018da44 - 0018da84: [[Crystal, Dead, Jump, Petrify, Treasure check ]] | ||
Line 1,668: | Line 1,740: | ||
0018df0c - 0018dff4: [[Prep gained exp/jp/level/job level]] + other stuff? | 0018df0c - 0018dff4: [[Prep gained exp/jp/level/job level]] + other stuff? | ||
0018dff8 - 0018e078: [[Main Reaction subroutine - ENTD/ID stuff]] - Calculate Unlocked Jobs/set ability element = dark? | 0018dff8 - 0018e078: [[Main Reaction subroutine - ENTD/ID stuff]] - Calculate Unlocked Jobs/set ability element = dark? | ||
− | 0018e07c - 0018e1ac: [[ | + | 0018e07c - 0018e1ac: [[Post Ability Hardcoding]] dead hp=0, remove ability CT, remove player control |
0018e1b0 - 0018e244: [[Remove control based on status]] | 0018e1b0 - 0018e244: [[Remove control based on status]] | ||
0018e248 - 0018e30c: [[Inflicted status CT setting, xfer last used CT]] | 0018e248 - 0018e30c: [[Inflicted status CT setting, xfer last used CT]] | ||
0018e310 - 0018e5e0: [[Store status,modified ENTD for current attack]] | 0018e310 - 0018e5e0: [[Store status,modified ENTD for current attack]] | ||
− | 0018e5e4 - 0018e624: [[Transfer Considered Action Data to AI]] | + | 0018e5e4 - 0018e624: [[Transfer Considered Action Data to AI]] - duplicated [[Store current attack data into AI]] |
− | + | 0018e628 - 0018e65c: [[0018e628_-_0018e65c]] | |
[[0018e660 - 0018e6b4]]: Used by Weather Elemental effects routine | [[0018e660 - 0018e6b4]]: Used by Weather Elemental effects routine | ||
0018e6b8 - 0018e8a8: [[Process Learn on Hit]] | [[Learn on hit 1]] | 0018e6b8 - 0018e8a8: [[Process Learn on Hit]] | [[Learn on hit 1]] | ||
0018e8ac - 0018e9b8: [[Learn Used Ability]] | [[Learn on hit 2]] | 0018e8ac - 0018e9b8: [[Learn Used Ability]] | [[Learn on hit 2]] | ||
0018e9bc - 0018e9e4: [[Enable Special Status Flags]] | [[Determine if Status Flags can be Enabled]] | 0018e9bc - 0018e9e4: [[Enable Special Status Flags]] | [[Determine if Status Flags can be Enabled]] | ||
− | 0018e9e8 - 0018ea94: [[Item quantity increment for steal/break | + | 0018e9e8 - 0018ea94: [[Item quantity increment for steal/break]] |
0018ea98 - 0018eb4c: [[Add price of item / 4 to total gil]] | 0018ea98 - 0018eb4c: [[Add price of item / 4 to total gil]] | ||
0018eb50 - 0018ec0c: [[Handle Steal Exp]] | [[Apply Exp gain / Level up]] | 0018eb50 - 0018ec0c: [[Handle Steal Exp]] | [[Apply Exp gain / Level up]] | ||
Line 1,686: | Line 1,758: | ||
0018edf8 - 0018ee20: [[Store ability data]] 80193868 + 0x10 bytes | 0018edf8 - 0018ee20: [[Store ability data]] 80193868 + 0x10 bytes | ||
0018ee24 - 0018ee64: [[Count number of targets hit by ability]] | 0018ee24 - 0018ee64: [[Count number of targets hit by ability]] | ||
− | 0018ee68 - 0018ee9c: [[store 8019837c if not reacting | + | 0018ee68 - 0018ee9c: [[store 8019837c if not reacting]] |
0018eea0 - 0018eed4: [[Random Process, gives a number between 0-7fff]] | 0018eea0 - 0018eed4: [[Random Process, gives a number between 0-7fff]] | ||
0018eed8 - 0018ef28: [[Random Process, (gives a random based on r4 (MOD) and checks against r5 (chance to work))]] | 0018eed8 - 0018ef28: [[Random Process, (gives a random based on r4 (MOD) and checks against r5 (chance to work))]] | ||
− | 0018ef2c - 0018ef30: jr r31 | + | [[0018ef2c - 0018ef30]]: jr r31 |
0018ef34 - 0018f034: [[Current Action Attacker Data Setting]] | 0018ef34 - 0018f034: [[Current Action Attacker Data Setting]] | ||
0018f038 - 0018f2ac: [[Mimic ability setting]] | 0018f038 - 0018f2ac: [[Mimic ability setting]] | ||
0018f2b0 - 0018f4c4: [[Map Max X,Y, targetable panel checks]] | 0018f2b0 - 0018f4c4: [[Map Max X,Y, targetable panel checks]] | ||
0018f4c8 - 0018f4d4: [[Load last used ability]] | 0018f4c8 - 0018f4d4: [[Load last used ability]] | ||
− | 0018f4d8 | + | 0018f4d8 - 0018f610: ????? Table |
− | + | 0018f614 - 0018f7a0: [[Formula Table]] | |
− | + | ||
+ | ==AI Calculations== | ||
00193d48 - 00193e4c: AI Return addresses | 00193d48 - 00193e4c: AI Return addresses | ||
00193e50 - 001941f4: [[Main AI action setup]]? | 00193e50 - 001941f4: [[Main AI action setup]]? | ||
Line 1,707: | Line 1,780: | ||
00194e58 - 001957bc: [[Set AI ability considerations for all units and self]] | 00194e58 - 001957bc: [[Set AI ability considerations for all units and self]] | ||
001957c0 - 00195874: [[Some type of checking algorithm]] | 001957c0 - 00195874: [[Some type of checking algorithm]] | ||
− | 00195878 - 00195d90: [[AI Ability Data Setting]] | + | 00195878 - 00195d90: [[AI Ability Data Setting]] *This is called when ability is chosen by AI, r4 = address of move in units move list |
− | *This is called when ability is chosen by AI, r4 = address of move in units move list | + | 00195944 - 001959d0: [[AI Ability Data Setting - Attack]] |
− | + | 001959d4 - 00195a20: [[AI Ability Data Setting - AI Item Inventory]] | |
− | + | 00195a24 - 00195a2c: [[AI Ability Data Setting - Katana Inventory]] | |
− | + | 00195a30 - 00195a8c: [[AI Ability Data Setting - Weapon Inventory]] | |
− | + | 00195a90 - 00195b9c: [[AI Ability Data Setting - Jump]] | |
− | + | 00195ba0 - 00195bb8: [[AI Ability Data Setting - Charge]] | |
− | + | 00195bbc - 00195bfc: [[AI Ability Data Setting - Arithmeticks]] | |
− | + | 00195c00 - 00195d90: [[AI Ability Data Setting - Default]] | |
− | + | 00195d94 - 00195f68: [[AI Initial Targeting Selection]] | |
− | |||
00195f6c - 00195f88: [[Initialize some AI Data (mount, base hit %)]] | 00195f6c - 00195f88: [[Initialize some AI Data (mount, base hit %)]] | ||
00195f8c - 00196198: [[set current ability CT/status change]] | 00195f8c - 00196198: [[set current ability CT/status change]] | ||
0019619c - 0019629c: [[Non-Specific AI AutoBattle (Enemies)]] | 0019619c - 0019629c: [[Non-Specific AI AutoBattle (Enemies)]] | ||
001962a0 - 00196308: [[Get Longest Range Ability or Move]] | 001962a0 - 00196308: [[Get Longest Range Ability or Move]] | ||
− | [[0019630c | + | 0019630c - 00196388: [[Invert Target Priority (0019630c)]] |
0019638c - 00196898: [[Map movement decision/data setting]] | 0019638c - 00196898: [[Map movement decision/data setting]] | ||
− | [[0019689c | + | 0019689c - 00196904: [[Find Positive Priority Target within 3 Range (0019689c)]] |
− | [[00196908 | + | 00196908 - 00196938: [[Get Positive Priority (00196908)]] |
− | [[0019693c | + | 0019693c - 00196ad8: [[AI Post Action Movement Decision Routine (0019693c)]] |
− | [[00196adc | + | 00196adc - 00196c88: [[Check AI Target Type (00196adc)]] |
00196c8c - 00196ce4: [[Check target type]] (r2 = 1 if target can't be targeted/dead without? reraise) | 00196c8c - 00196ce4: [[Check target type]] (r2 = 1 if target can't be targeted/dead without? reraise) | ||
00196ce8 - 00196dac: [[Check if Unit can be Targeted (Cryst/Trea/Mount/Trans)]] | 00196ce8 - 00196dac: [[Check if Unit can be Targeted (Cryst/Trea/Mount/Trans)]] | ||
− | [[00196db0 | + | 00196db0 - 00196e1c: [[Compare Target Priority and Hit Rate (00196db0)]] |
− | [[00196e20 | + | 00196e20 - 00196ef0: [[Set Highest Target Priority (00196e20)]] |
− | [[00196ef4 | + | 00196ef4 - 00196fc0: [[Check if map allows use and find Highest Target (00196ef4)]] |
− | [[00196fc4 | + | 00196fc4 - 001970b8: [[Compare Set Highest Unit Target Priority (00196fc4)]] |
− | + | 001970bc - 001971b4: [[Randomly Transfer Data]] | |
001971b8 - 00197534: [[Set chosen ability/target for AI status]] (berserk, blood suck, confuse, frog, chicken) | 001971b8 - 00197534: [[Set chosen ability/target for AI status]] (berserk, blood suck, confuse, frog, chicken) | ||
− | 00197538 - 001978e0: [[Store ability/skillset data, set AI settings for ability | + | 00197538 - 001978e0: [[Store ability/skillset data, set AI settings for ability]] |
001978e4 - 00197958: [[Find Direction of Target]] | 001978e4 - 00197958: [[Find Direction of Target]] | ||
− | 0019795c - 00197b28: [[Range Calculation | + | 0019795c - 00197b28: [[Range Calculation]] |
[[00197b2c - 00197c64]]: | [[00197b2c - 00197c64]]: | ||
00197c68 - 00197d08: [[Checks map max X and Y]] | 00197c68 - 00197d08: [[Checks map max X and Y]] | ||
− | 00197d0c - 00197e5c: [[Find which units are active | + | 00197d0c - 00197e5c: [[Find which units are active]] |
− | 00197e60 - 00197f10: [[Chose Move from Move List | + | 00197e60 - 00197f10: [[Chose Move from Move List]] |
00197f14 - 00197ff0: [[Auto Battle Handling]] | 00197f14 - 00197ff0: [[Auto Battle Handling]] | ||
00197ff4 - 001982d4: [[Choose Target and Set a bunch of stuff]] | 00197ff4 - 001982d4: [[Choose Target and Set a bunch of stuff]] | ||
[[001982d8 - 001984e8]]: | [[001982d8 - 001984e8]]: | ||
− | [[001984ec | + | 001984ec - 00198818: [[Protect Allies - Auto Battle (001984ec)]] |
− | [[0019881c | + | 0019881c - 00198b00: [[Evaluate Cancel Status Ability (0019881c)]] |
00198b04 - 00198d7c: [[Find Peril Most Unit (00198b04)]] | 00198b04 - 00198d7c: [[Find Peril Most Unit (00198b04)]] | ||
00198d80 - 00198dec: [[Check for 0x00 status]] | 00198d80 - 00198dec: [[Check for 0x00 status]] | ||
− | [[00198df0 | + | 00198df0 - 00198e5c: [[Save Fading Life - Auto Battle (00198df0)]] |
− | + | 00198e60 - 00199058: [[AI Critical or Run Like Rabbit]] | |
[[0019905c - 00199120]]: | [[0019905c - 00199120]]: | ||
− | 00199124 - 00199368: [[Calculate Physical | + | 00199124 - 00199368: [[Calculate Physical Target]] |
0019936c - 0019939c: [[Calculate Distance Between Units]] | 0019936c - 0019939c: [[Calculate Distance Between Units]] | ||
[[001993a0 - 00199494]]: | [[001993a0 - 00199494]]: | ||
− | [[00199498 | + | 00199498 - 001994f4: [[Tranfer AI Ability Data and Set Defend flag (00199498)]] |
− | 001994f8 - 00199718: [[See if able to move to target | + | 001994f8 - 00199718: [[See if able to move to target]] |
0019971c - 001998c4: [[Check for good units to target (based on distance,status,coordinate)]] | 0019971c - 001998c4: [[Check for good units to target (based on distance,status,coordinate)]] | ||
001998c8 - 001999c4: [[Check if Regen/Charm/DM/Reraise/DA Can be Inflicted]] | 001998c8 - 001999c4: [[Check if Regen/Charm/DM/Reraise/DA Can be Inflicted]] | ||
− | [[001999c8 | + | 001999c8 - 00199b94: [[AI Target Priority Super Routine (001999c8)]] |
00199b98 - 00199c84: [[Calculate Clockticks Until Unit Acts]] | 00199b98 - 00199c84: [[Calculate Clockticks Until Unit Acts]] | ||
00199c88 - 00199d1c: [[Get number of clockticks till able to revive dead unit]] | 00199c88 - 00199d1c: [[Get number of clockticks till able to revive dead unit]] | ||
Line 1,767: | Line 1,839: | ||
0019a2cc - 0019a2ec: [[Dividend * 4 / Divisor]] | 0019a2cc - 0019a2ec: [[Dividend * 4 / Divisor]] | ||
0019a2f0 - 0019a528: [[Set AI Flags/Usable Abilities]] | 0019a2f0 - 0019a528: [[Set AI Flags/Usable Abilities]] | ||
− | 0019a52c - 0019a5f4: [[Store Weapon | + | 0019a52c - 0019a5f4: [[Store Weapon Attack Data]] |
0019a5f8 - 0019aa4c: [[Usable Ability Setting]] | 0019a5f8 - 0019aa4c: [[Usable Ability Setting]] | ||
− | 0019a63c - 0019a66c: | + | 0019a63c - 0019a66c: [[Part of the Weapon Inventory]] |
0019a670 - 0019aa4c: [[Ability Loading]] | 0019a670 - 0019aa4c: [[Ability Loading]] | ||
0019aa50 - 0019ab04: [[Load Known Ability Flag]] | 0019aa50 - 0019ab04: [[Load Known Ability Flag]] | ||
Line 1,781: | Line 1,853: | ||
[[0019aef0 - 0019af14]]: | [[0019aef0 - 0019af14]]: | ||
0019af18 - 0019b308: [[AI ability use control routine]] | 0019af18 - 0019b308: [[AI ability use control routine]] | ||
− | [[0019b30c | + | 0019b30c - 0019b4f0: [[Check if any units are in range (0019b30c)]] |
− | [[0019b4f4 | + | 0019b4f4 - 0019b6ac: [[AI Depth Elemental Monster Skill Use Check (0019b4f4)]] |
0019b6b0 - 0019b750: [[Calculate Height Difference Between Units]] | 0019b6b0 - 0019b750: [[Calculate Height Difference Between Units]] | ||
0019b754 - 0019b7b4: [[See if elemental ability can be used]] | 0019b754 - 0019b7b4: [[See if elemental ability can be used]] | ||
− | [[0019b7b8 | + | 0019b7b8 - 0019bb1c: [[AI Targeting Matrix Analysis (0019b7b8)]] |
− | + | 0019bb20 - 0019bbb8: [[Check Unit for Crystal or Treasure Status]] | [[AI Check if Unit is a Crystal/Treasure (0019bb20)]] | |
− | + | 0019bbbc - 0019bf28: [[Math Skill Targeting]] | |
− | + | 0019bf2c - 0019c208: [[Find Highest Target Priority in Ability Range (0019bf2c)]] | |
[[0019c20c - 0019c27c]]: | [[0019c20c - 0019c27c]]: | ||
− | + | 0019c280 - 0019c3d0: [[Start searching for Highest Target Priority (0019c280)]] | |
− | + | 0019c3d4 - 0019c8e8: [[Evaluate Linear Ability Behaviors]] | |
− | + | 0019c8ec - 0019cb90: [[Check if Linear Ability hits anything (0019c8ec)]] | |
0019cb94 - 0019cd98: [[Some height/Map coordinate calculation for all units]] | 0019cb94 - 0019cd98: [[Some height/Map coordinate calculation for all units]] | ||
− | [[0019cd9c | + | 0019cd9c - 0019d214: [[AI Target Unit for Direct vs Arc Attack (0019cd9c)]] |
0019d218 - 0019d290: [[See if any units are on target panel]] | 0019d218 - 0019d290: [[See if any units are on target panel]] | ||
0019d294 - 0019d304: [[Find Unit at Coordinates (0x19d294)]] | [[Get unit that matches coordinates]] | 0019d294 - 0019d304: [[Find Unit at Coordinates (0x19d294)]] | [[Get unit that matches coordinates]] | ||
− | [[0019d308 | + | 0019d308 - 0019d378: [[Check Set Highest Unit Priority (0019d308)]] |
0019d37c - 0019db7c: [[AI End of turn, in between turn, etc.]] | 0019d37c - 0019db7c: [[AI End of turn, in between turn, etc.]] | ||
[[0019db80 - 0019dca8]]: | [[0019db80 - 0019dca8]]: | ||
Line 1,806: | Line 1,878: | ||
0019e378 - 0019e53c: [[Transfer AI Data to Unit Data]] | 0019e378 - 0019e53c: [[Transfer AI Data to Unit Data]] | ||
0019e540 - 0019e5d4: [[See if any unit decided to use an ability]] | 0019e540 - 0019e5d4: [[See if any unit decided to use an ability]] | ||
− | 0019e5d8 - 0019ef20: [[AI | + | 0019e5d8 - 0019ef20: [[AI Ability Use Decisions]] |
0019ef24 - 0019efac: [[Check if Status Should/Can be Added]] | 0019ef24 - 0019efac: [[Check if Status Should/Can be Added]] | ||
− | + | 0019efb0 - 0019f018: [[Check if Unit will get his Turn without Status]] | |
0019f01c - 0019f0d4: [[Set unit untargetable based on 19f0d8 routine]] | 0019f01c - 0019f0d4: [[Set unit untargetable based on 19f0d8 routine]] | ||
0019f0d8 - 0019f158: [[See if ability should be used based on CT]] | 0019f0d8 - 0019f158: [[See if ability should be used based on CT]] | ||
Line 1,814: | Line 1,886: | ||
0019f258 - 0019f2a0: [[Save Coordinates to Temp Unit]] | [[Store units coordinates]] | 0019f258 - 0019f2a0: [[Save Coordinates to Temp Unit]] | [[Store units coordinates]] | ||
0019f2a4 - 0019f2f0: [[Transfer Unit Coordinates to AI]] | 0019f2a4 - 0019f2f0: [[Transfer Unit Coordinates to AI]] | ||
+ | |||
+ | ==Effect, Projectile, & Particle Handling== | ||
001a0e80 - 001a0f6c: [[Effect Palette Setup]] | 001a0e80 - 001a0f6c: [[Effect Palette Setup]] | ||
[[001a0f70 - 001a0f84]]: | [[001a0f70 - 001a0f84]]: | ||
Line 1,826: | Line 1,900: | ||
001a10ac - 001a10e8: [[Get Misc. Data and Palette Data Addresses]] | 001a10ac - 001a10e8: [[Get Misc. Data and Palette Data Addresses]] | ||
001a10ec - 001a1194: [[Some sound effect prep]] | 001a10ec - 001a1194: [[Some sound effect prep]] | ||
− | 001a1198 - 001a11c8: [[Get | + | 001a1198 - 001a11c8: [[Get (Unknown) Data Address]] |
[[001a11cc - 001a11fc]]: | [[001a11cc - 001a11fc]]: | ||
[[001a1200 - 001a1240]]: | [[001a1200 - 001a1240]]: | ||
Line 1,841: | Line 1,915: | ||
001a1854 - 001a187c: [[Check if ability is Item ability]] Checks 0x0800 flag, returns 1 if not item effect | 001a1854 - 001a187c: [[Check if ability is Item ability]] Checks 0x0800 flag, returns 1 if not item effect | ||
001a1880 - 001a18a0: [[Play Effect]] | [[Increment effect section address loading directive]] 801b63e8 | 001a1880 - 001a18a0: [[Play Effect]] | [[Increment effect section address loading directive]] 801b63e8 | ||
− | + | 001a18a4 - 001a18c4: [[Set Effect phase to No Effect]] | |
[[001a18c8 - 001a18d4]]: | [[001a18c8 - 001a18d4]]: | ||
− | 001a18d8 - 001a1c3c: [[Effect Stage Processing | + | 001a18d8 - 001a1c3c: [[Effect Stage Processing]] | [[Load Effect section addresses]] (Effect Control Routine) |
[[001a1c40 - 001a1c8c]]: [[Effect Cycle Processing]] | [[001a1c40 - 001a1c8c]]: [[Effect Cycle Processing]] | ||
[[001a1c90 - 001a1d24]]: [[Effect Related (0x1a1c90)]] | [[001a1c90 - 001a1d24]]: [[Effect Related (0x1a1c90)]] | ||
Line 1,850: | Line 1,924: | ||
001a2084 - 001a20b0: [[Clear some data in temp effect data]] | 001a2084 - 001a20b0: [[Clear some data in temp effect data]] | ||
001a20b4 - 001a20e4: [[Clear some data in temp effect data 2]] | 001a20b4 - 001a20e4: [[Clear some data in temp effect data 2]] | ||
− | 001a20e8 - 001a2210: [[Effect Related (0x1a20e8)]] | [[Initialize temp effect data | + | 001a20e8 - 001a2210: [[Effect Related (0x1a20e8)]] | [[Initialize temp effect data]] |
001a2214 - 001a2234: [[Effect code script >= 2E]] | 001a2214 - 001a2234: [[Effect code script >= 2E]] | ||
001a2238 - 001a2258: [[Effect code script 00 - Store next half as new counter, return 0]] This byte creates a loop in the header section | 001a2238 - 001a2258: [[Effect code script 00 - Store next half as new counter, return 0]] This byte creates a loop in the header section | ||
Line 1,858: | Line 1,932: | ||
001a236c - 001a2370: [[Effect code script 04]] End effect? | 001a236c - 001a2370: [[Effect code script 04]] End effect? | ||
[[001a236c - 001a23a4]]: | [[001a236c - 001a23a4]]: | ||
− | 001a2374 - 001a23a4: [[Effect Code Script 0x05]] | | + | 001a2374 - 001a23a4: [[Effect Code Script 0x05]] | Increment counter, store 2nd byte / 4 at 801bf000 |
[[001a23a8 - 001a2410]]: Effect code script 06 | [[001a23a8 - 001a2410]]: Effect code script 06 | ||
[[001a2414 - 001a2484]]: Effect code script 07 | [[001a2414 - 001a2484]]: Effect code script 07 | ||
Line 1,887: | Line 1,961: | ||
001a2c7c - 001a2cf8: [[Effect code script 1E - check all timing bytes]] | 001a2c7c - 001a2cf8: [[Effect code script 1E - check all timing bytes]] | ||
// Seems to deal with time in between moving to next target primarily | // Seems to deal with time in between moving to next target primarily | ||
− | 001a2cfc - 001a2d44: [[Effect code script 1F - go to end if hit counter = 0 | + | 001a2cfc - 001a2d44: [[Effect code script 1F - go to end if hit counter = 0]] |
[[001a2d48 - 001a2d90]]: Effect code script 20 | [[001a2d48 - 001a2d90]]: Effect code script 20 | ||
[[001a2d94 - 001a2ddc]]: Effect code script 21 | [[001a2d94 - 001a2ddc]]: Effect code script 21 | ||
Line 1,906: | Line 1,980: | ||
[[001a45c8 - 001a4788]]: | [[001a45c8 - 001a4788]]: | ||
[[001a478c - 001a4834]]: | [[001a478c - 001a4834]]: | ||
− | [[001a4838 - 001a4c40]]: Effect code script 29 - | + | [[001a4838 - 001a4c40]]: Effect code script 29 - another huge routine |
001a4c44 - 001a4c80: [[Effect code script 2A - clear some temp effect data]] | 001a4c44 - 001a4c80: [[Effect code script 2A - clear some temp effect data]] | ||
001a4c84 - 001a4cbc: [[Effect code script 2B - clear some temp effect data 2]] | 001a4c84 - 001a4cbc: [[Effect code script 2B - clear some temp effect data 2]] | ||
Line 2,022: | Line 2,096: | ||
[[001adfac - 001adfe8]]: [[Get Ninja Ball effect]] based on weapons element. Only valid entries for fire,water,lightning | [[001adfac - 001adfe8]]: [[Get Ninja Ball effect]] based on weapons element. Only valid entries for fire,water,lightning | ||
[[001adfec - 001ae1a4]]: | [[001adfec - 001ae1a4]]: | ||
− | + | 001ae1a8 - 001ae2c4: [[Apply landing particle anim.]] | |
− | + | 001ae2c8 - 001ae33c: [[End secondary effect on current unit]] | |
− | + | 001ae340 - 001af104: [[Arrow, Throw stone, Reflect Model Loading]] | |
[[001af108 - 001af3a0]]: | [[001af108 - 001af3a0]]: | ||
[[001af3a4 - 001af3d8]]: | [[001af3a4 - 001af3d8]]: | ||
001af3dc - 001af598: [[Maths For Arcing Trajectory]] | 001af3dc - 001af598: [[Maths For Arcing Trajectory]] | ||
[[001af59c - 001af6d4]]: Trajectory/Vectors maths routines (for arcing weapons) | [[001af59c - 001af6d4]]: Trajectory/Vectors maths routines (for arcing weapons) | ||
− | + | 001af6d8 - 001af730: [[Find XYZ Position of Projectile Along Trajectory]] | |
001af734 - 001af76c: [[Give Gravity Impact]] | 001af734 - 001af76c: [[Give Gravity Impact]] | ||
001af770 - 001af8b0: [[List targeting data of all valid units]] | 001af770 - 001af8b0: [[List targeting data of all valid units]] | ||
Line 2,041: | Line 2,115: | ||
[[001b0818 - 001b0a8c]]: | [[001b0818 - 001b0a8c]]: | ||
[[001b0a90 - 001b0c84]]: | [[001b0a90 - 001b0c84]]: | ||
− | + | 001b0c88 - 001b0cec: [[Initialise Animation for TRAP]] | |
[[001b0cf0 - 001b0f04]]: | [[001b0cf0 - 001b0f04]]: | ||
[[001b0f08 - 001b0fe8]]: | [[001b0f08 - 001b0fe8]]: | ||
[[001b0fec - 001b0ff8]]: | [[001b0fec - 001b0ff8]]: | ||
− | + | 001b0ffc - 001b1538: [[Bow Arrow Secondary Effect]] | |
[[001b153c - 001b1ae8]]: | [[001b153c - 001b1ae8]]: | ||
− | + | 001b1aec - 001b1c00: [[Golem Secondary Effect]] | |
[[001b1c04 - 001b27d8]]: | [[001b1c04 - 001b27d8]]: | ||
[[001b27dc - 001b2848]]: | [[001b27dc - 001b2848]]: | ||
Line 2,059: | Line 2,133: | ||
[[001b33d4 - 001b381c]]: | [[001b33d4 - 001b381c]]: | ||
[[001b3820 - 001b3934]]: | [[001b3820 - 001b3934]]: | ||
− | + | 001b3938 - 001b40f4: [[Linear Projectile secondary effect]] | |
[[001b40f8 - 001b4230]]: | [[001b40f8 - 001b4230]]: | ||
− | [[001b4234 - 001b47dc]]: | + | [[001b4234 - 001b47dc]]: Related to Effect Files? https://w.atwiki.jp/fft_cheat/pages/52.html |
001b47e0 - 001b48cc: [[Effect Related (0x1b47e0)]] | 001b47e0 - 001b48cc: [[Effect Related (0x1b47e0)]] | ||
END | END |
Latest revision as of 05:37, 7 January 2025
BATTLE.BIN Data Tables
Contents
- 1 Animation & Display
- 2 Free Cursor & Inputs During
- 3 Input & Between Actions
- 4 Post Action Menuing
- 5 Some Attack related Display Processing
- 6 Action Phase Control Related
- 7 Main BATTLE.BIN Loop
- 8 Miscellaneous Processing & Get Data
- 9 Extra Unit Graphic Display
- 10 Unit Animation Processing
- 11 Sprite & Display Initialisation
- 12 Uncertain
- 13 Pre-Effect display
- 14 Colour & Palette Modification
- 15 Targetting Determination
- 16 Uncertain 2
- 17 Uncertain (Display Related)
- 18 Menuing
- 19 Uncertain (Miscellany?)
- 20 Eventing
- 21 Act Menuing
- 22 Eventing 2
- 23 Display Related
- 24 Thread Management
- 25 Movement Calculations
- 26 Targetting Calculations
- 27 Acting Caster Calculations
- 28 Battle Initialisation
- 29 Movement Calculations 2
- 30 Unit Death Handling
- 31 Player Action & Menuing
- 32 In-Between Turns Unit & Status Processing
- 33 Formula Processing Subroutines
- 34 Formulas
- 35 Post Formula Handling
- 36 Reaction processing
- 37 Post Action Handling
- 38 AI Calculations
- 39 Effect, Projectile, & Particle Handling
Animation & Display
00067000 - 00067794: Return Addresses 00067798 - 0006780c: ??? some data 00067810 - 000683b8: Return addresses and sparse data 000683c0 - 000683d0: Store AT list ID = 1 000683d4 - 000683e0: Store AT list ID = 0 000683e4 - 00068414: Transfer Unit's X/Y/Map Level 00068418 - 00068490: X/Y Data Gathering for Attacks 00068494 - 00068530: Store Palette data for each unit 00068534 - 00068630: Palette modification based on team 00068634 - 00068678: Highlight units based on Team 2 (Square pressed during free cursor) 0006867c - 000686ac: Increment AT List ID 000686b0 - 00068764: AT List Check if Unit is Charging Ability 00068768 - 00068790: 00068794 - 000687a0: Clear AT list ID 000687a4 - 000687b8: Clear 960f8 and 960fc 000687bc - 000687dc: Setup Secondary effect initialise table 000687e0 - 00068948: Set evade special effects based on Evade Type Weapon Break, Golem Hand, etc. 0006894c - 000689a0: Set evade type data and weapon element effect 000689a4 - 00068a1c: Set evade type data, item and throw stone hardcoding 00068a20 - 00068a70: Set Secondary Effect Struct 00068a74 - 00068a90: Zodiac Poof: Set Secondary Effect Struct 00068a94 - 00068ab0: Death Smoke: Set Secondary Effect Struct 00068ab4 - 00068ad0: Level Up: Set Secondary Effect Struct 00068ad4 - 00068af0: Venom Trap: Set Secondary Effect Struct 00068af4 - 00068b10: Splash: Set Secondary Effect Struct 00068b14 - 00068b30: Fall Dust Cloud: Set Secondary Effect Struct 00068b34 - 00068b50: Teleport: Set Secondary Effect Struct 00068b54 - 00068b90: Set targets animation 1 based on attack type 00068b94 - 00068bd0: Set targets animation 2 based on attack type 00068bd4 - 00068c14: Jump to post action display 00068c18 - 00068c7c: Set Bow Hardcoding 00068c80 - 00068cc0: Call Bow Hardcoding routine 00068cc4 - 00068d04: Call Bow Hardcoding routine Copy 00068d08 - 00068e2c: Status/sprite transformation/animation display setting 00068e30 - 00068e54: Update Status/Sprite/Animation Display By Unit Misc ID | Jump to 68d08 00068e58 - 00068e7c: Jump to 68d08 2 00068e80 - 000690f4: Special Status Flag Enabling 000690f8 - 0006912c: Jump to set item graphic/palette (83758) 00069130 - 00069250: 00069254 - 000692b8: Set some data for Mounted Units 000692bc - 00069338: 0x692bc (WalkTo Animation inner routine for Mounted units?) | Set Animation/Facing for Mounted Units 0006933c - 000693f0: 000693f4 - 000694d4: 000694d8 - 00069740: 00069744 - 000699f0: 000699f4 - 00069af4: 00069af8 - 00069bf4: 00069bf8 - 00069cf8: 00069cfc - 00069df8: 00069dfc - 00069e64: 00069e68 - 00069edc: Initialize Units Coordinates, Animation, Facing 00069ee0 - 00069f10: Transfer Palette and store 0x7F in misc data 00069f14 - 0006a07c: 0006a080 - 0006a208: 0006a20c - 0006a37c: Move target coordinates after knockback 0006a380 - 0006a534: 0006a538 - 0006a7bc: 0006a7c0 - 0006aa7c: 0006aa80 - 0006ad14: 0006ad18 - 0006af78: 0006af7c - 0006b95c: 0006b960 - 0006b990: 0006b994 - 0006ba34: 0006ba38 - 0006bad4: Palette adjustment based on Tile Type 0006bad8 - 0006bbf8: 0006bbfc - 0006bce0: Store Coordinate,Mount,Animation Data | 0x6bbfc 0006bce4 - 0006bda4: 0006bda8 - 0006be88: 0006be8c - 0006c020: 0006c024 - 0006c2b8: 0x6c024 0006c2bc - 0006c31c: 0006c320 - 0006c3d4: 0006c3d8 - 0006c418: 0006c41c - 0006c4f4: 0006c4f8 - 0006c78c: 0006c790 - 0006c874: 0006c878 - 0006c948: 0006c94c - 0006ca38: 0006ca3c - 0006cacc: 0006cad0 - 0006cbb4: 0006cbb8 - 0006cc90: 0006cc94 - 0006d05c: Some Knockback Handling 0006d060 - 0006d19c: 0006d1a0 - 0006d284: 0006d288 - 0006d340: 0006d344 - 0006d430: 0006d434 - 0006d594: 0006d598 - 0006d798: 0006d79c - 0006d7c0: 0006d7c4 - 0006d7e0: Call Initialize Units Coordinates, Animation, Facing 0006d7e4 - 0006d814: 0006d818 - 0006db0c: Process Single Unit Movement 0006db10 - 0006dc88: Knockback Processing 0006dc8c - 0006dda8: Knockback with bows 0006ddac - 0006dde8: Transfer Target Coordinates (knockback) knockback with bows?
Free Cursor & Inputs During
0006ddec - 0006e558: free cursor input related 0006e55c - 0006e5bc: Store Name and data of unit selected by cursor 0006e5c0 - 0006e630: Store Name and Data of unit selected by cursor 2 0006e634 - 0006e6ac: Store Casting Units Name and Data selected by cursor 0006e6b0 - 0006e7c4: Free Cursor Selection Routine 0006e7c8 - 0006eed8: 0006eedc - 0006eeec: Set Game Flow Variable to 1 0006eef0 - 0006eefc: Set Game Flow Variable to 0 0006ef00 - 0006f138: 0006f13c - 0006f170: Rotate Map (L1) 2 L1 controller input 0006f174 - 0006f1a4: Rotate Map (L1) 0006f1a8 - 0006f1dc: Rotate Map (R1) 2 R1 Controller input 0006f1e0 - 0006f214: Rotate Map (R1) 0006f218 - 0006f288: L1 and R1 rotation 0006f28c - 0006f31c: 0006f320 - 0006f4ac: 0006f4b0 - 0006f5b8: Change Map Zoom 2 0006f5bc - 0006f630: Player Camera Zoom (L1 Button) 0006f634 - 0006f674: Change Map Zoom (L2 Controller Input) 0006f678 - 0006f7c0: Camera Zoom Related (0x6f678) 0006f7c4 - 0006f8c4: Tilt Map/Zoom 2 0006f8c8 - 0006f964: 0006f968 - 0006f9a8: Tilt Map/Zoom(R2 Controller Input) 0006f9ac - 0006fb4c: 0006fb50 - 0006fc04: 0006fc08 - 0006fc64: 0006fc68 - 0006fdf4: 0006fdf8 - 0006fe54: 0006fe58 - 000700b8: 000700bc - 000702e0: 000702e4 - 0007063c: 00070640 - 000707c0:
Input & Between Actions
000707c4 - 0007081c: Process Unit Movement 00070820 - 00070994: Some Tile - map rotation interaction 00070998 - 000709f8: Set casting unit ID = FF 2 000709fc - 00070a34: Set casting unit ID = FF 1 00070a38 - 00070b78: Some system routines for ramza crystal, ability CT resolution 00070b7c - 00070c00: Store ENTD flags into misc data w/o control flag 00070c04 - 00070c74: Set next script = action menusPressed confirm while not highlighting any unit, also happens after completing move // Stores Script 0x03 00070c78 - 00070cd8: Store next Battle flow script = 1 (Select pressed during free cursor) 00070cdc - 00070d14: 00070d18 - 00070dd8: 00070ddc - 00070e20: 00070e24 - 00070e68: 00070e6c - 00071004: In between turn events mimic, ability cast, traps, etc. 00071008 - 000711a0: - ???? happened for me before and after Mimic action // Stores Script 0x27 000711a4 - 000712d4: - 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. // Stores Script 0x27 000712d8 - 00071348: 0007134c - 0007139c: Highlight units based on team (Square pressed during free cursor) 000713a0 - 00071430: Menu stuff? - selecting the active unit. // Stores Script 0x04 00071434 - 000714f0: - 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 // Stores Script 0x04 000714f4 - 000715a4: Menu stuff 000715a8 - 000715e4: - pressing select to read further information on an action command or status screen. Basically any time while the above is true- Pressing Cancel on a unit to check how far they can move. // Stores Script 0x06, 0x07 000715e8 - 00071664: 00071668 - 00071698: - 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. // Stores Script 0x08 0007169c - 000716d8: 000716dc - 00071718: - pressing select while in the AT, Unit list and Options. Pressing Select while in Unit List does not change number. // Stores Script 0x09 0007171c - 000717c8: Get next acting unit - Selecting a unit in the AT list. // Stores Script 0x0a 000717cc - 00071820: - Pressed "Move" Command // Stores Script 0x0c 00071824 - 00071878: 0007187c - 00071928: - Pressed Circle to remove the reminder on how to move a unit, also after removing "Select within movable range" box // Stores Script 0x0d 0007192c - 00071980: -"select within movable range" box appeared. selected tree (unpathable) as movement location. works for spaces outside of range as well // Stores Script 0x0f 00071984 - 00071a78: - selected a spot within legal distance (blue square) // Stores Script 0x10 00071a7c - 00071ab4: 00071ab8 - 00071b48: - blue squares disappeared, unit walks to location // Stores Script 0x11 00071b4c - 00071c88: - unit finishes walking to location "are you sure you want to move here?" box appears // Stores Script 0x12 00071c8c - 00071ce8: - happens right after confirming move command, attack command // Stores Script 0x25 00071cec - 00071de4:
Post Action Menuing
00071de8 - 00071e64: Level up animation and report 00071e68 - 00071ee4: Post Movement Display- confirm move command 00071ee8 - 000723d0: Main Post Movement // Stores Script 0x15 000723d4 - 0007245c: Post Movement Display Prep 00072460 - 00072540: - begin choosing facing for Wait // Stores Script 0x13 00072544 - 00072670: - Choose Wait action, or Move/Act used up // Stores Script 0x14 00072674 - 00072708:
0007270c - 00072738: Turn sprite towards attack 0007273c - 00072924: Movement/action direction setting 00072928 - 00072a0c: Rider/Mount X/Y/Facing Setting 00072a10 - 00072a84: 00072a88 - 00072acc: Check if Facing Needs Changed 00072ad0 - 00072b10: - also happens after confirming move command or attack command, happens after 0x71c9c // Stores Script 0x26 00072b14 - 00072b4c: 00072b50 - 00072bec: Range 1 Ability Used // Stores Script 0x16 - happens right after 0x73bac, unit attacks, this section will happen twice for 2 swords attacks // Stores Script 0x2d 00072bf0 - 00072ce4: Set item/throw stone ability display stuff 00072ce8 - 00072d88: - unit stands straight, break happened twice in a row, goes back to 0x73bac for 2 swords ori r2,r0,0x2f // Stores SCript 0x2f 00072d8c - 00073160: Set_Post_Effect_Messages_data 00073164 - 000731d4: Prep_Targets_Post_Action_message 000731d8 - 0007324c: 00073250 - 000732c4: 000732c8 - 000734c8: Battle Message Display- attack finishes, this section will happen twice for 2 swords attacks // Stores Script 0x2e 000734cc - 00073634: Some post action (including learn on hit setup) - finish Attack command, happened 3x in a row // Stores Script 0x28 00073638 - 000736d0: 000736d4 - 000739c8: Ability effect calculations critical hit, reflect, etc.
Action Phase Control Related
000739cc - 00073b98: Action phase control- ???? Something about Mimic- also happens after executing command, happens after 0x7418c // Stores Script 0x29 // Stores Script 0x29 00073b9c - 00073ee8: set some target coordinates/attacker animation, others - unit status compltely gone, unit is about to attack, this section will happen twice for 2 swords attacks // Stores Script 0x2c 00073eec - 00073fb4: Set damage display type based on ability - ???? Only during Mimic // Stores Script 0x2b (Return from mimic?) 00073fb8 - 00073fdc: - happens after 0x73a78, unit status at bottom of screen almost completely disappeared. Means one of the previous menus was to hide the unit status // Stores Script 0x2a 00073fe0 - 00074064: Store animation and facing based on animation flag 1- Execute action chosen // Stores Script 0x1c 00074068 - 000740d0: 000740d4 - 00074200: - Execute Ability - happens right after pressing Execute // Stores Script 0x1e 00074204 - 000742c4: - ????happened during Mimic // Stores Script 0x1e 000742c8 - 00074304: 00074308 - 0007446c: Select Target Tile choosing valid location (red box) // Stores Script 0x19 00074470 - 000744c4: - choosing out of range target location // Stores Script 0x18 000744c8 - 000745a8: - happens right before red boxes appear for targetting // Stores Script 0x17 000745ac - 000746a8: - confirming location, "Executing action" box appears // Stores Script 0x1b 000746ac - 000747b4: 000747b8 - 00074810: 00074814 - 00074858: 0007485c - 0007492c: 00074930 - 000749c4: 000749c8 - 00074a38: 00074a3c - 00074abc: 00074ac0 - 00074af4: 00074af8 - 00074b14: - Something about Mimic // Stores Script 0x17 00074b18 - 00074b34: 00074b38 - 00074b64:
Main BATTLE.BIN Loop
00074b68 - 00074ba8: 00074bac - 00074bf4: Free Cursor Controller Input 00074bf8 - 00074dcc: // Script 0x00 00074dd0 - 00074e28: Get Tile Information when Select is pressed // Script 0x01 00074e2c - 00074e90: Controller input related // Script 0x02 00074e94 - 00074f58: Action Menus // Script 0x03 00074f5c - 0007530c: Decide what to do based on skillset/ability selections // Script 0x04 00075310 - 000755f8: Set move/act based on skillset mainly for defend/eq.change - also sets other flags // Script 0x05 000755fc - 0007568c: // Script 0x06 00075690 - 00075718: has more controller input // Script 0x07 0007571c - 000757c0: has more controller input // Script 0x08 000757c4 - 0007581c: // Script 0x09 00075820 - 00075878: has more controller input // Script 0x0a 0007587c - 0007590c: // Script 0x0f 00075910 - 00075c30: // Script 0x10 00075c34 - 00075c9c: // Script 0x11 00075ca0 - 00075d08: // Script 0x12 00075d0c - 00075dac: // Script 0x13 00075db0 - 00075e64: // Script 0x14 00075e68 - 00075f0c: 00075f10 - 00076018: 0007601c - 000761c8: 000761cc - 00076298: // Script 0x15 0007629c - 00076354: // Script 0x17 00076358 - 0007642c: 00076430 - 00076654: // Script 0x16 00076658 - 00076918: has learn from crystal, move XX up // Script 0x18 0007691c - 000769ac: // Script 0x19 000769b0 - 00076b78: while unit is moving? // Script 0x1a 00076b7c - 00076be4: // Script 0x1b 00076be8 - 00076c4c: Sets next script = 1? // Script 0x1d 00076c50 - 00076d80: Ability Preview handling // Script 0x1c 00076d84 - 00076f10: stores animation/facing based on ability flags 1 // Script 0x1e 00076f14 - 00076fcc: // Script 0x1f - 00076fd0 - 00077094: Finish Ability Charging // Script 0x20 00077098 - 00077130: Commence pre-attack phase control Action occurring // Script 0x21 - 00077134 - 0007719c: action related // Script 0x22 000771a0 - 00077310: Before attack: Load SP2 action related // Script 0x23 00077314 - 00077374: loads effect LBA sector // Script 0x24 00077378 - 000773b0: Item, throw stone hardcoding // script 0x25 000773b4 - 000773f4: 000773f8 - 0007775c: 0x773f8 | Big action/ability display // Script 0x26 00077760 - 000777e8: // Script 0x27 000777ec - 0007799c: Recommence attack phase control action related // Script 0x28 000779a0 - 00077b54: // Script 0x29 00077b58 - 00077bd4: 00077bd8 - 00077c04: small one // Script 0x2a 00077c08 - 00077c34: also small // Script 0x2b 00077c38 - 00077ca0: // Script 0x2c 00077ca4 - 00077e18: controller input checked // Script 0x2d 00077e1c - 00077e84: // Script 0x2e 00077e88 - 00077f64: AI target processing // Script 0x2f 00077f68 - 0007802c: // Script 0x30 00078030 - 0007809c: Controller input checked // Script 0x31 000780a0 - 00078144: // Script 0x0b 00078148 - 00078324: Copy 0x16e in unit data to misc data, display processing // Script 0x0e 00078328 - 00078438: // Script 0x0d 0007843c - 00078500: // Script 0x0e 00078504 - 000785a8: this one looks cool // Script 0x32 000785ac - 000787d8: checks each unit for something and controller input // Script 0x33 000787dc - 000787f8: 000787fc - 00078960: // Script 0x34 00078964 - 00078ac8: // Script 0x37 00078acc - 00078bf0: // Script 0x3a 00078bf4 - 00078d1c: // Script 0x35 00078d20 - 00078e54: // Script 0x38 00078e58 - 00078fb0: // Script 0x36 00078fb4 - 000791e4: // Script 0x39 000791e8 - 00079294: 00079298 - 00079a94: 00079a98 - 0007a1d0: Main BATTLE.BIN Loop | Game Flow Control routine *Game Flow Control Return Addresses
Miscellaneous Processing & Get Data
0007a1d4 - 0007a214: Get casting unit's misc data data that matches 0x9112c 0007a218 - 0007a258: Get Source Unit Misc Data Pointer | Get Casting units Misc Data 0007a25c - 0007a2b4: Get Misc Data of unit that matches register inputs 0007a2b8 - 0007a3f4: Find Unit at Coordinates (Misc Data) (0x7a2b8) | Check if unit is on panel 0007a3f8 - 0007a4f0: Get misc data of unit that matches register inputs that isn't crystal/treasure 0007a4f4 - 0007a5cc: Some thing wtih check if chocobo is on panel 0007a5d0 - 0007a6e0: Get Overlapping Unit Misc Data Pointer 0007a6e4 - 0007a720: Get Unit Misc Data Pointer | Find Current Misc Unit Data Pointer (external ID) 0007a724 - 0007a770: Get Unit Misc Data Pointer By Battle Unit Index | Find Misc Unit Data Pointer (checking for specific unit) | Get unit misc data that matches r4 ID 0007a774 - 0007a7b4: Count number of Crystals on map 0007a7b8 - 0007a83c: 0007a840 - 0007a964: Open SP2 0007a968 - 0007a9ac: 0007a9b0 - 0007aa30: Load Nibble of Compressed Graphic Data 0007aa34 - 0007abcc: Decompress Attack spritesheet 0007abd0 - 0007ac5c: Initialize some display data 0007ac60 - 0007aca8: Unit RGB/Sprite Type/etc Initialization 0007acac - 0007ad04: Initialize WEP1 sprite RGB 0007ad08 - 0007adb0: Initialize RGB and some more stuff 0007adb4 - 0007ae44: Initialize Status bubble sprite displays 0007ae48 - 0007aec8: Initialize item sprite display 0007aecc - 0007af04: Call store screen offsets to GTE 0007af08 - 0007af40: 0007af44 - 0007b4e8: Construct Polygon Data for Units | Display Related (0x7af44) 0007b4ec - 0007b52c: Store Sprite Display Data 0007b530 - 0007b550: 0007b554 - 0007b588: 0007b58c - 0007b684: 0007b688 - 0007b6a4: 0007b6a8 - 0007b6c4: 0007b6c8 - 0007b928: 0007b92c - 0007b948: 0007b94c - 0007b968: 0007b96c - 0007b9cc: Store vx, vy, vz vectors 0007b9d0 - 0007c440: 0007c444 - 0007c808: 0007c80c - 0007cff4: Slope Calculations (HUGE) 0007cff8 - 0007d09c: 0007d0a0 - 0007d0d0: Get Unit misc data pointer of ridden unit by r4 0007d0d4 - 0007d2d8: Complex Height Data from unit misc data and coordinates 0007d2dc - 0007d34c: 0007d350 - 0007d3f0: 0007d3f4 - 0007d474: 0007d478 - 0007d518: 0007d51c - 0007d5cc: Get Final Height data from unit misc data 0007d5d0 - 0007db18: Calculate shadow VRAM palette 0007db1c - 0007e300: 0007e304 - 0007e728: 0007e72c - 0007e9a4: 0007e9a8 - 0007eb88:
Extra Unit Graphic Display
eg. status bubbles, damage, missed! text.
0007eb8c - 0007eebc: Determine Status Bubble Parameters 0007eec0 - 0007f1d0: Display Status Bubble 0007f1d4 - 0007f23c: (Status Bubble Related) 0007f240 - 0007f2a8: Scrapped animation code 0007f2ac - 0007f3fc: 0007f400 - 0007f458: 0007f45c - 0007f508: Store Item's Display Data 0007f50c - 0007f5f4: 0007f5f8 - 0007ff40: Post Action Display Routine 0007ff44 - 0007ff78: "Speed" display 0007ff7c - 0007ffac: "CT" display 0007ffb0 - 0007ffe4: "Br" display 0007ffe8 - 0008001c: "Fa" display 00080020 - 00080050: "Attack" Sword display 00080054 - 00080088: "Magic" Rod display 0008008c - 000800b8: "Missed" display 000800bc - 000800e8: "Guarded" display 000800ec - 00080114: "Caught" display 000803e4 - 000808b4: Post-Action Display Setup 000808b8 - 00080bc0: Set Exp/JP Display Data and get Palette 00080bc4 - 00080c3c: *One-Digit Experience* 00080c40 - 00080cf4: *Two-Digit Experience* 00080cf8 - 00080d80: *One-Digit JP* 00080d84 - 00080e38: *Two-Digit JP* 00080e3c - 00080e78: *"No Target" Display* 00080e7c - 00080eb8: *"Silenced" Display* 00080ebc - 00080f00: *"No MP" Display* 00080f04 - 00080f40: Something to do with palette 00080f44 - 00080fe8: Prep for Displaying Earned Exp/JP 00080fec - 000810a0: Activate numerical sprite data
Unit Animation Processing
000810a4 - 00081974: Calculate XYZ, UV, and Palette of Post Action Text 00081978 - 00081984: Store unit animation and facing value 00081988 - 000819a4: Store unit animation/facing/someothervalue 000819a8 - 00081a04: Get some Spritesheet data address 00081a08 - 00081a54: 00081a58 - 00081a90: 00081a94 - 00081acc: 00081ad0 - 00081adc: r2 = 0x800b669c 00081ae0 - 00081aec: r2 = 0x800b6edc 00081af0 - 00081b08: Get Spritesheet Graphic Height 00081b0c - 00081b84: Store some coordinate data 00081b88 - 00081c18: Store some movement coordinate data 00081c1c - 00081c5c: Save Spritesheet ID to spritesheet data 00081c60 - 00081d50: Set Marlboro Spritesheet Change 00081d54 - 0008210c: Weather/time of day/tile palette modification 00082110 - 000822b8: Special spritesheet ID palette mods 000822bc - 00082464: palette mod by status 00082468 - 00082504: check for tile, status palette mod 00082508 - 0008254c: Determine Status Bubble Activation Byte | Status/unknown Misc ID checks 00082550 - 00082588: Transparent Check (for opacity?) 0008258c - 0008261c: Set some display/anim data for weapon/evade types 00082620 - 00082788: This routine still needs documenting 0008278c - 00082888: Movement validation - float/fly 0008288c - 00082a40: Determine attack animation from used Weapon Type 00082a44 - 00082b18: Set animation for Item abilities 00082b1c - 00082b7c: Store attack animation flags and facing 1 00082b80 - 00082c0c: Set attack animation flags and facing 2 00082c10 - 00082cc0: Set attack animation flags and facing 3 00082cc4 - 00082d4c: Set Level up/Job level up animations 00082d50 - 00082df4: Set In-Motion animation based on status (not MON) | Set Animation Based On Unit Mounted State 00082df8 - 00082ee8: Set Idle Animation based on status (not MON) 00082eec - 000831b4: Set Animation Based On Unit Status 000831b8 - 00083468: More animation based on status, death sound effects 0008346c - 0008356c: Poach/Morbol Transformation Can change spritesheet ID here 00083570 - 00083754: Sprite changing stuff crystal, frog, etc. 00083758 - 00083850: Set thrown item graphic/palette also throw stone 00083854 - 00083870: Call Set Animation Based on Status 00083874 - 00083974: Set attacker animation for shield block 00083978 - 00083c54: Set targets animation based on attack type 00083c58 - 00083cd0: Sprite display setting for all units based on attack 00083cd4 - 00083e0c: 00083e10 - 00083f14: Unit graphic information loading 00083f18 - 00084210: Update Sprite display data 00084214 - 000846ac: Trap & Unit graphic information loading 000846b0 - 00084754: Move Unit Right+/Left- 00084758 - 0008476c: Move Unit Down+/Up- 00084770 - 00084814: Move Unit Forward+/Back- 00084818 - 00085230: Load Unit graphics from sprite sheet 00085234 - 00085268: 0008526c - 00085a14: Load WEP graphic from WEP1 Sheet 00085a18 - 00085b9c: Move Atk sprites to Frame Buffer from RAM 00085ba0 - 00085c08: Mark Unit's VRAM Slot as Unoccupied 00085c0c - 000865a0: Update & Animate Unit/WEP/EFF 000865a4 - 0008663c: Process Status Bubble Display 00086640 - 00086b40: 00086b44 - 00086dc0: 00086dc4 - 00086f28: 00086f2c - 00087060: 00087064 - 000870a8: 000870ac - 00087198: 0008719c - 000871f0: 000871f4 - 000872e8: Copy SEQ data into RAM 000872ec - 000873b8: 000873bc - 000875ec: 000875f0 - 00087700: 00087704 - 000878a0: 000878a4 - 000879b4: 000879b8 - 00087a24: Copy OTHER.SPR Palette data to RAM
Sprite & Display Initialisation
00087a28 - 00088014: Misc unit data initialization 00088018 - 0008812c: 00088130 - 00088804: Load unit SHP & SEQ data to RAM 00088808 - 0008883c: Perform Animate All Units 3 times 00088840 - 00088864: 00088868 - 00088900: 00088904 - 00088ee8: Load lucavi SHP & SEQ data to RAM 00088eec - 000890b4: 000890b8 - 00089248: 0008924c - 00089380: 00089384 - 00089458: 0008945c - 00089524: 00089528 - 00089550: 00089554 - 00089578: 0008957c - 000895c0: 000895c4 - 00089634: 00089638 - 00089744: Teleport distortion anim 00089748 - 000897d8: 000897dc - 0008989c: Something height related 000898a0 - 00089b9c: Accelerate Unit to Destination 00089ba0 - 00089d9c: 00089da0 - 00089dbc: 00089dc0 - 00089ddc: 00089de0 - 00089dfc: 00089e00 - 00089e1c: 00089e20 - 00089f20: 00089f24 - 0008a114: 0008a118 - 0008a348: 0008a34c - 0008a358: 0008a35c - 0008a4a8: Jump animation Start 0008a4ac - 0008a6d4: 0008a6d8 - 0008a6fc: 0008a700 - 0008a77c: Set Altima teleport move ID 0008a780 - 0008a7fc: Set Altima teleport arrive ID 0008a800 - 0008a880: 0008a884 - 0008a920: 0008a924 - 0008ab30: 0008ab34 - 0008adf4: 0008adf8 - 0008b0c4: 0008b0c8 - 0008b230: 0008b234 - 0008b288: Animate Unit Distorts 0008b28c - 0008b2c0: 0008b2c4 - 0008b2f8: 0008b2fc - 0008b308: 0008b30c - 0008b334: 0008b338 - 0008b3c8: 0008b3cc - 0008b43c: 0008b440 - 0008b4b4: 0008b4b8 - 0008b4ec: 0008b4f0 - 0008b524: 0008b528 - 0008b534: 0008b538 - 0008b560: 0008b564 - 0008b628: 0008b62c - 0008b6e0: 0008b6e4 - 0008b7b0: 0008b7b4 - 0008b7e8: 0008b7ec - 0008b820: 0008b824 - 0008b830: 0008b834 - 0008b85c: Set Camera Zoom Parameters 0008b860 - 0008b8f0: Set Camera Rotation Values 0008b8f4 - 0008b964: 0008b968 - 0008b9dc: 0008b9e0 - 0008ba14: 0008ba18 - 0008ba4c: 0008ba50 - 0008ba5c: 0008ba60 - 0008ba88: 0008ba8c - 0008bb1c: 0008bb20 - 0008bb90: 0008bb94 - 0008bc08: 0008bc0c - 0008bc40: 0008bc44 - 0008bca8: 0008bcac - 0008bcb8: 0008bcbc - 0008bd08: 0008bd0c - 0008bde0:
Uncertain
0008bde4 - 0008be00: Update Status/Sprite/Animation Display By Unit Misc ID (Wrapper Function) 0008be04 - 0008be28: Set Animation Based On Unit Mounted State From Unit Misc ID 0008be2c - 0008be50: 0008be54 - 0008be78: Set Animation Based On Unit Status From Unit Misc ID 0008be7c - 0008beb8: Set Specific Animation Value From Unit Misc ID 0008bebc - 0008bf10: 0008bf14 - 0008bf18: 0008bf1c - 0008bf80: 0x8bf1c 0008bf84 - 0008bff8: 0008bffc - 0008c050: 0008c054 - 0008c0a8: 0008c0ac - 0008c110: 0008c114 - 0008c188: 0008c18c - 0008c1e0: 0008c1e4 - 0008c264: 0008c268 - 0008c2a0: 0008c2a4 - 0008c2d8: 0008c2dc - 0008c31c: 0008c320 - 0008c360: 0008c364 - 0008c39c: Store script = 0x3a This happened after I accepted a team at Formation. Music had not started yet. (FFM) 0008c3a0 - 0008c3e0: 0008c3e4 - 0008c40c: 0008c410 - 0008c438: Get Unit Screen Location Data Pointer 0008c43c - 0008c464: 0008c468 - 0008c514: 0008c518 - 0008c54c: 0008c550 - 0008c5e4: 0008c5e8 - 0008c660: 0008c664 - 0008c7c8: Walk To 0008c7cc - 0008c8e0: 0008c8e4 - 0008c93c: 0008c940 - 0008c9c0: 0008c9c4 - 0008ca44: 0008ca48 - 0008ca78: 0x8ca48 | get misc data, do something else if none found 0008ca7c - 0008cbb0: 0008cbb4 - 0008cbd4: Does Misc Unit Exist With ID 0008cbd8 - 0008cc10: 0008cc14 - 0008cc4c: 0008cc50 - 0008cc7c: 0008cc80 - 0008cca8: 0008ccac - 0008cce4: 0008cce8 - 0008cd20: 0008cd24 - 0008cd54: 0008cd58 - 0008cd90: 0008cd94 - 0008cdcc: 0008cdd0 - 0008ce1c: Get Battle Unit Index By Unit Misc ID 0008ce20 - 0008ce74: Get Unit Misc ID By Unit Index 0008ce78 - 0008cecc: 0008ced0 - 0008cef8: Find Unit's Misc Data Pointer (+0x15c) 0008cefc - 0008cf38: 0008cf3c - 0008cf74: 0008cf78 - 0008d058: 0008d05c - 0008d100: 0008d104 - 0008d134: 0008d138 - 0008d188: store mimicking misc data, existence/entd checks 0008d18c - 0008d1c4: Reset Misc Unit Graphic Trigger 0008d1c8 - 0008d224: Reset Jumping Unit Graphic Triggers 0008d228 - 0008d268: 0008d26c - 0008d29c: 0008d2a0 - 0008d5c4: 0008d5c8 - 0008d64c: 0008d650 - 0008d6a4: 0008d6a8 - 0008d704: 0008d708 - 0008d8e0: 0008d8e4 - 0008d94c: 0008d950 - 0008d994: 0008d998 - 0008dabc: 0008dac0 - 0008db50: 0008db54 - 0008dc20: 0008dc24 - 0008dc70: Get Unit's Spritesheet Value 0008dc74 - 0008dc98: 0008dc9c - 0008dcc0: Find Unit's Misc Data Pointer and Load Spritesheet Value 0008dcc4 - 0008dd0c:
Pre-Effect display
?
0008dd10 - 0008dda4: Start New Effect 0008dda8 - 0008ddc8: 0008ddcc - 0008dde8: 0008ddec - 0008ddf8: 0008ddfc - 0008de84: 0008de88 - 0008de9c: 0008dea0 - 0008dec4: 0008dec8 - 0008ded4: 0008ded8 - 0008dee4: 0008dee8 - 0008df0c: Set Event Speed Inner 0008df10 - 0008df44: Store Selected Tile Coordinates 0008df48 - 0008df74: Store Map Max Coordinates 0008df78 - 0008dfa8: Get Tile Data Pointer From Unit Misc ID 0008dfac - 0008dfdc: 0008dfe0 - 0008e064: 0008e068 - 0008e090: 0008e094 - 0008e0b8: 0008e0bc - 0008e0ec: 0008e0f0 - 0008e118: 0008e11c - 0008e14c: 0008e150 - 0008e178: 0008e17c - 0008e1f4: 0x8e17c 0008e1f8 - 0008e230: 0008e234 - 0008e2c4: 0008e2c8 - 0008e300: 0008e304 - 0008e314: 0008e318 - 0008e324: 0008e328 - 0008e344: 0008e348 - 0008e354: 0008e358 - 0008e464: 0008e468 - 0008e53c: 0008e540 - 0008e6cc: 0008e6d0 - 0008e7b4: 0008e7b8 - 0008e808: Get ENTD data pointer and load units 0008e80c - 0008ea68: 0008ea6c - 0008ec6c: 0008ec70 - 0008ef20: 0008ef24 - 0008ef40: 0008ef44 - 0008ef78: 0008ef7c - 0008efb0:
Colour & Palette Modification
0008efb4 - 0008f12c: Color Screen Related (0x8efb4) 0008f130 - 0008f204: 0008f208 - 0008f31c: 0008f320 - 0008f494: 0008f498 - 0008f538: 0008f53c - 0008f638: 0008f63c - 0008f70c: 0008f710 - 00090044: Palette Modification 00090048 - 000901f4: 000901f8 - 00090254: 00090258 - 00090698: 0009069c - 000907f8: 000907fc - 0009083c: 00090840 - 00090c44: Map Darkness 00090c48 - 00090da4: 00090da8 - 00090de8: 00090dec - 000911f0: 000911f4 - 00091244: 00091248 - 0009127c: 00091280 - 000912a0: 000912a4 - 00092598: 0009259c - 0009261c: 00092620 - 000926d4: Extract Colors Data | Extract RGB+Alpha from Palette 000926d8 - 000927b8: Extract Palette Data | Get Palette Data 000927bc - 00092d48: 00092d4c - 00092dbc: 00092dc0 - 00092e94: 00092e98 - 00092f14: 00092f18 - 00092f94: 00092f98 - 00093044: 0x92f98 00093048 - 00093114: 00093118 - 00093140: 00093144 - 0009316c: 00093170 - 000931c0: Color Field 000931c4 - 000933c0: 000933c4 - 00093498: 0009349c - 000934cc: 000934d0 - 00093500: Map Darkness Wrapper 00093504 - 00093534: 00093538 - 00093560: 00093564 - 000935f0: 000935f4 - 00093610: 00093614 - 00093630: 00093634 - 00093650: 00093654 - 000937f4: 0x93654 000937f8 - 00093868: 0009386c - 00093a94: 00093a98 - 00093bec: 00093bf0 - 00093c94: 00093c98 - 000e729c: 000e72a0 - 000e7678: 000e767c - 000e77b4: 000e77b8 - 000e78bc: 000e78c0 - 000e818c: 000e8190 - 000e8408: 000e840c - 000ec714: Background Tile Color For Targeting/Movement 000ec718 - 000ee100: Background Tile Color For Targeting/Movement (Partial Tiles) 000ee104 - 000ee434: 000ee438 - 000ee958: 000ee95c - 000eeaf4: 000eeaf8 - 000eeec8: 000eeecc - 000ef69c: 000ef6a0 - 000ef6ec: 000ef6f0 - 000f0bdc: 000f0be0 - 000f1200: 000f1204 - 000f2290: 000f2294 - 000f2614: 000f2618 - 000f26b8: 000f26bc - 000f34c0: 000f34c4 - 000f3634: 000f3638 - 000f36c0: 000f36c4 - 000f3714: 000f3718 - 000f4ac8: 000f4acc - 000f4dd0: 000f4dd4 - 000f5574: 000f5578 - 000f5980: 000f5984 - 000f59ec: 000f59f0 - 000f5a28: 000f5a2c - 000f5a60: 000f5a64 - 000f5ae8:
Targetting Determination
000f5aec - 0011467c: 00114680 - 0011474c: Math Skill targeting calculations 00114750 - 0012cce4: 0011acdc - 0011aeec: Throw Determination Routine 0012cc54 - 0012cf40: Set Tile Background Color (Partial Tiles) 0012cf44 - 0012d2b0: Set Tile Background Color 0012d2b4 - 0012d874: 0012d8e4 - 0012da08: Process Inflict Status Event Commands 0012da0c - 0012dafc: Set Specific Unit Animation Value When Battle Init 0012db00 - 0012db8c: 0012db90 - 0012dbd8: 0012dbdc - 0012dc2c: 0012dc30 - 0012dc80: 0012dc84 - 0012dca8: Check If Tutorial Event Slot
Uncertain 2
0012dcac - 0012dcf4: Get Battle Unit Index By ENTD Unit ID 0012dcf8 - 0012dd08: 0012dd0c - 0012dd18: 0012dd1c - 0012dd2c: 0012dd30 - 0012dd40: 0012dd44 - 0012dd54: 0012dd58 - 0012dd68: 0012dd6c - 0012dd90: 0012dd94 - 0012ddc0: 0012ddc4 - 0012dde4: 0012dde8 - 0012df08: Battle Camera Initialize 0012df0c - 0012df3c: 0012df40 - 0012df64: Get Attacker Data Pointer 0012df68 - 0012df94: 0012df98 - 0012e18c: 0x12df98 0012e190 - 0012e194: (Empty routine) 0012e198 - 0012e240: 0012e244 - 0012e2b4: 0012e2b8 - 0012e31c: 0012e320 - 0012e344: 0012e348 - 0012e598: 0012e59c - 0012e648: 0012e64c - 0012e658: 0012e65c - 0012e9bc: 0012e9c0 - 0012e9f8: 0012e9fc - 0012ec8c: 0012ec90 - 0012ee38: 0012ee3c - 0012eeac: 0012eeb0 - 0012f028: 0012f02c - 0012f048: 0012f04c - 0012f108: 0x12f04c 0012f10c - 0012f35c: 0012f360 - 0012f3c8: 0012f3cc - 0012f450: 0012f454 - 0012f4dc: 0012f4e0 - 0012f658: 0012f65c - 0012f6ac: 0012f6b0 - 0012f6d0: 0012f6d4 - 0012fd1c: 0012fd20 - 0012fd88: Text Format String Fetching 0012fd8c - 00130188: 0013018c - 00130624: 00130628 - 00130714: 00130718 - 001307d0: 001307d4 - 00130870: 00130874 - 001308bc: 001308c0 - 00132820: 00132824 - 00132858: Prep for Loading Text 0013285c - 001328a8: 001328ac - 00132910: 00132914 - 00132bc0: 00132bc4 - 00132e4c: 00132e50 - 00132e70: 00132e74 - 00132f98: 00132f9c - 00132fec: 00132ff0 - 00133044: 00133048 - 00133084: 00133088 - 001330e0: 001330e4 - 0013312c: Copy Unit Screen Location Data 00133130 - 0013314c: 00133150 - 00133154: jr r31 00133158 - 00133490: Get misc ID (goes through a bunch of event command checks and more) 00133494 - 001334a0: 001334a4 - 00133564: 00133568 - 00133584: 00133588 - 00133750: Store level,exp, HP/MP hardcoding, store CT 00133754 - 00133c94: Store units small in battle display data 00133c98 - 00133ce8: Has Status Effect (For Status Window) 00133cec - 00133eec: Display Inner Character Window 00133ef0 - 00133f74: 00133f78 - 00133fe4: 00133fe8 - 0013401c: 00134020 - 00134070: 00134074 - 001340a8: 001340ac - 0013417c: Dismiss Unit Event Instruction 00134180 - 00134220: 00134224 - 00134244: Advance Date By One Year 00134248 - 001342c8: 001342cc - 001343b8: 001343bc - 001343cc: 001343d0 - 001343dc: 001343e0 - 0013442c:
Uncertain (Display Related)
00134438 - 001346f0: Display Height 001346f4 - 0013493c: Height Number Display Setup 00134940 - 00134a68: 00134a74 - 001352b8: Display Projected Action Effect 001352bc - 00136124: 00136128 - 00136184: 00136188 - 001361e4: 001361e8 - 00136320: Attack preview - Caster stats 00136324 - 001363d8: Attack Preview - Target stats 001363dc - 00136b0c: 00136b10 - 00136bcc: Get Item Graphic Data 00136bd0 - 00136d30: Construct Polygon for unit battle portrait 00136d34 - 001370a0: 001370a4 - 00137b8c: 00137b90 - 00137c0c:
Menuing
00137c10 - 00137ed0: Handle Menu Action 00137ed4 - 00137f80: 00137f84 - 00138090: 00138094 - 00138170: 0x138094 00138174 - 001383c4: 0x138174 001383c8 - 00138410: 00138414 - 0013845c: 00138460 - 001384dc: 001384e0 - 0013856c: 00138570 - 00138718: 0013871c - 00138768: 0013876c - 00138908: 0013890c - 00138ad8: 00138adc - 00138b0c: 00138b10 - 00138b60: 00138b64 - 00138ed4: 00138ed8 - 001390b8: Display Simple Selection Menu | Move/Act/Wait menu loading routine
==Uncertain (Display Related 2)
00136b10 - 00136bcc: Get Item Graphic Data 001390bc - 00139578: Build AT List Unit & Ability text entry list 0013957c - 001395a8: Preview ability turn AT list 001395ac - 001398f8: 001398fc - 00139bd8: 00139bdc - 00139be8: 00139bec - 0013aed8: 0013aedc - 0013aee8: 0013aeec - 0013b008: 0013b00c - 0013b27c: 0013b280 - 0013b4f8: 0013b4fc - 0013b58c:
Uncertain (Miscellany?)
0013b590 - 0013b640: Get Script Variable 0013b644 - 0013b6e0: Set Script Variable | Set r5 as New Variable Value 0013b6e4 - 0013b894: 0013b898 - 0013ba64: 0013ba68 - 0013bb6c: 0013bb70 - 0013bbe8: 0x13bb70 0013bbec - 0013bc10: 0013bc14 - 0013bcb8: Load File (0x13bc14) 0013bcbc - 0013bd60: 0013bd64 - 0013bd90: 0013bd94 - 0013bdc0: 0013bdc4 - 0013bf28: 0013bf2c - 0013bf58: 0013bf5c - 0013bf88: 0013bf8c - 0013bfb8: 0013bfbc - 0013c024: Display Triangle Selection Menu 0013c028 - 0013c12c: 0013c130 - 0013c230: 0013c234 - 0013c280: 0013c284 - 0013c2d8: 0x13c284 0013c2dc - 0013c3a0: 0013c3a4 - 0013c568: Equip Change Routine 0013c56c - 0013c664: 0013c668 - 0013c70c: 0013c710 - 0013c73c: Show Graphic (Outer Routine) 0013c740 - 0013c7c0: 0013c7c4 - 0013c8a4: 0013c8a8 - 0013c9bc:
Eventing
0013c9c0 - 0013ca6c: Load Event 0013ca70 - 0013cac0: 0013cac4 - 0013caf0: 0013caf4 - 0013cbd8: 0013cbdc - 0013ccc8: 0013cccc - 0013cce8: 0013ccec - 0013cf54: 0013cf58 - 0013d0a8: menu Routine 0013d0ac - 0013d184: 0013d188 - 0013d198: 0013d19c - 0013d1ec: 0013d1f0 - 0013d22c: 0013d230 - 0013d274: 0013d278 - 0013d31c: 0013d320 - 0013d4d8: 0013d4dc - 0013d574: 0013d578 - 0013d60c: 0013d610 - 0013d620: 0013d624 - 0013d630: 0013d634 - 0013d700: Store unit names and some event block data 0013d704 - 0013d9fc: 0013da00 - 0013da24: Set Event Speed 0013da28 - 0013da5c: 0013da60 - 0013da6c: 0013da70 - 0013da7c: 0013da80 - 0013dae0: 0013dae4 - 0013db98: 0013db9c - 0013dfac: Camera Fusion Event Instruction 0013dfb0 - 0013e544: Camera Fusion Inner Routine 0013e548 - 0013e580: 0013e584 - 0013e5bc: 0013e5c0 - 0013e658: Walk To Event Instruction 0013e65c - 0013e6c0: 0013e6c4 - 0013e704: 0013e708 - 0013e7cc: 0013e7d0 - 0013e818: 0013e81c - 0013e870: 0013e874 - 0013e8d0: 0013e8d4 - 0013e900: 0013e904 - 0013edd4: Block Start Event Instruction 0013edd8 - 0013efa8: 0013efac - 0013eff0: 0013eff4 - 0013f07c: 0013f080 - 0013f0bc: 0013f0c0 - 0013f164: 0013f168 - 0013f208: 0013f20c - 0013f3f8: 0013f3fc - 0013f49c: 0013f4a0 - 0013f4f4: 0013f4f8 - 0013f51c: 0013f520 - 0013f664: Data setting from menu selections 0013f668 - 0013f768: Store Selected Tile Data
Act Menuing
0013f76c - 0013f7a8: Initialize menu counters 0013f7ac - 0013f7b0: jr r31 0013f7b4 - 0013f8b0: Store some data for menus 0013f8b4 - 0013f8fc: 0013f900 - 0013f974: 0013f978 - 0013f984: Set r2 to 0x80169828 0013f988 - 0013f9c0: 0013f9c4 - 0013f9fc: 0013fa00 - 0013fa34: 0013fa38 - 0013fa68: 0013fa6c - 00140224: Main Skillset/ability loading (abilities greyed/blinking red) 00140228 - 001404c8: Main act menu loading 001404cc - 00140728: 0014072c - 00140888: 0014088c - 00140904: 00140908 - 0014097c: Build Main menu 00140980 - 001409a0: 001409a4 - 001409e8: 001409ec - 00140a2c: 00140a30 - 00140b00: Disable Move/Act based on menu ID 00140b04 - 00140cd0: Return Act-use Error Message 00140cd4 - 00140ed0: Ability selected routine (Good grief, can any of you put these in the right spot?) 00140ed4 - 0014115c: 00141160 - 001411b0: 001411b4 - 00141460: Set used item based on skillset *Bad name for this routine, I think it does much more important shit **Change loaded skillset here to make non-default abilities work in default skillset 00141464 - 00141650: Store message/menu type 00141654 - 0014169c: 001416a0 - 00141718: 0014171c - 00141758: Store main target ID/auto battle 0014175c - 001419b4: Spell Quote determination 001419b8 - 00141a88: System function setup routine 00141a8c - 00141b08: 00141b0c - 00142504: System function routine *00141c14 - 00141cb8: Gameover checks (both) *00141db0 - 00141e24: Gameover (party incapacitated) checks *00142074 - 001420e0: Calculator skillset loading? *0014227c - 001422f4: receive item whos quantity = 99 (increase gil) *001422f8 - 00142334: Increment item quantity 00142508 - 001425ac: Get Battle Unit By Unit ID (For scenario conditionals?) 001425b0 - 00142688: Process Scenario Conditionals 00142694 - 00142b58: Process Scenario Conditional 00142b5c - 00142ba0: 0x142b5c 00142ba4 - 00142bcc: 00142bd0 - 00142c20: 0x142bd0 00142c24 - 00142ca4: 0x142c24 00142ca8 - 00142d28: 0x142ca8 00142d2c - 00142d54: 0x142d2c 00142d58 - 001433a8: 0x142d58 001433ac - 001433e4: 001433e8 - 00143414: 00143418 - 001439bc: 0x143418 001439c0 - 00143a98: 00143a9c - 00143b64: 00143b68 - 00143b7c: 00143b80 - 00143ba4: 00143ba8 - 00143bcc: 00143bd0 - 00145f74:
Eventing 2
00143bd8 - 001449f8: Event Instruction Main Routine 1 001449fc - 00145750: Event Instruction Main Routine 2 *00145268 - 00145298: Event Instruction 0x76: DarkScreen *001452d8 - 00145320: Event Instruction 0x78: DisplayConditions *001455d8 - 00145648: Event Instruction 0x44: Draw 00145754 - 00145f70: Event Instruction Main Routine 3 *00145964 - 001459c4: Event Instruction 0xe5: WaitForInstruction *001459e8 - 00145a34: Event Instruction 0xf1: Wait *00145e10 - 00145e68: Event Instruction 0x91: ShowMapTitle 00145f78 - 00146000: Load Next Event 00146004 - 00146074: 00146078 - 00146090: Load Halfword | Load event command bytes 00146094 - 001460a0: Store Halfword 001460a4 - 001460e0: 001460e4 - 0014610c: 00146110 - 001466b0: Camera Event Instruction 001466b4 - 00146728: Map Darkness (Async) 0014672c - 001467d8: 001467dc - 0014693c: Color Screen Event Instruction 00146940 - 00146ee0: Sprite Move 00146ee4 - 00146f1c: Sprite Move (Outer) 00146f20 - 00146f58: Sprite Move Beta 00146f5c - 00147018: 0014701c - 00147038: 0014703c - 001472d8: Map Light (Async) 001472dc - 00147314: 00147318 - 001474a0: 001474a4 - 00147580: 0x1474a4 00147584 - 0014777c: Focus Event Instruction 00147780 - 00147914: Focus Speed Event Instruction 00147918 - 00147924: 00147928 - 001479a8: Try Get Unit Misc Data By Unit ID 001479ac - 00147bcc: Process Unit Misc State Value 00147bd0 - 00147ca4: 00147ca8 - 00147cec: 00147cf0 - 00147d94: 00147d98 - 00147e5c: 00147e60 - 00147fa8: Warp Unit 00147fac - 00148080: 00148084 - 00148280: 00148284 - 00148484: 00148488 - 00148538: 0014853c - 0014857c: Clear Some Staging Data 00148580 - 001488a4: Update Unit Status And Staged Status Data 001488a8 - 00148cd4: Apply Staged Status Data To Unit 00148cd8 - 00148e84: Process Unit Staged Status Data 00148e88 - 001490fc: Inflict Status Event Command 00149100 - 001491d4: Inflict Unit Status By ENTD Unit ID 001491d8 - 00149394: 00149398 - 0014948c: Unit Anim 00149490 - 00149528: 0014952c - 001495dc: 001495e0 - 00149688: Color Unit Event Instruction 0014968c - 00149730: 00149734 - 00149788: 0014978c - 001498f8: 001498fc - 001499a8: 001499ac - 00149a50: 00149a54 - 00149b34: 00149b38 - 00149be0: 00149bec - 00149c44: Get Next Available Thread ID 00149c48 - 00149cb8: 00149cbc - 00149d44: Get Thread Running Task 00149d48 - 00149d68: Set Thread Task ID 00149d6c - 00149eb8: Event Jump 00149ebc - 00149f0c: Find Event Instruction Byte Offset 00149f10 - 0014a014: 0014a018 - 0014a2e8: Run Script Variable Command | Run Script Variable Command (Alternative) 0014a2ec - 0014a398: Get Variable's Word Pointer from Variable's ID 0014a39c - 0014a3f4: 0014a3f8 - 0014a460: Wait Value Event Instruction 0014a464 - 0014a488: 0014a48c - 0014a4d4: Rand16 (Events) 0014a4d8 - 0014a518: 0014a51c - 0014a574: 0014a578 - 0014a594: 0014a598 - 0014a5e4:
Display Related
0014a5e8 - 0014a65c: Image Loading Setup (0x14a5e8) 0014a660 - 0014a6a0: 0014a6a4 - 0014a6c8: 0014a6cc - 0014a6e0: 0x14a6cc 0014a6e4 - 0014a7a4: 0014a7a8 - 0014a818: 0014a81c - 0014a820: BATTLE.BIN: Return 0 0014a824 - 0014a828: jr r31 0014a82c - 0014a830: jr r31 0014a834 - 0014aa78: Image loading setup (0x14a834) 0014aa7c - 0014ab54: 0014ab58 - 0014ac2c: 0014ac30 - 0014aebc: 0014aec0 - 0014b260: 0014b264 - 0014b2ec: 0014b2f0 - 0014b31c: Display Menu Text Entry 0014b320 - 0014b34c: Display Menu Text Entry (Unused) 0014b350 - 0014b390: Display Specific Menu Text 0014b394 - 0014ba24: Display Menu Text | Giant message/menu loading routine 0014ba28 - 0014bae0: Find Next Text Character 0014bae4 - 0014bd84: 0014bd88 - 0014bed4: 0014bed8 - 0014bf50: 0014bf54 - 0014bf78: Copy Bytes (0x14bf54) 0014bf7c - 0014bfc0: 0014bfc4 - 0014c010: 0014c014 - 0014c160: 0014c164 - 0014c188: 0014c18c - 0014c4a4: 0014c4a8 - 0014c754: 0x14c4a8 0014c758 - 0014c854:
Thread Management
0014c858 - 0014c89c: Wait (Switch To Next Thread Multiple Times) 0014c8a0 - 0014c920: Initialize Thread 0014c924 - 0014c93c: Mark Thread As Running 0014c940 - 0014c954: Mark Thread As Stopped 0014c958 - 0014c990: Stop Current Thread 0014c994 - 0014c9cc: 0014c9d0 - 0014ca18: Wait For Thread 0014ca1c - 0014ca34: Check Thread r4 Running Status 0014ca38 - 0014ca54: Store Thread Function Parameters | Store event command bytes 0014ca58 - 0014ca7c: Store Thread Parameters (0x14ca58) | Store event command bytes 2 0014ca80 - 0014cbb0: Switch To Next Thread | Some event data setting routine 0014cbb4 - 0014cbbc: Return Global Pointer 0014cbc0 - 0014cbf0: Get First Thread Parameter | Get menu address 0014cbf4 - 0014cc24: Get Second Thread Parameter 0014cc28 - 0014cc58: 0014cc5c - 0014cc90: 0014cc94 - 0014ccb4: Check Thread Running Status 0014ccb8 - 0014ce04: 0014ce08 - 0014ce74: 0014ce78 - 0014ceb0: Find Text ID's Location 0014ceb4 - 0014cf54: Call Inner Subroutine 0014cf28 - 0014cf54: 0014cf58 - 0014cf64: 0014cf68 - 001743c4: 00174068 - 00174294: Return addresses 00174298: nop 0017429c - 001742fc: Return addresses : reaction abilities for Perform_reaction_abilities 00174300: nop 00174304 - 00174340: Return addresses : action menu for Store_used_weapon 00174344 - 0017436c: Return addresses : action menu for Pre_Formula_Setup_(FDC)
Movement Calculations
00174370 - 001743c4: 001743c8 - 0017442c: Chocobo Check 00174430 - 00174b88: Store movement stuff into scratch pad 00174b8c - 00174df4: Set_Reachable_Tiles 00174df8 - 00174e80: Disable_Tile_Flag_0x10_For_Dead_and_Jumping_Units 00174e84 - 00175284: Set_Tile_Flags_for_Pathfinding 00175288 - 001754cc: Set_Reachable_Tile_Flag 001754d0 - 001754f0: Spread_Move_to_East_Preset 001754f4 - 00175518: Spread_Move_to_North_Preset 0017551c - 0017553c: Spread Move to West Preset 00175540 - 00175564: Spread Move to South Preset 001755a8 - 001755e4: Transfer_Tiles_Height_Halves_and_Slope_in_Scratch_Pad 001755e8 - 00175614: Set_spreading_Tile_X_and_Y_coordinates 00175618 - 00175678: Check_Spreading_Tile_Coordinates 0017567c - 00175954: Set_Origin_Height_Data 00175958 - 00175e9c: Movement routine Highlights panels blue 00175ea0 - 00175fa0: Check_and_Spread_Movement_One_Tile_Around 00175fa4 - 00176160: 00176164 - 00176228: Calculate_Tile_Ceiling 0017622c - 001764d4: Check_Horizontal_Jump_option 001764d8 - 001766b0: Spread_Horizontal_Jump 001766b4 - 00176c0c: 00176c10 - 00176c8c: Teleport Chances 00176c90 - 0017717c: 00177180 - 001773b4: 001773b8 - 00177790: 00177794 - 001779d8: 001779dc - 00177b60: 00177b64 - 00177c04: 00177c08 - 00177e60: 00177e64 - 00178094: 00178098 - 001780e8: 001780ec - 00178138: Calculate WalkTo Pathing 0017813c - 00178ca0: Calculate Pathing 00178ca4 - 00179200: Find Tiles for the AI to move to (00178ca4)
Targetting Calculations
00179204 - 00179258: Moldball Virus Depth Check 0017925c - 001792a0: Clear Some stuff for Untargetable Terrain 001792a4 - 001793fc: Check Vert Tolerance and if Tiles can be Chosen 00179400 - 00179420: Null some Tile Data (192dd9) 00179424 - 00179514: Remove Close Range Routine 00179518 - 00179638: Calculate Tiles Hit by Ability 0017963c - 001797b0: Calculate Possible AoE Tiles 001797b4 - 001798ac: Depth Calculation 001798b0 - 00179a1c: Set initial panels 00179a20 - 00179b54: Set targeting for weapon attack 00179b58 - 00179c98: Striking/lunging modification 00179c9c - 00179d80: Depth Calculation 2 ??? 00179d84 - 00179dc4: Remove targets for unclear reasons 00179dc8 - 0017a168: Set Ability Targeting | Or, more accurately, Set Jump Ability Targeting? 0017a16c - 0017a28c: calculate ability range with map parameters 0017a290 - 0017a514: Set panels affected by ability 0017a518 - 0017a5b8: Set targeting for weapon attack 2 0017a5bc - 0017a648: Set all panels targeted if targetable 0017a64c - 0017a6d8: Remove Selection state of all panels 0017a6dc - 0017a7b8: Set target state for all units panels 0017a7bc - 0017a8bc: Vertical Fixed Routine 0017a8c0 - 0017aaf4: Calculate Target Panels / Alt version Set_Target_Tiles 0017aaf8 - 0017ac8c: Calculate Targeting for Menu Types 0017ac90 - 0017afbc: Targeting validation (weapon flags) 0017afc0 - 0017b3f0: Auxilary targeting validation 0017b3f4 - 0017b49c: Height/coordinate validation 0017b4a0 - 0017b4cc: Disable Green Panel Flags (initialization?) 0017b4d0 - 0017b7b0: Calculator Routine 0017b7b4 - 0017b870: Disable Green Panel on all but Target's Tile 0017b874 - 0017bc74: Targeting routine 0017bc78 - 0017bdcc: Check Allies/Enemies that can be Targeted 0017bdd0 - 0017be64: Check if Unit can be Targeted 0017be68 - 0017c040: Linear/3-direction AoE Calculation 0017c044 - 0017c154: Linear Attack Tile Calculation 0017c158 - 0017c3b4: Calculate Height Data 0017c3b8 - 0017c3d8: Call Attack Preparation (ability selected) 0017c3dc - 0017c458: Call Attack Preparation (AT list preview) 0017c45c - 0017c908: Attack Preparation 0017c90c - 0017c950: Unit exists/party member checkReturns 0x16e in unit data 0017c954 - 0017c9b4: Player Item Quantity decrement 0017c9b8 - 0017cac8: Prep Current Action Data 0017cacc - 0017cd20: Reaction Target/Hit Calculation 0017cd24 - 0017ce40: Map calculations for attack Attack, charge, ranged weapon flag 0017ce44 - 0017d34c: Main ability loading routine 0017d350 - 0017d40c: set target coordinates for ability also set regenerator target 0017d410 - 0017d49c: draw out routine dealing with experience gain 0017d4a0 - 0017d704: Current Action Ability Data Setting / Multi Hit Formulas 0017d708 - 0017d84c: Select Random Tile For Random Fire Abilities 0017d850 - 0017da1c: List and Sort Targeted Units
Acting Caster Calculations
0017da20 - 0017dbc4: Ability Usage Checks and MP Reduction 0017dbc8 - 0017dc84: Store Some Acting Unit Data 0017dc88 - 0017dca4: Get ID of Unit if Tile is Targetable 0017dca8 - 0017decc: Find Unit at Specified Coordinates | Check if another unit is on the same Tile 0017ded0 - 0017def8: Clear targeting panel data 0017defc - 0017e174: Big... Contains Hamedo check Pre Attack Phase 0017e178 - 0017e58c: Main reaction routine 0017e590 - 0017e64c: Counter magic targeting 0017e650 - 0017e77c: Store counter ability 0017e780 - 0017e7e0: Auto Potion 0017e7e4 - 0017ea24: Award EXP and JP for actions 0017ea28 - 0017ea7c: Load Job Level 0017ea80 - 0017ec14: Store JP; Calculate Unlocked Jobs 0017ec18 - 0017f01c: big map/panel routine 0017f020 - 0017f0e8: Float/Float/Fly movements 0017f0ec - 0017f178: Calculate Move EXP/JP UP To earn 0017f17c - 0017f2d4: Calculate Projected Action Effect 0017f2d8 - 0017f318: Get Elemental Ability ID
Battle Initialisation
0017f31c - 0017f384: Initialize party members Job data, Sp cap, Status initialization 0017f388 - 0017f5f4: Initialize units battlefield data(ENTD ID/flags, Map location, palette, control, etc.) 0017f5f8 - 0017f61c: Initialize players battlefield units 0017f620 - 0017f63c: Initialize enemy battlefield units 0017f640 - 0017f6c0: Set unit placement and validate 0017f6c4 - 0017f89c: Validate unit placement 0017f8a0 - 0017fbe8: Load ENTD Units | Big ENTD unit loading routine 0017fbec - 0017fcc4: Add Unique Value to List 0017fcc8 - 0017fd04: Disable/Remove unit 0017fd08 - 0017fd7c: Check if unit present and ENTD level setting 0017fd80 - 0017fda8: Set unit cannot exist(but can), return r2 = 0 0017fdac - 0017fdd8: Erase unit, set to be removed from party
Movement Calculations 2
0017fddc - 0017ffbc: Set Rider/Mount's X/Y Data 0017ffc0 - 00180130: Set target for mounted unit, move find item/trap 00180134 - 00180174: Get movement support flags (move-MP/HP/EXP/JP up) 00180178 - 0018020c: Remove charging status/ability CT 00180210 - 0018022c: Disable acting statuses 00180230 - 001802c4: Rare/common item determination 001802c8 - 001804c0: Set map Item/trap data 001804c4 - 0018052c: Move find item flag calculation
Unit Death Handling
00180530 - 00180900: Generate Crystal or Treasure 00180904 - 00180a04: Learn from Crystal 00180a08 - 00180af8: Generate Treasure 00180afc - 00180b28: Get Unit's Data Pointer 00180b2c - 00180c8c: Check Base Class | Ramza Causes Game Over 00180c90 - 00180dac: Find Unit Data Pointer For ENTD Unit ID | Unit Existence/crystaltreasure check Uses 0x183 byte, 0x161 ENTD ID 00180db0 - 00180dfc: Party level XX modification | Set Enemy Level Data 00180e00 - 00180f3c: Find War Trophies and Bonus Money | Store some ENTD Data(War Trophy, gil), party level calculation 00180f40 - 00180fe0:
Player Action & Menuing
00180fe4 - 0018109c: Prep for Special Status Flag Enabling 001810a0 - 001810d0: Map Location Calculation 001810d4 - 00181110: Get Existent Battle Unit Pointer | Load unit Data (exists check within) 00181114 - 00181148: Find Active Unit Data Pointer 0018114c - 001811f4: Get Menu ID based on mount, moveable/actable 001811f8 - 00181308: Player Control Routine 0018130c - 001813bc: Weapon Guard Usability (Check if Unit can React) 001813c0 - 00181580: Setup Act Menu | Player Skill Set 00181584 - 0018171c: Skillset Loading 00181720 - 001817bc: Get Number of Turns to Resolve | Get Number of Turns to Resolve(Alt) 001817c0 - 00181b6c: Get Unit Skillset Ability Data | Load ability data for skillset (MP, CT, req. sword booleans) 00181b70 - 00181b90: Item Inventory Ability Display 00181b94 - 00181cb4: Item Ability Loading 00181cb8 - 00181cd8: Throw 00181cdc - 00181eec: Throw Determination Routine 00181ef0 - 00181f10: Math Skill Ability Display 00181f14 - 00181f34: Math skill ability loading routine 00181f38 - 00182064: Math skill Ability ID Check 00182068 - 001821c8: Math Skill ability loading 001821cc - 001822c8: Elemental ability loading 001822cc - 0018242c: Monster skill, frog attack ability loading 00182430 - 00182504: Monster Skill check prep 00182508 - 00182660: Monster Skill check 00182664 - 00182684: Draw Out 00182688 - 00182784: Draw Out 2 (main routine) 00182788 - 001827b0: Call Charge Skillset Loading 001827b4 - 001827ec: Charge Skillset Loading
In-Between Turns Unit & Status Processing
001827f0 - 00183074: In between turn control routine *0018282c - 001828ac: Initialize data? *001828b0 - 00182920: Validate mime action? *00182924 - 00182978: Set active turn *001829b8 - 00182a40: Next clocktick - CT increment 00182a44 - 00182ba8: Dead/next turn processing (100CT) *00182bac - 00182c04: Ability CT decrement *00182c08 - 00182c8c: Post-ability CT setting *00182c90 - 00182ce4: Status CT decrement *00182ce8 - 00182d4c: Set Mime bytes *00182d50 - 00182d88: Clear Mime bytes *00182d8c - 00182dfc: Find highest CT *00182e00 - 00182e6c: Validate units turn *00182e70 - 00182ea8: Poison and regen *00182eac - 00182ee4: Poison marsh *00182ee8 - 00182f30: Transparent Removal *00182f34 - 00182fa0: Check if mimicable ability occurred *00182fa4 - 00183074: Mimic ability setting 00183078 - 001832c8: Death sentence, crystalization, treasurization, etc also reraise, defend removal, chicken brave increment 001832cc - 00183370: Status checks 00183374 - 001834b8: Check Battle Outcome | Gameover by party incapacitated 001834bc - 00183540: Check some list for Unit Battle ID 00183544 - 001835a4: Calculate AT List and Get Specific Unit ID 001835a8 - 001835f4: Unit doesn't exist/deadcrystaltreasurepetrify/being ridden check 001835f8 - 00183708: AT List Preview 0018370c - 00183ac8: Calculate AT List 00183acc - 00183ba4: AT List Sorting 00183ba8 - 00183bc8: Set Only Action Taken 00183bcc - 00183bec: Set Only Movement Taken 00183bf0 - 00183c68: Set move/act flags used in defend/equip change routines 00183c6c - 00183d0c: End of Turn 00183d10 - 00183d6c: Able to move/act checks (Menu) 00183d70 - 00183ddc: Change of Turn check 00183de0 - 00183dfc: Enable/disable acting status 00183e00 - 00183e38: another intermediate routine 00183e3c - 00183e90: Unit exists checks 00183e94 - 00183e9c: Activates move/act 00183ea0 - 00183f5c: something involving map coordinates 00183f60 - 00183fb0: Load Move Find-Item data to Current Map 00183fb4 - 00184018: Get Tile Data Pointer | Deals with map coordinates 1 0018401c - 00184148: Return Various Tile Data 0018414c - 001842f4: deals with map coordinates 3 001842f8 - 00184308: Clear r2 2
Formula Processing Subroutines
0018430c - 00184338: Force Attack Miss 0018433c - 0018435c: Cause Action Miss | Force Attack Miss 2 00184360 - 001843e8: Dance/Song hit % Returns if attack hit or not 001843ec - 0018460c: Knockback Calculation 00184610 - 001848d4: Knockback 2 001848d8 - 00184960: Attack Evaded Calculations 00184964 - 00184b20: Compatibility 00184b24 - 00184e3c: Modify Status Inflictions | Validate Status Changes 00184e40 - 00184e94: Nullify Action | Elemental Nullification 00184e98 - 00184f98: Elemental Damage Modification 00184f9c - 001851c0: Equipment Evasion Setting (Physical) 001851c4 - 001852e0: Equipment Evasion Setting (Magical) 001852e4 - 00185324: Concentrate Calculation 00185328 - 00185378: Dark/Confuse Caclulation 0018537c - 001853f0: Abandon Calculation 001853f4 - 001854b4: Evasion Changes due to Statuses 001854b8 - 001854f8: Transparent Calculation 001854fc - 00185734: Facing Evade Calculation 00185738 - 00185810: Weather effects on Bows 00185814 - 00185a98: Calculate Final Hit % 00185a9c - 00185c90: Base XA Calculation 00185c94 - 00185cbc: Store MA and Y 00185cc0 - 00185cfc: Base XA and YA for MA + Y / 2 00185d00 - 00185d3c: Store PA and PA + Y / 2 00185d40 - 00185d7c: Store MA and PA + Y / 2 00185d80 - 00185da8: Store MA and X 00185dac - 00185dd4: Store PA and X 00185dd8 - 00185e00: Store PA and WP 00185e04 - 00185e2c: Store PA and Y 00185e30 - 00185e58: Store Speed and X 00185e5c - 00185e90: Store PA and WP + Y 00185e94 - 00185f7c: Formula 64 or Jump Base XA / YA 00185f80 - 00185fa0: Charge Calculation 00185fa4 - 00185ff8: Weapon Element Strengthen 00185ffc - 00186050: Elemental Strengthen 00186054 - 00186148: Attack UP/Two Hands/Martial Arts 0018614c - 00186200: Formula 32, 33, 34, 35 Attack Up and Martial Arts 00186204 - 00186250: Magic Attack Up routine 00186254 - 001862c8: Attacker Berserk/Frog Check 001862cc - 00186318: Defense UP routine 0018631c - 00186368: Magic Defense Up routine 0018636c - 0018645c: Target XA affecting Statuses (Physical) 00186460 - 001864f4: Target's Status Affecting XA (Magical) 001864f8 - 00186564: Critical Hit Calculation 00186568 - 00186598: XA * YA Calculation 0018659c - 00186620: Set XA + YA for Status Formulas (Stupid section) 00186624 - 00186688: Calculate % of damage 0018668c - 001866e8: MP Damage Routine (Uses Y instead of X.) 001866ec - 00186740: Gravi2 Damage Routine 00186744 - 00186810: Steal Gil 00186814 - 001868ec: Set EXP Stolen 001868f0 - 00186918: 36 +PA (Y) 0018691c - 001869e8: Damage and Knockback Routine (Dash, tackle, throw stone) 001869ec - 00186af4: Song abilities 00186af8 - 00186c00: Dance abilities 00186c04 - 00186cfc: Talk Skill 00186d00 - 00186d28: 3A +Brave (Y) 00186d2c - 00186d54: 39 +SP (Y) 00186d58 - 00186db8: 3B +Brave (X) +PA/MA/SP (Y) 00186dbc - 00186e24: 3C Heal (CasMaxHP*2/5) DmgCas (CasMaxHP/5) 00186e28 - 00186e50: 43 Dmg (CasMaxHP-CasCurHP) 00186e54 - 00186e74: 44 Dmg (TarCurMP) 00186e78 - 00186ea0: 45 Dmg (TarMaxHP-TarCurHP) 00186ea4 - 00186ecc: Y brave 00186ed0 - 00186fcc: Weather Elemental effects? 00186fd0 - 00186ff4: Elemental Damage Modification (Prep) 00186ff8 - 001870f8: Apply Elemental 001870fc - 0018714c: Elemental Absorption 00187150 - 00187244: Faith Calculation 00187248 - 0018734c: HP Absorbtion (Seems needlessly complex) 00187350 - 001873d4: Undead Reversal 001873d8 - 00187468: Undead Absorb Attack 0018746c - 001874e8: MP Recovery Routine -MP Absorb* 001874ec - 0018750c: Convert HP Damage into MP Recovery 00187510 - 001875b8: Use Specific Action Hit Percentage | Set XA*YA as hit% 001875bc - 001875f8: Dragon Check 001875fc - 00187634: Sleep Check 00187638 - 0018768c: Maintenance 00187690 - 001876e0: Conditional Status Proc Roll (19%) Inner Routine 001876e4 - 0018772c: Store Reaction/Proc ID and Target 00187730 - 00187838: Magic Gun Ability Decision 0018783c - 0018785c: Quick Effect 00187860 - 0018790c: Determine which stat will be reduced 00187910 - 001879c4: Katana Break Chance 001879c8 - 00187c9c: Steal/Break/Might Sword Hard Coding 00187ca0 - 00187eb0: Formula 01 - 06 Aftermath 00187eb4 - 00187f20: Apply status (to action) - (Preserve hit status, evade type, hit %) 00187f24 - 00188284: Apply status (to action) Formula 38 00188288 - 001882c4: MP Healing Item Formula 001882c8 - 001882f4: 100% HP/MP Healing (actual) 001882f8 - 001883a8: Finger Guard 001883ac - 00188484: Catch 00188488 - 001884bc: Calculate Hit % 001884c0 - 0018850c: Conditional Status Proc Roll (19%) 00188510 - 00188564: Physical Evade Calculation 00188568 - 001885b4: Physical Evade Calculation(Charge) 001885b8 - 001885f4: Magical Evade Calculation 001885f8 - 00188634: Physical XA Modifying Statuses/Support 00188638 - 001886a0: Weapon Damage Calculation 001886a4 - 001886d0: Damage Calculation 001886d4 - 00188718: Calculate_Accuracy_for_Physical 0018871c - 00188740: Elemental Absorb and status roll 19% conditional status 00188744 - 00188778: Magical Support/Status/Compat 0018877c - 001887c0: Elemental XA * YA 001887c4 - 001887fc: Elemental Absorb/Status 00188800 - 00188854: MA + X 00188858 - 00188884: Magical XA * YA 00188888 - 00188960: Golem Accuracy Calculate Accuracy as User Faith * (MA + X)% 00188964 - 001889a0: Truth/Formula 5E-5F Magical damage 001889a4 - 001889c8: 2Truth/Formula 5E-5F Calculate damage 001889cc - 00188a20: Calculate Accuracy for Magical Spells 00188a24 - 00188a80: Calculate Accuracy for Magical 00188a84 - 00188ad8: MA + X without faith 00188adc - 00188b10: Cluster of Physical Routines 00188b14 - 00188b60: Physical Routine for Hit % abilities
Formulas
00188b64 - 0018ac70: Formulas 00188b64 - 00188ba0: 01 Dmg_(Weapon) 00188ba4 - 00188be0: 02 Dmg_(Weapon) 00188be4 - 00188c20: 03 Dmg_(WP^2) 00188c24 - 00188c98: 04 Magic Gun 00188c9c - 00188cf0: 05 Dmg (Weapon) 00188cf4 - 00188d38: 06 AbsHP (Weapon) 00188d3c - 00188d80: 07 Heal (Weapon) 00188d84 - 00188df0: 08 Dmg F(MA*Y) 00188df4 - 00188e74: 09 Dmg (Y/100)% Hit F(MA+X)% 00188e78 - 00188eb4: 0A Hit F(MA+X)% 00188eb8 - 00188ef4: 0B Hit F(MA+X)% 00188ef8 - 00188f34: 0C Heal F(MA*Y) 00188f38 - 00188f8c: 0D Heal (Y)% Hit F(MA+X)% 00188f90 - 00189080: 0E Dmg (Y)% Hit F(MA+X)% 100% Status Hide Status 00189084 - 001890d8: 0F AbsMP (Y)% Hit F(MA+X)% 001890dc - 00189120: 10 AbsHP (Y)% Hit F(MA+X)% 00189124 - 00189128: 11 (does nothing) 0018912c - 00189160: 12 Set Quick Hit F(MA+X)% 00189164 - 00189168: 13 (does nothing) 0018916c - 001891a8: 14 Set Golem Hit CasF/100*(MA+X)% 001891ac - 00189200: 15 Set CT00 Hit F(MA+X)% 00189204 - 00189258: 16 DmgMP (TarCurMP) Hit F(MA+X)% 0018925c - 00189298: 17 Dmg (TarCurHP-1) Hit F(MA+X)% 0018929c - 001892a0: 18 (does nothing) 001892a4 - 001892a8: 19 (does nothing) 001892ac - 00189338: 1A Hit F(MA+Y)% // -PA/MA/SP (X) 0018933c - 00189378: 1B DmgMP (MA+Y)% Hit F(X)% 0018937c - 001893d4: 1C Hit (X)% Sing 001893d8 - 00189430: 1D Hit (X)% Dance 00189434 - 00189460: 1E Dmg ((MA+Y)*MA/2) 00189464 - 001895c0: 1F Dmg ((100-CasF)*(100-TarF)*(MA+Y)*MA/2) 001895c4 - 001895f0: 20 Dmg (MA*Y) Draw Out 001895f4 - 00189650: 21 DmgMP (MA*Y) Draw Out 00189654 - 00189678: 22 Hit (100%) Status Draw Out 0018967c - 001896b0: 23 Heal (MA*Y) Draw Out 001896b4 - 001896e8: 24 Dmg ((PA+Y)/2*MA) 001896ec - 00189790: 25 Equipped: Break Hit (PA+WP+X)% 00189794 - 00189824: 26 Equipped: Steal Hit (SP+X)% 00189828 - 0018986c: 27 StealGil (CasLVL*SP) Hit (SP+X)% 00189870 - 0018990c: 28 StealExp (Lowest of TarCurExp & SP+Y) Hit (SP+X)% 00189910 - 001899a0: 29 OppositeSex: Hit (MA+X)% 001899a4 - 00189a8c: 2A Hit (MA+X)% // AffectBraveOrFaith(Y) 00189a90 - 00189ad4: 2B Hit (PA+X)% // -PA/MA/SP (X) 00189ad8 - 00189b1c: 2C DmgMP (X)% Hit (PA+Y)% 00189b20 - 00189b90: 2D Dmg (PA*(WP+Y)) 100% Status 00189b94 - 00189c4c: 2E Equipped:Break Dmg (PA*WP) 00189c50 - 00189c8c: 2F AbsMP (PA*WP) 00189c90 - 00189ccc: 30 AbsHP (PA*WP) 00189cd0 - 00189d70: 31 Dmg ((PA+Y)/2*PA) 00189d74 - 00189e24: 32 Dmg (Rdm(1…X)*(PA*3+Y)) 00189e28 - 00189e90: 33 Hit (PA+X)% 00189e94 - 00189f04: 34 Heal (PA*Y) HealMP (PA*Y/2) 00189f08 - 00189f80: 35 Heal (Y)% Hit (PA+X)% 00189f84 - 00189fc8: 37 Dmg (Rdm(1…Y)*PA) 00189fcc - 0018a008: 3D Hit (MA+X)% 0018a00c - 0018a028: 3E Dmg (TarMaxHP-1) 0018a02c - 0018a084: 3F Hit (SP+X)% 0018a088 - 0018a110: 40 Undead: Hit (SP+X)% 0018a114 - 0018a178: 41 Hit (MA+X)% 0018a17c - 0018a214: 42 Dmg (PA*Y) DmgCas (PA*Y/X) 0018a218 - 0018a21c: 46 (does nothing) 0018a220 - 0018a24c: 47 AbsHP (Y)% 100% Status 0018a250 - 0018a2a0: 48 Heal (Z*10) 0018a2a4 - 0018a2c0: 49 HealMP (Z*10) 0018a2c4 - 0018a2e8: 4A Elixir Formula 0018a2ec - 0018a39c: 4B Heal (Rdm(1..9)) 100% Status 0018a3a0 - 0018a3cc: 4C Heal (MA*Y) 0018a3d0 - 0018a41c: 4D AbsHP (Y)% Hit (MA+X)% 0018a420 - 0018a454: 4E Dmg (MA*Y) 0018a458 - 0018a49c: 4F Dmg (CasMaxHP-CasCurHP) Hit (PA+X)% 0018a4a0 - 0018a4e4: 50 Hit (MA+X)% 0018a4e8 - 0018a550: 51 Hit (MA+X)% 0018a554 - 0018a5e0: 52 Dmg (CasMaxHP-CasCurHP) 100% Add Status Caster in AoE: DmgSelf (CasCurHP) 0018a5e4 - 0018a664: 53 Dmg (X)% Hit (MA+X)% 0018a668 - 0018a694: 54 HealMP (MA*Y) 0018a698 - 0018a6f4: 55 –PA (Y) Hit (MA+X)% 0018a6f8 - 0018a754: 56 –MA (Y) Hit (MA+X)% 0018a758 - 0018a820: 57 +Lvl(1) NS 100% Add Status on Caster 0018a824 - 0018a904: 58 Generic: Set Morbol: Hit(MA+X)% 0018a908 - 0018a97c: 59 –Lvl(1) Hit (MA+X)% 0018a980 - 0018a9c0: 5A Dragon: Hit(100)% 0018a9c4 - 0018aa0c: 5B Dragon: Heal (Y)% 100% Add Status 0018aa10 - 0018aa50: 5C Dragon: +Brave (X) +PA/MA/SP(Y) 0018aa54 - 0018aa94: 5D Dragon: Set Quick 0018aa98 - 0018aac4: 5E Dmg ((MA+Y)/2*MA) 0018aac8 - 0018aaf4: 5F Dmg ((MA+Y)/2*MA) 0018aaf8 - 0018ab14: 60 Dmg ((MA+Y)/2*MA) 6.25 Status 0018ab18 - 0018ab54: 61 –Brave (Y) Hit F(MA+X)% 0018ab58 - 0018ab94: 62 –Brave (Y) Hit (MA+X)% 0018ab98 - 0018ac40: 63 Dmg (SP*WP) 0018ac44 - 0018ac70: 64 Dmg (PA * WP); if using Spear (PA * 3/2 * WP); if weaponless (PA * Brave /100 * WP)
Post Formula Handling
0018ac74 - 0018acd8: remove transparent status if Jump is used 0018acdc - 0018ad54: Apply Status and Check Undead 0018ad58 - 0018adf0: Switch_Ability_to_default_Attack 0018adf4 - 0018ae38: action data nulling 0018ae3c - 0018af28: Knockback 0018af2c - 0018b270: Perform reaction abilities 0018b274 - 0018b348: Store used weapon based on action menu byte 0018b34c - 0018b9f4: Pre Formula Setup (FDC) 0018b9f8 - 0018ba40: Remove Status 0018ba44 - 0018bcec: set some data for current attack 0018bcf0 - 0018bd30: Called by Nullify Action - Glain 0018bd34 - 0018bd70: Remove Knockback Flag | Possibly nullify steal item 0018bd74 - 0018bdd0: Current Action Data Nulling 0018bdd4 - 0018be04: Null Some Status Data 0018be08 - 0018c67c: Attack Finalisation & Reaction Flagging 0018c680 - 0018c754: Poach Inventory Routine 0018c758 - 0018c858: some kind of ENTD/Unit manipulation 0018c85c - 0018c91c: Level up/down ability
Reaction processing
0018c920 - 0018c964: Check if unit can react 1 0018c968 - 0018c99c: Check if unit can react 0018c9a0 - 0018c9e0: Reaction check 0018c9e4 - 0018cafc: 'Reflect', Blade Grasp, and Arrow Guard 0018cb00 - 0018cc30: Sunken State, Caution, Dragon Spirit, etc. usability 0018cc34 - 0018ccd4: MP Switch, Distribute, and Damage Split usability 0018ccd8 - 0018ce00: PA Save, MA Save, Speed Save Regenerator, HP Restore, MP Restore, Critical Quick, Meatbone Slash, Auto Potion, Gilgame Heart check 0018ce04 - 0018ce84: Counter, Counter Tackle, Counter Flood, Brave Up, Dragon Spirit, Sunken State, and Caution Usability usability 0018ce88 - 0018cef0: PA Save, MA Save, Speed Save, Regenerator, Auto Potion, Gilgame Heart usability 0018cef4 - 0018cf70: Critical Quick, HP Restore, MP Restore, Meatbone Slash usability 0018cf74 - 0018cfe4: Face Up and Absorb Used MP usability 0018cfe8 - 0018d04c: Reflect "Reaction" 0018d050 - 0018d0e4: Blade Grasp Usability 0018d0e8 - 0018d1b4: Arrow Guard Usability 0018d1b8 - 0018d2a4: MP Switch Usability 0018d2a8 - 0018d314: Distribute Usability 0018d318 - 0018d380: Damage Split Usability 0018d384 - 0018d3bc: Chance to React
Post Action Handling
0018d3c0 - 0018d56c: Steal Routine 0018d570 - 0018d61c: Stat Increment/Decrement 0018d620 - 0018d708: Attacker's Earned Experience 0018d70c - 0018d7c4: Store target stats pointer data calls main action loading routine 0018d7c8 - 0018d864: Poison and Regen 0018d868 - 0018d90c: Transparent removal routine 0018d910 - 0018da00: Process Expiring Statuses | status CT decrement and innate statuses 0018da04 - 0018da40: Set Action Target Variables | target pointers 0018da44 - 0018da84: Crystal, Dead, Jump, Petrify, Treasure check 0018da88 - 0018dbac: Poison Marsh Routine 0018dbb0 - 0018dd40: Traps Routine 0018dd44 - 0018df08: Move-HP Up, Move-MP Up, Gained Exp Up 0018df0c - 0018dff4: Prep gained exp/jp/level/job level + other stuff? 0018dff8 - 0018e078: Main Reaction subroutine - ENTD/ID stuff - Calculate Unlocked Jobs/set ability element = dark? 0018e07c - 0018e1ac: Post Ability Hardcoding dead hp=0, remove ability CT, remove player control 0018e1b0 - 0018e244: Remove control based on status 0018e248 - 0018e30c: Inflicted status CT setting, xfer last used CT 0018e310 - 0018e5e0: Store status,modified ENTD for current attack 0018e5e4 - 0018e624: Transfer Considered Action Data to AI - duplicated Store current attack data into AI 0018e628 - 0018e65c: 0018e628_-_0018e65c 0018e660 - 0018e6b4: Used by Weather Elemental effects routine 0018e6b8 - 0018e8a8: Process Learn on Hit | Learn on hit 1 0018e8ac - 0018e9b8: Learn Used Ability | Learn on hit 2 0018e9bc - 0018e9e4: Enable Special Status Flags | Determine if Status Flags can be Enabled 0018e9e8 - 0018ea94: Item quantity increment for steal/break 0018ea98 - 0018eb4c: Add price of item / 4 to total gil 0018eb50 - 0018ec0c: Handle Steal Exp | Apply Exp gain / Level up 0018ec10 - 0018ec40: Store targeting/executing state, call 18e07c 0018ec44 - 0018ed78: Apply Unit Action Status Removal | More status infliction/removal also deals with innate status 0018ed7c - 0018edf4: Sort target list at 80193868 0018edf8 - 0018ee20: Store ability data 80193868 + 0x10 bytes 0018ee24 - 0018ee64: Count number of targets hit by ability 0018ee68 - 0018ee9c: store 8019837c if not reacting 0018eea0 - 0018eed4: Random Process, gives a number between 0-7fff 0018eed8 - 0018ef28: Random Process, (gives a random based on r4 (MOD) and checks against r5 (chance to work)) 0018ef2c - 0018ef30: jr r31 0018ef34 - 0018f034: Current Action Attacker Data Setting 0018f038 - 0018f2ac: Mimic ability setting 0018f2b0 - 0018f4c4: Map Max X,Y, targetable panel checks 0018f4c8 - 0018f4d4: Load last used ability 0018f4d8 - 0018f610: ????? Table 0018f614 - 0018f7a0: Formula Table
AI Calculations
00193d48 - 00193e4c: AI Return addresses 00193e50 - 001941f4: Main AI action setup? 001941f8 - 00194310: Acting Unit's Data Setup (AI?) 00194314 - 0019456c: Set type of target for all targets 00194570 - 00194718: Some targetability setting 0019471c - 00194908: Set AI flags for target consideration 0019490c - 00194940: Store main target ID and focus on target flag 00194944 - 00194e54: AI movement/panel data setting 00194e58 - 001957bc: Set AI ability considerations for all units and self 001957c0 - 00195874: Some type of checking algorithm 00195878 - 00195d90: AI Ability Data Setting *This is called when ability is chosen by AI, r4 = address of move in units move list 00195944 - 001959d0: AI Ability Data Setting - Attack 001959d4 - 00195a20: AI Ability Data Setting - AI Item Inventory 00195a24 - 00195a2c: AI Ability Data Setting - Katana Inventory 00195a30 - 00195a8c: AI Ability Data Setting - Weapon Inventory 00195a90 - 00195b9c: AI Ability Data Setting - Jump 00195ba0 - 00195bb8: AI Ability Data Setting - Charge 00195bbc - 00195bfc: AI Ability Data Setting - Arithmeticks 00195c00 - 00195d90: AI Ability Data Setting - Default 00195d94 - 00195f68: AI Initial Targeting Selection 00195f6c - 00195f88: Initialize some AI Data (mount, base hit %) 00195f8c - 00196198: set current ability CT/status change 0019619c - 0019629c: Non-Specific AI AutoBattle (Enemies) 001962a0 - 00196308: Get Longest Range Ability or Move 0019630c - 00196388: Invert Target Priority (0019630c) 0019638c - 00196898: Map movement decision/data setting 0019689c - 00196904: Find Positive Priority Target within 3 Range (0019689c) 00196908 - 00196938: Get Positive Priority (00196908) 0019693c - 00196ad8: AI Post Action Movement Decision Routine (0019693c) 00196adc - 00196c88: Check AI Target Type (00196adc) 00196c8c - 00196ce4: Check target type (r2 = 1 if target can't be targeted/dead without? reraise) 00196ce8 - 00196dac: Check if Unit can be Targeted (Cryst/Trea/Mount/Trans) 00196db0 - 00196e1c: Compare Target Priority and Hit Rate (00196db0) 00196e20 - 00196ef0: Set Highest Target Priority (00196e20) 00196ef4 - 00196fc0: Check if map allows use and find Highest Target (00196ef4) 00196fc4 - 001970b8: Compare Set Highest Unit Target Priority (00196fc4) 001970bc - 001971b4: Randomly Transfer Data 001971b8 - 00197534: Set chosen ability/target for AI status (berserk, blood suck, confuse, frog, chicken) 00197538 - 001978e0: Store ability/skillset data, set AI settings for ability 001978e4 - 00197958: Find Direction of Target 0019795c - 00197b28: Range Calculation 00197b2c - 00197c64: 00197c68 - 00197d08: Checks map max X and Y 00197d0c - 00197e5c: Find which units are active 00197e60 - 00197f10: Chose Move from Move List 00197f14 - 00197ff0: Auto Battle Handling 00197ff4 - 001982d4: Choose Target and Set a bunch of stuff 001982d8 - 001984e8: 001984ec - 00198818: Protect Allies - Auto Battle (001984ec) 0019881c - 00198b00: Evaluate Cancel Status Ability (0019881c) 00198b04 - 00198d7c: Find Peril Most Unit (00198b04) 00198d80 - 00198dec: Check for 0x00 status 00198df0 - 00198e5c: Save Fading Life - Auto Battle (00198df0) 00198e60 - 00199058: AI Critical or Run Like Rabbit 0019905c - 00199120: 00199124 - 00199368: Calculate Physical Target 0019936c - 0019939c: Calculate Distance Between Units 001993a0 - 00199494: 00199498 - 001994f4: Tranfer AI Ability Data and Set Defend flag (00199498) 001994f8 - 00199718: See if able to move to target 0019971c - 001998c4: Check for good units to target (based on distance,status,coordinate) 001998c8 - 001999c4: Check if Regen/Charm/DM/Reraise/DA Can be Inflicted 001999c8 - 00199b94: AI Target Priority Super Routine (001999c8) 00199b98 - 00199c84: Calculate Clockticks Until Unit Acts 00199c88 - 00199d1c: Get number of clockticks till able to revive dead unit 00199d20 - 00199ec4: Store hardcoded AI stuff (blood suck, frog, berserk abilities) 00199ec8 - 0019a2c8: Usable Ability Setting/ENTD AI Calculations 0019a2cc - 0019a2ec: Dividend * 4 / Divisor 0019a2f0 - 0019a528: Set AI Flags/Usable Abilities 0019a52c - 0019a5f4: Store Weapon Attack Data 0019a5f8 - 0019aa4c: Usable Ability Setting 0019a63c - 0019a66c: Part of the Weapon Inventory 0019a670 - 0019aa4c: Ability Loading 0019aa50 - 0019ab04: Load Known Ability Flag 0019ab08 - 0019ab44: Transfer Halfword Values 0019ab48 - 0019ab74: Transfer Byte Values 0019ab78 - 0019abb0: Word Nulling 0019abb4 - 0019ad70: Some Map calculations - height diff., coordinates 0019ad74 - 0019ae2c: Determine if Height Difference < 3 0019ae30 - 0019ae54: 0019ae58 - 0019aeec: 0019aef0 - 0019af14: 0019af18 - 0019b308: AI ability use control routine 0019b30c - 0019b4f0: Check if any units are in range (0019b30c) 0019b4f4 - 0019b6ac: AI Depth Elemental Monster Skill Use Check (0019b4f4) 0019b6b0 - 0019b750: Calculate Height Difference Between Units 0019b754 - 0019b7b4: See if elemental ability can be used 0019b7b8 - 0019bb1c: AI Targeting Matrix Analysis (0019b7b8) 0019bb20 - 0019bbb8: Check Unit for Crystal or Treasure Status | AI Check if Unit is a Crystal/Treasure (0019bb20) 0019bbbc - 0019bf28: Math Skill Targeting 0019bf2c - 0019c208: Find Highest Target Priority in Ability Range (0019bf2c) 0019c20c - 0019c27c: 0019c280 - 0019c3d0: Start searching for Highest Target Priority (0019c280) 0019c3d4 - 0019c8e8: Evaluate Linear Ability Behaviors 0019c8ec - 0019cb90: Check if Linear Ability hits anything (0019c8ec) 0019cb94 - 0019cd98: Some height/Map coordinate calculation for all units 0019cd9c - 0019d214: AI Target Unit for Direct vs Arc Attack (0019cd9c) 0019d218 - 0019d290: See if any units are on target panel 0019d294 - 0019d304: Find Unit at Coordinates (0x19d294) | Get unit that matches coordinates 0019d308 - 0019d378: Check Set Highest Unit Priority (0019d308) 0019d37c - 0019db7c: AI End of turn, in between turn, etc. 0019db80 - 0019dca8: 0019dcac - 0019dcb8: Store Skillset = 0 0019dcbc - 0019dd88: Call AI Ability Processing 0019dd8c - 0019e15c: AI ability processing 0019e160 - 0019e374: Transfer Unit Data to AI Data 0019e378 - 0019e53c: Transfer AI Data to Unit Data 0019e540 - 0019e5d4: See if any unit decided to use an ability 0019e5d8 - 0019ef20: AI Ability Use Decisions 0019ef24 - 0019efac: Check if Status Should/Can be Added 0019efb0 - 0019f018: Check if Unit will get his Turn without Status 0019f01c - 0019f0d4: Set unit untargetable based on 19f0d8 routine 0019f0d8 - 0019f158: See if ability should be used based on CT 0019f15c - 0019f254: Status/CT based decision 0019f258 - 0019f2a0: Save Coordinates to Temp Unit | Store units coordinates 0019f2a4 - 0019f2f0: Transfer Unit Coordinates to AI
Effect, Projectile, & Particle Handling
001a0e80 - 001a0f6c: Effect Palette Setup 001a0f70 - 001a0f84: 001a0f88 - 001a0f9c: 001a0fa0 - 001a0fd0: Set Effect Frame Data Pointer | Get Start of Frame Pointers Address 001a0fa0 - 001a0fd4: 001a0fd4 - 001a100c: Get Start of Parameter Sets Address 001a0fd8 - 001a100c: 001a1010 - 001a1040: Get Header before Motion Data Address 001a1044 - 001a1074: Get Coordinate Data Address 001a1078 - 001a10a8: Get Motion Data Address 001a10ac - 001a10e8: Get Misc. Data and Palette Data Addresses 001a10ec - 001a1194: Some sound effect prep 001a1198 - 001a11c8: Get (Unknown) Data Address 001a11cc - 001a11fc: 001a1200 - 001a1240: 001a1244 - 001a1284: 001a1288 - 001a12a0: 001a12a4 - 001a12d8: Load LBA sector and Byte length of effect 001a12dc - 001a1300: 001a1304 - 001a1324: 001a1328 - 001a1348: 001a134c - 001a13b8: 001a13bc - 001a15b0: Effect Related (0x1a13bc) | Effect prep, default to cure if invalid LBA Sector 001a15b4 - 001a1810: Ability animation uses animation flags (Ball Hardcoding) 001a1814 - 001a1850: Load ability effect Stores pre-cast effects, has some hardcodings. Also transfers lots of important effect data to 0x1bad0c 001a1854 - 001a187c: Check if ability is Item ability Checks 0x0800 flag, returns 1 if not item effect 001a1880 - 001a18a0: Play Effect | Increment effect section address loading directive 801b63e8 001a18a4 - 001a18c4: Set Effect phase to No Effect 001a18c8 - 001a18d4: 001a18d8 - 001a1c3c: Effect Stage Processing | Load Effect section addresses (Effect Control Routine) 001a1c40 - 001a1c8c: Effect Cycle Processing 001a1c90 - 001a1d24: Effect Related (0x1a1c90) 001a1d28 - 001a1d98: Effect Related (0x1a1d28) 001a1d9c - 001a2080: Effect Related (0x1a1d9c) 001a2084 - 001a20b0: Clear some data in temp effect data 001a20b4 - 001a20e4: Clear some data in temp effect data 2 001a20e8 - 001a2210: Effect Related (0x1a20e8) | Initialize temp effect data 001a2214 - 001a2234: [[Effect code script >= 2E]] 001a2238 - 001a2258: Effect code script 00 - Store next half as new counter, return 0 This byte creates a loop in the header section 001a225c - 001a227c: Effect code script 01 - store next half as new counter, return 1 001a2280 - 001a22f4: Effect code script 02 001a22f8 - 001a2368: Effect code script 03 001a236c - 001a2370: Effect code script 04 End effect? 001a236c - 001a23a4: 001a2374 - 001a23a4: Effect Code Script 0x05 | Increment counter, store 2nd byte / 4 at 801bf000 001a23a8 - 001a2410: Effect code script 06 001a2414 - 001a2484: Effect code script 07 001a2488 - 001a2520: Effect code script 08 001a2524 - 001a255c: Effect code script 09 001a2560 - 001a2598: Effect code script 0A 001a259c - 001a2628: Effect code script 0B 001a262c - 001a2664: Effect code script 0C 001a2668 - 001a26a0: Effect code script 0D 001a26a4 - 001a2730: Effect code script 0E 001a2734 - 001a276c: Effect code script 0F 001a2770 - 001a27ac: Effect code script 10 001a27b0 - 001a280c: Effect code script 11 001a2810 - 001a286c: Effect code script 12 001a2870 - 001a28d0: Effect code script 13 001a28d4 - 001a2934: Effect code script 14 001a2938 - 001a2994: Effect code script 15 001a2998 - 001a29dc: Effect Code Script 0x16 | Effect code script 16 - check counter against 0x1c in temp effect data // Sets next half as counter if check is true, jumps out of loop 001a29e0 - 001a2a28: Effect code script 17 001a2a2c - 001a2a78: Effect code script 18 001a2a7c - 001a2b14: Effect code script 19 001a2b18 - 001a2b6c: Effect code script 1A 001a2b70 - 001a2bc4: Effect code script 1B 001a2bc8 - 001a2c24: Effect code script 1C 001a2c28 - 001a2c78: Effect Code Script 0x1d | Effect code script 1D - check timer against effect duration *jump out of loop if timer > effect duration 001a2c7c - 001a2cf8: Effect code script 1E - check all timing bytes // Seems to deal with time in between moving to next target primarily 001a2cfc - 001a2d44: Effect code script 1F - go to end if hit counter = 0 001a2d48 - 001a2d90: Effect code script 20 001a2d94 - 001a2ddc: Effect code script 21 001a2de0 - 001a2e28: Effect code script 22 001a2e2c - 001a2e74: Effect code script 23 001a2e78 - 001a2eb0: Effect code script 24 001a2eb4 - 001a30e8: Effect code script 25 - Runs effect? 001a30ec - 001a3144: Effect code script 26 001a3148 - 001a31a4: Effect code script 27 - store first 4 words of on hit effects data 001a31a8 - 001a32e4: Effect text/transformation/animation display timing 001a32e8 - 001a3404: On-Hit effect sounds like when the healing is displayed in moogle 001a3408 - 001a3d2c: Effect code script 28 - huge big ol' routine Handles timing 001a3d30 - 001a3ffc: 001a4000 - 001a419c: Effect Related (0x1a4000) 001a41a0 - 001a4368: 001a436c - 001a4448: 001a444c - 001a45c4: 001a45c8 - 001a4788: 001a478c - 001a4834: 001a4838 - 001a4c40: Effect code script 29 - another huge routine 001a4c44 - 001a4c80: Effect code script 2A - clear some temp effect data 001a4c84 - 001a4cbc: Effect code script 2B - clear some temp effect data 2 001a4cc0 - 001a4cd4: Effect code script 2C - Increment counter Useful for editing 001a4cd8 - 001a4cec: Effect code script 2D - duplicate of 2C 001a4cf0 - 001a4d98: Run Effect Block | Effect code script loop 001a4d9c - 001a4de4: 001a4de8 - 001a4e98: 0x1a4de8 001a4e9c - 001a4fd0: 001a4fd4 - 001a510c: 001a5110 - 001a51b8: 001a51bc - 001a5218: 001a521c - 001a5228: 001a522c - 001a52b0: 001a52b4 - 001a52ec: 001a52f0 - 001a5338: 001a533c - 001a5390: 001a5394 - 001a5794: 001a5798 - 001a5b44: 001a5b48 - 001a5c38: 001a5c3c - 001a5d70: 0x1a5c3c 001a5d74 - 001a5ea0: 001a5ea4 - 001a600c: 001a6010 - 001a601c: 001a6020 - 001a60a8: 001a60ac - 001a7f58: Effect Graphics | Emitter Control Routine 001a7f5c - 001a8668: 001a866c - 001a868c: 001a8690 - 001a8738: 001a873c - 001a87d4: 001a87d8 - 001a8830: 001a8834 - 001a8894: 001a8898 - 001a88cc: 001a88d0 - 001a8948: 001a894c - 001a89ac: 001a89b0 - 001a8a10: 001a8a14 - 001a8a40: 001a8a44 - 001a8a68: 001a8a6c - 001a8ae4: 001a8ae8 - 001a8b48: 001a8b4c - 001a8bac: 001a8bb0 - 001a8bdc: 001a8be0 - 001a8bf4: 001a8bf8 - 001a8c10: Modify Data 1 001a8c14 - 001a8c88: 001a8c8c - 001a8d00: 001a8d04 - 001a8d78: Modify Data 2 001a8d7c - 001a8df0: 001a8df4 - 001a8e70: 001a8e74 - 001a8f10: 001a8f14 - 001a90cc: 001a90d0 - 001a9314: Get Effect Screen Location Data From Unit Data | Modify based on first word of timing section header 001a9318 - 001a936c: 001a9370 - 001a9390: 001a9394 - 001a93b4: 001a93b8 - 001a93e8: 001a93ec - 001a941c: 001a9420 - 001a9450: 001a9454 - 001a9490: 001a9494 - 001a94d0: 001a94d4 - 001a9510: 001a9514 - 001a95e4: 001a95e8 - 001a96c4: 001a96c8 - 001a971c: 001a9720 - 001a97e4: 001a97e8 - 001a9830: 001a9834 - 001a9844: 001a9848 - 001a9858: 001a985c - 001a986c: 001a9870 - 001a9880: 001a9884 - 001a98c0: 001a98c4 - 001a9900: 001a9904 - 001a9940: 001a9944 - 001a9980: 001a9984 - 001a99a8: Store first section of on hit effects data 001a99ac - 001a99b8: 001a99bc - 001a99ec: 001a99f0 - 001a9a20: 001a9a24 - 001a9a38: 001a9a3c - 001a9a50: 001a9a54 - 001a9bac: 001a9bb0 - 001a9f40: Matrix / effect mathematics? 001a9f44 - 001aa004: 001aa008 - 001aa0e4: 001aa0e8 - 001aa19c: 001aa1a0 - 001aa1f4: Some parameter set stuff 001aa1f8 - 001aa7c0: Composite frame loading for parameter sets 001aa7c4 - 001aa7d8: 001aa7dc - 001aa8e4: 001aa8e8 - 001aa91c: 001aa920 - 001aaaf8: 001aaafc - 001aab40: 001aab44 - 001aab8c: 001aab90 - 001aac24: 0x1aab90 001aac28 - 001aad2c: 001aad30 - 001aad38: 001aad3c - 001aad94: 001aad98 - 001ab1d0: Effect Camera Rotation 001ab1d4 - 001ab58c: Effect Camera Movement 001ab590 - 001ab720: 001ab724 - 001aca54: Effect Related (0x1ab724) 001aca58 - 001acb04: 001acb08 - 001acf8c: 001acf90 - 001ad194: 0x1acf90 001ad198 - 001ad628: 0x1ad198 001ad62c - 001ad824: 001ad828 - 001ad940: Effect Related (0x1ad828) 001ad944 - 001adadc: 001adae0 - 001adb08: 001adb0c - 001adb38: 001adb3c - 001adc20: 001adc24 - 001add50: 001add54 - 001ade78: Effect Related (0x1add54) 001ade7c - 001adfa8: 001adfac - 001adfe8: Get Ninja Ball effect based on weapons element. Only valid entries for fire,water,lightning 001adfec - 001ae1a4: 001ae1a8 - 001ae2c4: Apply landing particle anim. 001ae2c8 - 001ae33c: End secondary effect on current unit 001ae340 - 001af104: Arrow, Throw stone, Reflect Model Loading 001af108 - 001af3a0: 001af3a4 - 001af3d8: 001af3dc - 001af598: Maths For Arcing Trajectory 001af59c - 001af6d4: Trajectory/Vectors maths routines (for arcing weapons) 001af6d8 - 001af730: Find XYZ Position of Projectile Along Trajectory 001af734 - 001af76c: Give Gravity Impact 001af770 - 001af8b0: List targeting data of all valid units 001af8b4 - 001afb34: Seek Obstacle On Trajectory 001afb38 - 001afd8c: Set Arcing Trajectory 001afd90 - 001aff14: 001aff18 - 001b045c: Set and Validate Arc Trajectory 001b0460 - 001b04d8: Arctan angle mod stuff 001b04dc - 001b06cc: 001b06d0 - 001b0814: 001b0818 - 001b0a8c: 001b0a90 - 001b0c84: 001b0c88 - 001b0cec: Initialise Animation for TRAP 001b0cf0 - 001b0f04: 001b0f08 - 001b0fe8: 001b0fec - 001b0ff8: 001b0ffc - 001b1538: Bow Arrow Secondary Effect 001b153c - 001b1ae8: 001b1aec - 001b1c00: Golem Secondary Effect 001b1c04 - 001b27d8: 001b27dc - 001b2848: 001b284c - 001b2964: 001b2970 - 001b2a84: 001b2a88 - 001b2bf8: 001b2c0c - 001b2d24: 001b2d28 - 001b2e5c: 001b2e68 - 001b3114: 001b3120 - 001b33d0: 001b33d4 - 001b381c: 001b3820 - 001b3934: 001b3938 - 001b40f4: Linear Projectile secondary effect 001b40f8 - 001b4230: 001b4234 - 001b47dc: Related to Effect Files? https://w.atwiki.jp/fft_cheat/pages/52.html 001b47e0 - 001b48cc: Effect Related (0x1b47e0) END