Difference between revisions of "BATTLE.BIN Routines"
Jump to navigation
Jump to search
(137 intermediate revisions by 11 users not shown) | |||
Line 1: | Line 1: | ||
− | + | [[BATTLE.BIN Data Tables]] | |
+ | ==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: [[test]] | ||
+ | [[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 menus]]Pressed confirm while not highlighting any unit, also happens after completing move | ||
+ | // Stores Script 0x03 | ||
+ | [[00070c78 - 00070cd8]]: | ||
+ | 00070cdc - 00070d14: [[Store next Battle flow script = 1]] (Select pressed during free cursor) | ||
+ | [[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]]: | ||
− | + | ==Some Attack related Display Processing== | |
+ | 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]]: - happens right after choosing 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 - 00076f0c: stores animation/facing based on ability flags 1 | ||
+ | // Script 0x1e | ||
+ | [[00076d84 - 00076f10]]: | ||
+ | [[00076f14 - 00076fcc]]: | ||
+ | // Script 0x1f - | ||
+ | [[00076fd0 - 00077094]]: | ||
+ | // Script 0x20 | ||
+ | [[00077098 - 00077130]]: Action occurring | ||
+ | // Script 0x21 - | ||
+ | [[00077134 - 0007719c]]: action related | ||
+ | // Script 0x22 | ||
+ | [[000771a0 - 00077310]]: 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]]: 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]]: | ||
+ | [[0007a968 - 0007a9ac]]: | ||
+ | [[0007a9b0 - 0007aa30]]: | ||
+ | [[0007aa34 - 0007abcc]]: | ||
+ | 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]]: [[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]]: | ||
+ | [[0007d0d4 - 0007d2d8]]: | ||
+ | [[0007d2dc - 0007d34c]]: | ||
+ | [[0007d350 - 0007d3f0]]: | ||
+ | [[0007d3f4 - 0007d474]]: | ||
+ | [[0007d478 - 0007d518]]: | ||
+ | [[0007d51c - 0007d5cc]]: | ||
+ | [[0007d5d0 - 0007db18]]: | ||
+ | [[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]]: | ||
+ | [[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]]: | ||
+ | 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: [[Target spritesheet calculations?]] | ||
+ | 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]]: | ||
+ | [[000872ec - 000873b8]]: | ||
+ | [[000873bc - 000875ec]]: | ||
+ | [[000875f0 - 00087700]]: | ||
+ | [[00087704 - 000878a0]]: | ||
+ | [[000878a4 - 000879b4]]: | ||
+ | [[000879b8 - 00087a24]]: | ||
− | + | ==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]]: | ||
+ | [[00089748 - 000897d8]]: | ||
+ | [[000897dc - 0008989c]]: | ||
+ | [[000898a0 - 00089b9c]]: | ||
+ | [[00089ba0 - 00089d9c]]: | ||
+ | [[00089da0 - 00089dbc]]: | ||
+ | [[00089dc0 - 00089ddc]]: | ||
+ | [[00089de0 - 00089dfc]]: | ||
+ | [[00089e00 - 00089e1c]]: | ||
+ | [[00089e20 - 00089f20]]: | ||
+ | [[00089f24 - 0008a114]]: | ||
+ | [[0008a118 - 0008a348]]: | ||
+ | [[0008a34c - 0008a358]]: | ||
+ | [[0008a35c - 0008a4a8]]: | ||
+ | [[0008a4ac - 0008a6d4]]: | ||
+ | [[0008a6d8 - 0008a6fc]]: | ||
+ | [[0008a700 - 0008a77c]]: | ||
+ | [[0008a780 - 0008a7fc]]: | ||
+ | [[0008a800 - 0008a880]]: | ||
+ | [[0008a884 - 0008a920]]: | ||
+ | [[0008a924 - 0008ab30]]: | ||
+ | [[0008ab34 - 0008adf4]]: | ||
+ | [[0008adf8 - 0008b0c4]]: | ||
+ | [[0008b0c8 - 0008b230]]: | ||
+ | [[0008b234 - 0008b288]]: | ||
+ | [[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 - 0008bf80]]: | ||
+ | 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]]: | ||
+ | ==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]]: | ||
+ | [[00136324 - 001363d8]]: | ||
+ | [[001363dc - 00136b0c]]: | ||
+ | 00136b10 - 00136bcc: [[Get Item Graphic Data]] | ||
+ | [[00136bd0 - 00136d30]]: [[Something to do with special portraits]] | ||
+ | [[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 Idle routine]] | ||
+ | ==Uncertain (Display Related 2) | ||
+ | [[00136b10 - 00136bcc]]: [[Get Item Graphic Data]] | ||
+ | [[001390bc - 00139578]]: | ||
+ | [[0013957c - 001395a8]]: | ||
+ | [[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]] | ||
+ | [[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]]: | ||
+ | [[0013f7b4 - 0013f8b0]]: [[Store some data for menus]] | ||
+ | [[0013f8b4 - 0013f8fc]]: | ||
+ | [[0013f900 - 0013f974]]: | ||
+ | [[0013f978 - 0013f984]]: | ||
+ | [[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]]: | ||
+ | [[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: recieve 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]] <s>Jumped to from subroutines of steal routine - [[Calculate party inventory?]]</s> | ||
+ | [[0014a2ec - 0014a398]]: | ||
+ | [[0014a39c - 0014a3f4]]: | ||
+ | [[0014a3f8 - 0014a460]]: [[Wait Value Event Instruction]] | ||
+ | [[0014a464 - 0014a488]]: | ||
+ | [[0014a48c - 0014a4d4]]: | ||
+ | [[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 - 0014a828]]: | ||
+ | 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]]: | ||
+ | 0014ca38 - 0014ca54: [[Store Thread Function Parameters]] <s>[[Store event command bytes]]</s> | ||
+ | 0014ca58 - 0014ca7c: [[Store Thread Parameters (0x14ca58)]] <s>[[Store event command bytes 2]]</s> | ||
+ | 0014ca80 - 0014cbb0: [[Switch To Next Thread]] <s>[[Some event data setting routine]] runs many many times, jr r31's to a new location</s> | ||
+ | 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 | ||
+ | [[Reaction abilities return adress table|0017429c - 001742fc]]: Return addresses : reaction abilities for [[Perform_reaction_abilities]] | ||
+ | 00174300: nop | ||
+ | [[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)]] | ||
− | + | ==Movement Calculations== | |
+ | 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]]: Contains 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]]: | ||
+ | ==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 check]]Returns 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]]: Targeting/panel routine | ||
+ | [[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]]: | ||
+ | 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]]: Formula 36 | ||
+ | 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: [[Ability Elemental?]] Apply Elemental - Glain | ||
+ | 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]]: 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 - 00189160]]: 11 (does nothing), [[12 Set Quick Hit F(MA+X)%]] | ||
+ | [[00189164 - 001891a8]]: 13 (does nothing), [[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 - 001892a8]]: [[18]], [[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]] Draw Out Hit 100% | ||
+ | [[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 - 0018a24c]]: [[46]] (doesn't work), [[47 AbsHP (Y)% 100% Status]] | ||
+ | [[0018a250 - 0018a2a0]]: [[48 Heal (Z*10)]] | ||
+ | [[0018a2a4 - 0018a2c0]]: [[49 HealMP (Z*10)]] | ||
+ | [[0018a2c4 - 0018a2e8]]: Formula 4a - Elixir | ||
+ | [[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]] | <s>[[Pheonix down on undead]]</s> | ||
+ | 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: [[Main Reaction Routine - performs ability effects]] | ||
+ | 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 - 001941f4: | ||
+ | 0018f510 - 0018f610: ????? Table | ||
+ | 0018f624 - 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]]: | ||
+ | 0019638c - 00196898: [[Map movement decision/data setting]] | ||
+ | [[0019689c - 00196904]]: | ||
+ | [[00196908 - 00196938]]: | ||
+ | [[0019693c - 00196ad8]]: | ||
+ | [[00196adc - 00196c88]]: | ||
+ | 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]]: | ||
+ | [[00196e20 - 00196ef0]]: | ||
+ | [[00196ef4 - 00196fc0]]: | ||
+ | [[00196fc4 - 001970b8]]: | ||
+ | [[001970bc - 001971b4]]: | ||
+ | 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]]: | ||
+ | [[0019881c - 00198b00]]: | ||
+ | 00198b04 - 00198d7c: [[Find Peril Most Unit (00198b04)]] | ||
+ | 00198d80 - 00198dec: [[Check for 0x00 status]] | ||
+ | [[00198df0 - 00198e5c]]: | ||
+ | [[00198e60 - 00199058]]: | ||
+ | [[0019905c - 00199120]]: | ||
+ | 00199124 - 00199368: [[Calculate Physical Target]] | ||
+ | 0019936c - 0019939c: [[Calculate Distance Between Units]] | ||
+ | [[001993a0 - 00199494]]: | ||
+ | [[00199498 - 001994f4]]: | ||
+ | 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]]: | ||
+ | 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]]: | ||
+ | [[0019b4f4 - 0019b6ac]]: | ||
+ | 0019b6b0 - 0019b750: [[Calculate Height Difference Between Units]] | ||
+ | 0019b754 - 0019b7b4: [[See if elemental ability can be used]] | ||
+ | [[0019b7b8 - 0019bb1c]]: | ||
+ | [[0019bb20 - 0019bbb8]]: [[Check Unit for Crystal or Treasure Status]] | ||
+ | [[0019bbbc - 0019bf28]]: | ||
+ | [[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]]: | ||
+ | 0019d218 - 0019d290: [[See if any units are on target panel]] | ||
+ | 0019d294 - 0019d304: [[Find Unit at Coordinates (0x19d294)]] | [[Get unit that matches coordinates]] | ||
+ | [[0019d308 - 0019d378]]: | ||
+ | 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]]: | ||
+ | 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 | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− |
Latest revision as of 15:00, 26 December 2024
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: test 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: 00070cdc - 00070d14: Store next Battle flow script = 1 (Select pressed during free cursor) 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: - happens right after choosing 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 - 00076f0c: stores animation/facing based on ability flags 1 // Script 0x1e 00076d84 - 00076f10: 00076f14 - 00076fcc: // Script 0x1f - 00076fd0 - 00077094: // Script 0x20 00077098 - 00077130: Action occurring // Script 0x21 - 00077134 - 0007719c: action related // Script 0x22 000771a0 - 00077310: 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: 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: 0007a968 - 0007a9ac: 0007a9b0 - 0007aa30: 0007aa34 - 0007abcc: 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: 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: 0007d0d4 - 0007d2d8: 0007d2dc - 0007d34c: 0007d350 - 0007d3f0: 0007d3f4 - 0007d474: 0007d478 - 0007d518: 0007d51c - 0007d5cc: 0007d5d0 - 0007db18: 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: 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: 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: Target spritesheet calculations? 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: 000872ec - 000873b8: 000873bc - 000875ec: 000875f0 - 00087700: 00087704 - 000878a0: 000878a4 - 000879b4: 000879b8 - 00087a24:
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: 00089748 - 000897d8: 000897dc - 0008989c: 000898a0 - 00089b9c: 00089ba0 - 00089d9c: 00089da0 - 00089dbc: 00089dc0 - 00089ddc: 00089de0 - 00089dfc: 00089e00 - 00089e1c: 00089e20 - 00089f20: 00089f24 - 0008a114: 0008a118 - 0008a348: 0008a34c - 0008a358: 0008a35c - 0008a4a8: 0008a4ac - 0008a6d4: 0008a6d8 - 0008a6fc: 0008a700 - 0008a77c: 0008a780 - 0008a7fc: 0008a800 - 0008a880: 0008a884 - 0008a920: 0008a924 - 0008ab30: 0008ab34 - 0008adf4: 0008adf8 - 0008b0c4: 0008b0c8 - 0008b230: 0008b234 - 0008b288: 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 - 0008bf80: 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:
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: 00136324 - 001363d8: 001363dc - 00136b0c: 00136b10 - 00136bcc: Get Item Graphic Data 00136bd0 - 00136d30: Something to do with special portraits 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 Idle routine
==Uncertain (Display Related 2)
00136b10 - 00136bcc: Get Item Graphic Data 001390bc - 00139578: 0013957c - 001395a8: 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 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: 0013f7b4 - 0013f8b0: Store some data for menus 0013f8b4 - 0013f8fc: 0013f900 - 0013f974: 0013f978 - 0013f984: 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: 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: recieve 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 CommandJumped to from subroutines of steal routine - Calculate party inventory?0014a2ec - 0014a398: 0014a39c - 0014a3f4: 0014a3f8 - 0014a460: Wait Value Event Instruction 0014a464 - 0014a488: 0014a48c - 0014a4d4: 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 - 0014a828: 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: 0014ca38 - 0014ca54: Store Thread Function ParametersStore event command bytes0014ca58 - 0014ca7c: Store Thread Parameters (0x14ca58)Store event command bytes 20014ca80 - 0014cbb0: Switch To Next ThreadSome event data setting routine runs many many times, jr r31's to a new location0014cbb4 - 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
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: Contains 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:
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: Targeting/panel routine 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: 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: Formula 36 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: Ability Elemental? Apply Elemental - Glain 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: 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 - 00189160: 11 (does nothing), 12 Set Quick Hit F(MA+X)% 00189164 - 001891a8: 13 (does nothing), 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 - 001892a8: 18, 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 Draw Out Hit 100% 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 - 0018a24c: 46 (doesn't work), 47 AbsHP (Y)% 100% Status 0018a250 - 0018a2a0: 48 Heal (Z*10) 0018a2a4 - 0018a2c0: 49 HealMP (Z*10) 0018a2c4 - 0018a2e8: Formula 4a - Elixir 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 |Pheonix down on undead0018ad58 - 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: Main Reaction Routine - performs ability effects 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 - 001941f4: 0018f510 - 0018f610: ????? Table 0018f624 - 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: 0019638c - 00196898: Map movement decision/data setting 0019689c - 00196904: 00196908 - 00196938: 0019693c - 00196ad8: 00196adc - 00196c88: 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: 00196e20 - 00196ef0: 00196ef4 - 00196fc0: 00196fc4 - 001970b8: 001970bc - 001971b4: 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: 0019881c - 00198b00: 00198b04 - 00198d7c: Find Peril Most Unit (00198b04) 00198d80 - 00198dec: Check for 0x00 status 00198df0 - 00198e5c: 00198e60 - 00199058: 0019905c - 00199120: 00199124 - 00199368: Calculate Physical Target 0019936c - 0019939c: Calculate Distance Between Units 001993a0 - 00199494: 00199498 - 001994f4: 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: 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: 0019b4f4 - 0019b6ac: 0019b6b0 - 0019b750: Calculate Height Difference Between Units 0019b754 - 0019b7b4: See if elemental ability can be used 0019b7b8 - 0019bb1c: 0019bb20 - 0019bbb8: Check Unit for Crystal or Treasure Status 0019bbbc - 0019bf28: 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: 0019d218 - 0019d290: See if any units are on target panel 0019d294 - 0019d304: Find Unit at Coordinates (0x19d294) | Get unit that matches coordinates 0019d308 - 0019d378: 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: 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: 001a18c8 - 001a18d4: 001a18d8 - 001a1c3c: Effect Stage Processing | Effect Control Routine | Load Effect section addresses 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 | Effect code script 05 - 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 - 'nother 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: 001ae2c8 - 001ae33c: 001ae340 - 001af104: 001af108 - 001af3a0: 001af3a4 - 001af3d8: 001af3dc - 001af598: Maths For Arcing Trajectory 001af59c - 001af6d4: Trajectory/Vectors maths routines (for arcing weapons) 001af6d8 - 001af730: 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: 001b0cf0 - 001b0f04: 001b0f08 - 001b0fe8: 001b0fec - 001b0ff8: 001b0ffc - 001b1538: 001b153c - 001b1ae8: 001b1aec - 001b1c00: 001b1c04 - 001b27d8: 001b27dc - 001b2848: 001b284c - 001b2964: 001b2970 - 001b2a84: 001b2a88 - 001b2bf8: 001b2c0c - 001b2d24: 001b2d28 - 001b2e5c: 001b2e68 - 001b3114: 001b3120 - 001b33d0: 001b33d4 - 001b381c: 001b3820 - 001b3934: 001b3938 - 001b40f4: 001b40f8 - 001b4230: 001b4234 - 001b47dc: 001b47e0 - 001b48cc: Effect Related (0x1b47e0) END