Difference between revisions of "Get EFC FNT (deprecated)"

From Final Fantasy Hacktics Wiki
Jump to navigation Jump to search
(Created page with "<font face='Courier New'> 0004146c: 27bdffb8 addiu r29,r29,0xffb8 00041470: afb1003c sw r17,0x003c(r29) 00041474: 00008821 addu r17,r0,r0 00041478: 3402007f ori r2,r0,0x...")
 
 
(One intermediate revision by the same user not shown)
Line 10: Line 10:
 
  00041488: 3c018002 lui r1,0x8002
 
  00041488: 3c018002 lui r1,0x8002
 
  0004148c: a0222f5c sb r2,0x2f5c(r1)
 
  0004148c: a0222f5c sb r2,0x2f5c(r1)
  00041490: 0c008bcb jal 0x00022f2c
+
  00041490: 0c008bcb jal 0x00022f2c                     [[FONT FntLoad]] (0x280, 0x00)
  00041494: 00002821 addu r5,r0,r0
+
  00041494: 00002821 addu r5,r0,r0                    
 
  00041498: 3404dea8 ori r4,r0,0xdea8
 
  00041498: 3404dea8 ori r4,r0,0xdea8
  0004149c: 0c011264 jal 0x00044990
+
  0004149c: 0c011264 jal 0x00044990                     [[Get TIM]] (lba address 0xdea8, filesize 0x8800) EFC_FNT.TIM (slightly over estimates the true filesize. lol.)
 
  000414a0: 34058800 ori r5,r0,0x8800
 
  000414a0: 34058800 ori r5,r0,0x8800
  000414a4: 00408021 addu r16,r2,r0
+
  000414a4: 00408021 addu r16,r2,r0                     texture image data pointer
  000414a8: 12000020 beq r16,r0,0x0004152c
+
  000414a8: 12000020 beq r16,r0,0x0004152c             branch if no texture image
 
  000414ac: 00000000 nop
 
  000414ac: 00000000 nop
  000414b0: 0c009be9 jal 0x00026fa4
+
  000414b0: 0c009be9 jal 0x00026fa4                     [[OpenTIM]]
 
  000414b4: 02002021 addu r4,r16,r0
 
  000414b4: 02002021 addu r4,r16,r0
  000414b8: 14400018 bne r2,r0,0x0004151c
+
  000414b8: 14400018 bne r2,r0,0x0004151c               branch if failed
 
  000414bc: 00000000 nop
 
  000414bc: 00000000 nop
  000414c0: 0c009bed jal 0x00026fb4
+
  000414c0: 0c009bed jal 0x00026fb4                     [[ReadTIM]]
  000414c4: 27a40020 addiu r4,r29,0x0020
+
  000414c4: 27a40020 addiu r4,r29,0x0020               put the TIM file descriptor in stack
  000414c8: 10400014 beq r2,r0,0x0004151c
+
  000414c8: 10400014 beq r2,r0,0x0004151c               branch if failed to read
  000414cc: 00002821 addu r5,r0,r0
+
  000414cc: 00002821 addu r5,r0,r0                     # bit depth = 4 bit
  000414d0: afa00010 sw r0,0x0010(r29)
+
  000414d0: afa00010 sw r0,0x0010(r29)                 # Y = 0x00
  000414d4: 8fa2002c lw r2,0x002c(r29)
+
  000414d4: 8fa2002c lw r2,0x002c(r29)                 VRAM texture RECT
 
  000414d8: 00000000 nop
 
  000414d8: 00000000 nop
  000414dc: 84420004 lh r2,0x0004(r2)
+
  000414dc: 84420004 lh r2,0x0004(r2)                   # texture U
 
  000414e0: 00000000 nop
 
  000414e0: 00000000 nop
 
  000414e4: 00021080 sll r2,r2,0x02
 
  000414e4: 00021080 sll r2,r2,0x02
  000414e8: afa20014 sw r2,0x0014(r29)
+
  000414e8: afa20014 sw r2,0x0014(r29)                 # store U
  000414ec: 8fa2002c lw r2,0x002c(r29)
+
  000414ec: 8fa2002c lw r2,0x002c(r29)                 vram texture RECT, again
  000414f0: 00003021 addu r6,r0,r0
+
  000414f0: 00003021 addu r6,r0,r0                     # semitransparency 0
  000414f4: 84420006 lh r2,0x0006(r2)
+
  000414f4: 84420006 lh r2,0x0006(r2)                   # texture V
  000414f8: 34070280 ori r7,r0,0x0280
+
  000414f8: 34070280 ori r7,r0,0x0280                   # x = 0x280
  000414fc: afa20018 sw r2,0x0018(r29)
+
  000414fc: afa20018 sw r2,0x0018(r29)                 # store V
  00041500: 8fa40030 lw r4,0x0030(r29)
+
  00041500: 8fa40030 lw r4,0x0030(r29)                 # texture pattern start address
  00041504: 0c008b09 jal 0x00022c24
