Difference between revisions of "Data Nullifying"

From Final Fantasy Hacktics Wiki
Jump to navigation Jump to search
 
(2 intermediate revisions by 2 users not shown)
Line 1: Line 1:
  Data Nullifying (requires r5 = Limit, and r4 = Starting location)
+
  Data Nullifying
  0005e644: 27bdfff8 addiu r29,r29,0xfff8
+
Needs : r4 = starting address
  0005e648: 18a00006 blez r5,0x0005e664 Branch if r5 <= 0
+
        r5 = number of bytes to nullify
  0005e64c: 00001821 addu r3,r0,r0 r3 = 0
+
-------------------------------------------------
  0005e650: a0800000 sb r0,0x0000(r4) X Value = 0
+
  0005e644: 27bdfff8 addiu r29,r29,0xfff8    
  0005e654: 24630001 addiu r3,r3,0x0001 r3 += 1 (Counter ++)
+
  0005e648: 18a00006 blez r5,0x0005e664       {{f/Cond|<nowiki>If number of bytes to nullify is > 0</nowiki>}} /Else branch to end
  0005e658: 0065102a slt r2,r3,r5
+
  0005e64c: 00001821 addu r3,r0,r0                 |{{f/std|<nowiki>r3 = 0 (Loop counter)</nowiki>}}
  0005e65c: 1440fffc bne r2,r0,0x0005e650 Branch if counter isn't at  limit
+
  0005e650: a0800000 sb r0,0x0000(r4)             {{f/bloop|<nowiki>LOOP</nowiki>}} {{f/store|<nowiki>Store 0x00 at starting address + counter offset</nowiki>}}
  0005e660: 24840001 addiu r4,r4,0x0001 Data to null + 1
+
  0005e654: 24630001 addiu r3,r3,0x0001               |{{f/std|<nowiki>Loop counter +1</nowiki>}}
  0005e664: 27bd0008 addiu r29,r29,0x0008
+
  0005e658: 0065102a slt r2,r3,r5                     |{{f/std|<nowiki>r2 = 0x01 while counter < number of bytes to nullify</nowiki>}}
  0005e668: 03e00008 jr r31
+
  0005e65c: 1440fffc bne r2,r0,0x0005e650         {{f/eloop|<nowiki> Loop while counter < number of byte to delete</nowiki>}}
  0005e66c: 00000000 nop
+
  0005e660: 24840001 addiu r4,r4,0x0001               |{{f/std|<nowiki>r4 = Adress nullified + 0x01</nowiki>}}
 
+
  0005e664: 27bd0008 addiu r29,r29,0x0008     |End
 
+
  0005e668: 03e00008 jr r31                      
== Return Locations ==
+
  0005e66c: 00000000 nop
 
+
                       
 +
=== Return Locations ===
 +
'''SCUS_942.21'''
 
  00059864: [[Initialize Status Check Data]]
 
  00059864: [[Initialize Status Check Data]]
 
  00059874:
 
  00059874:
Line 28: Line 30:
 
  0005cb98: [[Store/Generate Character Names]]
 
  0005cb98: [[Store/Generate Character Names]]
 
  0005d484: [[Nullify CT/Initialize Death Counter]]
 
  0005d484: [[Nullify CT/Initialize Death Counter]]
 +
 +
'''Battle.bin'''
 
  00180674: [[Generate Crystal or Treasure]]
 
  00180674: [[Generate Crystal or Treasure]]
  00180fb0: [[Ramza Causes Game Over]]
+
  00180fb0: [[Check Sprite Set]] (Base Class)
 
  00180fbc:
 
  00180fbc:
 
  00185310: [[Concentrate Calculation]]
 
  00185310: [[Concentrate Calculation]]

Latest revision as of 19:26, 21 March 2022

Data Nullifying
Needs : r4 = starting address 
        r5 = number of bytes to nullify
-------------------------------------------------
0005e644: 27bdfff8 addiu r29,r29,0xfff8     
0005e648: 18a00006 blez r5,0x0005e664       #If number of bytes to nullify is > 0 /Else branch to end
0005e64c: 00001821 addu r3,r0,r0                 |r3 = 0 (Loop counter)
0005e650: a0800000 sb r0,0x0000(r4)              @LOOP Store 0x00 at starting address + counter offset
0005e654: 24630001 addiu r3,r3,0x0001                |Loop counter +1
0005e658: 0065102a slt r2,r3,r5                      |r2 = 0x01 while counter < number of bytes to nullify
0005e65c: 1440fffc bne r2,r0,0x0005e650          Λ  Loop while counter < number of byte to delete
0005e660: 24840001 addiu r4,r4,0x0001                |r4 = Adress nullified + 0x01
0005e664: 27bd0008 addiu r29,r29,0x0008     |End
0005e668: 03e00008 jr r31                        
0005e66c: 00000000 nop  
                        

Return Locations

SCUS_942.21
00059864: Initialize Status Check Data
00059874:
0005a170: Out of Battle Unit Generation
0005a194:
0005b294: Initialize Unit's Battle Data
0005b2d0:
0005b7bc: Enable Unit's R/S/M Flags
0005babc: Calculate Unit's Abilities
0005bb24:
0005c3ac: Equippable Item Setting (Support/Female-only)
0005c5ec: Equipment Attribute Setting
0005cb98: Store/Generate Character Names
0005d484: Nullify CT/Initialize Death Counter

Battle.bin
00180674: Generate Crystal or Treasure
00180fb0: Check Sprite Set (Base Class)
00180fbc:
00185310: Concentrate Calculation
00185468: Evasion Changes due to Statuses
001854e4: Transparent Calculation
0018b7c0: Pre Formula Setup (FDC)
0018bd84: Current Action Data Nulling
0018bd90: Current Action Data Nulling
0018bd9c: Current Action Data Nulling