Difference between revisions of "Disable Tile Flag 0x10 For Dead and Jumping Units"
Jump to navigation
Jump to search
(Created page with "<font face='Courier New'> 00174df8: 27bdffe0 addiu r29,r29,0xffe0 00174dfc: afb10014 sw r17,0x0014(r29) 00174e00: 00008821 addu r17,r0,r0 00174e04: afb00010 sw r16,0x001...") |
m (Orkney moved page 00174df8 - 00174e80 to Disable Tile Flag 0x10 For Dead and Jumping Units) |
||
(3 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
− | + | BATTLE.BIN : Disable Tile Flag 0x10 For Dead and Jumping Units | |
+ | -------------------------------------------------------------------------------------------------------------- | ||
+ | Parameters : Nothing | ||
− | 00174df8: 27bdffe0 addiu r29,r29, | + | Returns : Nothing |
− | 00174dfc: afb10014 sw r17,0x0014(r29) | + | |
− | 00174e00: 00008821 addu r17,r0,r0 | + | Check all units : If dead or Jumping, disable the flag 0x10 (Reachable tile ?) in Scratch Pad at 0x18f00200 |
− | 00174e04: afb00010 sw r16,0x0010(r29) | + | (Not sure yet, but it seems to be used in unit Path-finding) |
− | 00174e08: 3c108019 lui r16,0x8019 | + | -------------------------------------------------------------------------------------------------------------- |
− | 00174e0c: 261008cc addiu r16,r16,0x08cc | + | 00174df8: 27bdffe0 addiu r29,r29,-0x0020 | |
− | 00174e10: afbf0018 sw r31,0x0018(r29) | + | 00174dfc: afb10014 sw r17,0x0014(r29) | |
− | 00174e14: 92030001 lbu r3,0x0001(r16) | + | 00174e00: 00008821 addu r17,r0,r0 |{{f/std|Initialize counter}} {{f/std|<nowiki>r17 = 0 (initial value for counter)</nowiki>}} |
− | 00174e18: 340200ff ori r2,r0,0x00ff | + | 00174e04: afb00010 sw r16,0x0010(r29) | |
− | 00174e1c: 10620010 beq r3,r2,0x00174e60 | + | 00174e08: 3c108019 lui r16,0x8019 | |
− | 00174e20: 26310001 addiu r17,r17,0x0001 | + | 00174e0c: 261008cc addiu r16,r16,0x08cc |{{f/adr|Start of Unit Battle Data (Dynamic pointer + 0x1c0 each iteration)}} |
− | 00174e24: 92020058 lbu r2,0x0058(r16) | + | 00174e10: afbf0018 sw r31,0x0018(r29) | |
− | 00174e28: 00000000 nop | + | {{f/bloop|LOOP - Though all units}} |
− | 00174e2c: 30420024 andi r2,r2,0x0024 | + | 00174e14: 92030001 lbu r3,0x0001(r16) |{{f/load|Unit ID}} |
− | 00174e30: 1040000c beq r2,r0,0x00174e64 | + | 00174e18: 340200ff ori r2,r0,0x00ff | |
− | 00174e34: 2a220015 slti r2,r17,0x0015 | + | 00174e1c: 10620010 beq r3,r2,0x00174e60 {{f/Cond|If Unit doesn't exist : Branch to }} {{f/loc| Next Unit iteration}} |
− | 00174e38: 0c060428 jal 0x001810a0 | + | 00174e20: 26310001 addiu r17,r17,0x0001 |{{f/std|Counter +1}} |
− | 00174e3c: 02002021 addu r4,r16,r0 | + | 00174e24: 92020058 lbu r2,0x0058(r16) |{{f/load|Load Current Status 1}} |
− | 00174e40: 3c038019 lui r3,0x8019 | + | 00174e28: 00000000 nop | |
− | 00174e44: 8c63f4f0 lw r3,-0x0b10(r3) | + | 00174e2c: 30420024 andi r2,r2,0x0024 | |
− | 00174e48: 00000000 nop | + | 00174e30: 1040000c beq r2,r0,0x00174e64 {{f/Cond|If Unit is not Dead nor Jumping}} |
− | 00174e4c: 00621821 addu r3,r3,r2 | + | 00174e34: 2a220015 slti r2,r17,0x0015 | |
− | 00174e50: 90620000 lbu r2,0x0000(r3) | + | 00174e38: 0c060428 jal 0x001810a0 |{{f/jal|Map Location Calculation|Map Location Calculation}} {{f/std|returns Unit's Tile ID}} |
− | 00174e54: 00000000 nop | + | 00174e3c: 02002021 addu r4,r16,r0 |{{f/std|Send Unit ID}} |
− | 00174e58: 304200ef andi r2,r2,0x00ef | + | 00174e40: 3c038019 lui r3,0x8019 | |
− | 00174e5c: a0620000 sb r2,0x0000(r3) | + | 00174e44: 8c63f4f0 lw r3,-0x0b10(r3) |{{f/adr|Pointer to Scratch Pad (0x1f800200) - refered as S-Pad 0x200}} |
− | 00174e60: 2a220015 slti r2,r17,0x0015 | + | 00174e48: 00000000 nop | |
− | 00174e64: 1440ffeb bne r2,r0,0x00174e14 | + | 00174e4c: 00621821 addu r3,r3,r2 |{{f/adr|Pointer to Unit's Tile data (S-Pad 0x200)}} |
− | 00174e68: 261001c0 addiu r16,r16,0x01c0 | + | 00174e50: 90620000 lbu r2,0x0000(r3) |{{f/load|Load Tile's flag}} |
− | 00174e6c: 8fbf0018 lw r31,0x0018(r29) | + | 00174e54: 00000000 nop | |
+ | 00174e58: 304200ef andi r2,r2,0x00ef | | ||
+ | 00174e5c: a0620000 sb r2,0x0000(r3) |{{f/store|Disable flag 0x10 (not reachable anymore ?)}} | ||
+ | 00174e60: 2a220015 slti r2,r17,0x0015 | | ||
+ | 00174e64: 1440ffeb bne r2,r0,0x00174e14 {{f/eloop|Loop 0x15 Times}} | ||
+ | 00174e68: 261001c0 addiu r16,r16,0x01c0 |{{f/adr|Unit Battle data offset}} | ||
+ | 00174e6c: 8fbf0018 lw r31,0x0018(r29) END | ||
00174e70: 8fb10014 lw r17,0x0014(r29) | 00174e70: 8fb10014 lw r17,0x0014(r29) | ||
00174e74: 8fb00010 lw r16,0x0010(r29) | 00174e74: 8fb00010 lw r16,0x0010(r29) | ||
Line 36: | Line 44: | ||
00174e7c: 03e00008 jr r31 | 00174e7c: 03e00008 jr r31 | ||
00174e80: 00000000 nop | 00174e80: 00000000 nop | ||
− | + | === Return location === | |
+ | '''BATTLE.BIN''' | ||
+ | 001752e4: [[00175288_-_001754cc]] |
Latest revision as of 08:50, 21 May 2023
BATTLE.BIN : Disable Tile Flag 0x10 For Dead and Jumping Units -------------------------------------------------------------------------------------------------------------- Parameters : Nothing Returns : Nothing Check all units : If dead or Jumping, disable the flag 0x10 (Reachable tile ?) in Scratch Pad at 0x18f00200 (Not sure yet, but it seems to be used in unit Path-finding) -------------------------------------------------------------------------------------------------------------- 00174df8: 27bdffe0 addiu r29,r29,-0x0020 | 00174dfc: afb10014 sw r17,0x0014(r29) | 00174e00: 00008821 addu r17,r0,r0 |Initialize counter r17 = 0 (initial value for counter) 00174e04: afb00010 sw r16,0x0010(r29) | 00174e08: 3c108019 lui r16,0x8019 | 00174e0c: 261008cc addiu r16,r16,0x08cc |Start of Unit Battle Data (Dynamic pointer + 0x1c0 each iteration) 00174e10: afbf0018 sw r31,0x0018(r29) | @LOOP - Though all units 00174e14: 92030001 lbu r3,0x0001(r16) |Unit ID 00174e18: 340200ff ori r2,r0,0x00ff | 00174e1c: 10620010 beq r3,r2,0x00174e60 #If Unit doesn't exist : Branch to Next Unit iteration 00174e20: 26310001 addiu r17,r17,0x0001 |Counter +1 00174e24: 92020058 lbu r2,0x0058(r16) |Load Current Status 1 00174e28: 00000000 nop | 00174e2c: 30420024 andi r2,r2,0x0024 | 00174e30: 1040000c beq r2,r0,0x00174e64 #If Unit is not Dead nor Jumping 00174e34: 2a220015 slti r2,r17,0x0015 | 00174e38: 0c060428 jal 0x001810a0 |-->Map Location Calculation returns Unit's Tile ID 00174e3c: 02002021 addu r4,r16,r0 |Send Unit ID 00174e40: 3c038019 lui r3,0x8019 | 00174e44: 8c63f4f0 lw r3,-0x0b10(r3) |Pointer to Scratch Pad (0x1f800200) - refered as S-Pad 0x200 00174e48: 00000000 nop | 00174e4c: 00621821 addu r3,r3,r2 |Pointer to Unit's Tile data (S-Pad 0x200) 00174e50: 90620000 lbu r2,0x0000(r3) |Load Tile's flag 00174e54: 00000000 nop | 00174e58: 304200ef andi r2,r2,0x00ef | 00174e5c: a0620000 sb r2,0x0000(r3) |Disable flag 0x10 (not reachable anymore ?) 00174e60: 2a220015 slti r2,r17,0x0015 | 00174e64: 1440ffeb bne r2,r0,0x00174e14 Λ Loop 0x15 Times 00174e68: 261001c0 addiu r16,r16,0x01c0 |Unit Battle data offset 00174e6c: 8fbf0018 lw r31,0x0018(r29) END 00174e70: 8fb10014 lw r17,0x0014(r29) 00174e74: 8fb00010 lw r16,0x0010(r29) 00174e78: 27bd0020 addiu r29,r29,0x0020 00174e7c: 03e00008 jr r31 00174e80: 00000000 nop
Return location
BATTLE.BIN 001752e4: 00175288_-_001754cc