+
  00041504: 0c008b09 jal 0x00022c24                     [[E00 LoadTpage]]
 
  00041508: 34110001 ori r17,r0,0x0001
 
  00041508: 34110001 ori r17,r0,0x0001
  0004150c: 34050280 ori r5,r0,0x0280
+
  0004150c: 34050280 ori r5,r0,0x0280                   # x = 0x280
  00041510: 8fa40028 lw r4,0x0028(r29)
+
  00041510: 8fa40028 lw r4,0x0028(r29)                 # pointer to EFC_FNT CLUT
  00041514: 0c008b5e jal 0x00022d78
+
  00041514: 0c008b5e jal 0x00022d78                     [[E02 LoadClut2]] put CLUT at 0x280, 0x7f in frame buffer
  00041518: 3406007f ori r6,r0,0x007f
+
  00041518: 3406007f ori r6,r0,0x007f                   # y = 0x7f
  0004151c: 0c011273 jal 0x000449cc
+
  0004151c: 0c011273 jal 0x000449cc                     # [[C52 Free but with extra steps]]
 
  00041520: 02002021 addu r4,r16,r0
 
  00041520: 02002021 addu r4,r16,r0
 
  00041524: 08010551 j 0x00041544
 
  00041524: 08010551 j 0x00041544
 
  00041528: 00000000 nop
 
  00041528: 00000000 nop
  0004152c: 0c0076ea jal 0x0001dba8
+
 
 +
  0004152c: 0c0076ea jal 0x0001dba8                     # [[VSync call]
 
  00041530: 00002021 addu r4,r0,r0
 
  00041530: 00002021 addu r4,r0,r0
 
  00041534: 3c048005 lui r4,0x8005
 
  00041534: 3c048005 lui r4,0x8005
  00041538: 2484eaf4 addiu r4,r4,0xeaf4
+
  00041538: 2484eaf4 addiu r4,r4,0xeaf4                 # file descriptor
  0004153c: 0c00478e jal 0x00011e38
+
  0004153c: 0c00478e jal 0x00011e38                     # [[00011e38 - 0001201c]]
 
  00041540: 00000000 nop
 
  00041540: 00000000 nop
 +
 
  00041544: 1220ffd4 beq r17,r0,0x00041498
 
  00041544: 1220ffd4 beq r17,r0,0x00041498
  00041548: 34040088 ori r4,r0,0x0088
+
  00041548: 34040088 ori r4,r0,0x0088                  
  0004154c: 34050010 ori r5,r0,0x0010
+
  0004154c: 34050010 ori r5,r0,0x0010                   # xy (0x88, 0x10)
 
  00041550: 34060100 ori r6,r0,0x0100
 
  00041550: 34060100 ori r6,r0,0x0100
  00041554: 34070100 ori r7,r0,0x0100
+
  00041554: 34070100 ori r7,r0,0x0100                   # uv (0x100, 0x100)
 
  00041558: 34020200 ori r2,r0,0x0200
 
  00041558: 34020200 ori r2,r0,0x0200
  0004155c: afa00010 sw r0,0x0010(r29)
+
  0004155c: afa00010 sw r0,0x0010(r29)                 # clear background
  00041560: 0c008bf4 jal 0x00022fd0
+
  00041560: 0c008bf4 jal 0x00022fd0                     # [[FONT FntOpen]]
  00041564: afa20014 sw r2,0x0014(r29)
+
  00041564: afa20014 sw r2,0x0014(r29)                 # max 0x200 characters
  00041568: 0c008bbb jal 0x00022eec
+
  00041568: 0c008bbb jal 0x00022eec                     # [[FONT SetDumpFnt]]
  0004156c: 00402021 addu r4,r2,r0
+
  0004156c: 00402021 addu r4,r2,r0                     #
  00041570: 0c0091b5 jal 0x000246d4
+
  00041570: 0c0091b5 jal 0x000246d4                     # [[SYS DrawSync]]
  00041574: 00002021 addu r4,r0,r0
+
  00041574: 00002021 addu r4,r0,r0                     # wait to finish drawing
  00041578: 0c0091b5 jal 0x000246d4
+
  00041578: 0c0091b5 jal 0x000246d4                     # [[SYS DrawSync]]
  0004157c: 00002021 addu r4,r0,r0
+
  0004157c: 00002021 addu r4,r0,r0                     # wait again to finish drawing
 
  00041580: 8fbf0040 lw r31,0x0040(r29)
 
  00041580: 8fbf0040 lw r31,0x0040(r29)
 
  00041584: 8fb1003c lw r17,0x003c(r29)
 
  00041584: 8fb1003c lw r17,0x003c(r29)

Latest revision as of 00:50, 11 June 2024

0004146c: 27bdffb8 addiu r29,r29,0xffb8
00041470: afb1003c sw r17,0x003c(r29)
00041474: 00008821 addu r17,r0,r0
00041478: 3402007f ori r2,r0,0x007f
0004147c: 34040280 ori r4,r0,0x0280
00041480: afbf0040 sw r31,0x0040(r29)
00041484: afb00038 sw r16,0x0038(r29)
00041488: 3c018002 lui r1,0x8002
0004148c: a0222f5c sb r2,0x2f5c(r1)
00041490: 0c008bcb jal 0x00022f2c                     FONT FntLoad (0x280, 0x00)
00041494: 00002821 addu r5,r0,r0                      
00041498: 3404dea8 ori r4,r0,0xdea8
0004149c: 0c011264 jal 0x00044990                     Get TIM (lba address 0xdea8, filesize 0x8800) EFC_FNT.TIM (slightly over estimates the true filesize. lol.)
000414a0: 34058800 ori r5,r0,0x8800
000414a4: 00408021 addu r16,r2,r0                     texture image data pointer
000414a8: 12000020 beq r16,r0,0x0004152c              branch if no texture image
000414ac: 00000000 nop
000414b0: 0c009be9 jal 0x00026fa4                     OpenTIM
000414b4: 02002021 addu r4,r16,r0
000414b8: 14400018 bne r2,r0,0x0004151c               branch if failed
000414bc: 00000000 nop
000414c0: 0c009bed jal 0x00026fb4                     ReadTIM
000414c4: 27a40020 addiu r4,r29,0x0020                put the TIM file descriptor in stack
000414c8: 10400014 beq r2,r0,0x0004151c               branch if failed to read
000414cc: 00002821 addu r5,r0,r0                      # bit depth = 4 bit
000414d0: afa00010 sw r0,0x0010(r29)                  # Y = 0x00
000414d4: 8fa2002c lw r2,0x002c(r29)                  VRAM texture RECT
000414d8: 00000000 nop
000414dc: 84420004 lh r2,0x0004(r2)                   # texture U
000414e0: 00000000 nop
000414e4: 00021080 sll r2,r2,0x02
000414e8: afa20014 sw r2,0x0014(r29)                  # store U
000414ec: 8fa2002c lw r2,0x002c(r29)                  vram texture RECT, again
000414f0: 00003021 addu r6,r0,r0                      # semitransparency 0
000414f4: 84420006 lh r2,0x0006(r2)                   # texture V
000414f8: 34070280 ori r7,r0,0x0280                   # x = 0x280
000414fc: afa20018 sw r2,0x0018(r29)                  # store V
00041500: 8fa40030 lw r4,0x0030(r29)                  # texture pattern start address
00041504: 0c008b09 jal 0x00022c24                     E00 LoadTpage 
00041508: 34110001 ori r17,r0,0x0001
0004150c: 34050280 ori r5,r0,0x0280                   # x = 0x280
00041510: 8fa40028 lw r4,0x0028(r29)                  # pointer to EFC_FNT CLUT
00041514: 0c008b5e jal 0x00022d78                     E02 LoadClut2 put CLUT at 0x280, 0x7f in frame buffer
00041518: 3406007f ori r6,r0,0x007f                   # y = 0x7f
0004151c: 0c011273 jal 0x000449cc                     # C52 Free but with extra steps
00041520: 02002021 addu r4,r16,r0
00041524: 08010551 j 0x00041544
00041528: 00000000 nop
0004152c: 0c0076ea jal 0x0001dba8                     # [[VSync call]
00041530: 00002021 addu r4,r0,r0
00041534: 3c048005 lui r4,0x8005
00041538: 2484eaf4 addiu r4,r4,0xeaf4                 # file descriptor
0004153c: 0c00478e jal 0x00011e38                     # 00011e38 - 0001201c
00041540: 00000000 nop
00041544: 1220ffd4 beq r17,r0,0x00041498
00041548: 34040088 ori r4,r0,0x0088                   
0004154c: 34050010 ori r5,r0,0x0010                   # xy (0x88, 0x10)
00041550: 34060100 ori r6,r0,0x0100
00041554: 34070100 ori r7,r0,0x0100                   # uv (0x100, 0x100)
00041558: 34020200 ori r2,r0,0x0200
0004155c: afa00010 sw r0,0x0010(r29)                  # clear background
00041560: 0c008bf4 jal 0x00022fd0                     # FONT FntOpen
00041564: afa20014 sw r2,0x0014(r29)                  # max 0x200 characters
00041568: 0c008bbb jal 0x00022eec                     # FONT SetDumpFnt
0004156c: 00402021 addu r4,r2,r0                      # 
00041570: 0c0091b5 jal 0x000246d4                     # SYS DrawSync 
00041574: 00002021 addu r4,r0,r0                      # wait to finish drawing
00041578: 0c0091b5 jal 0x000246d4                     # SYS DrawSync
0004157c: 00002021 addu r4,r0,r0                      # wait again to finish drawing
00041580: 8fbf0040 lw r31,0x0040(r29)
00041584: 8fb1003c lw r17,0x003c(r29)
00041588: 8fb00038 lw r16,0x0038(r29)
0004158c: 27bd0048 addiu r29,r29,0x0048
00041590: 03e00008 jr r31
00041594: 00000000 nop