From 8a1dd76fa432f32ff52e9bb2c0e1137f732b82fc Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Sat, 12 Mar 2022 15:47:01 +1000 Subject: [PATCH] pal-beta: Get ROM fully matching --- Makefile | 5 +- src/game/activemenu/tick.c | 4 +- src/game/bondgun.c | 607 ++++++++- src/game/bondwalk.c | 2 +- src/game/chr/chraction.c | 257 ++++ src/game/credits.c | 2 +- src/game/debug2.c | 30 +- src/game/game_006900.c | 4 +- src/game/game_00c490.c | 2 +- src/game/game_01bea0.c | 2 +- src/game/game_0abe70.c | 2 +- src/game/game_0b0fd0.c | 6 +- src/game/lang.c | 36 +- src/game/lv.c | 4 +- src/game/mainmenu.c | 73 +- src/game/menu.c | 4 +- src/game/menugfx.c | 2 +- src/game/menuitem.c | 4 +- src/game/mplayer/setup.c | 4 +- src/game/pak/pak.c | 4 +- src/game/player.c | 2 +- src/game/playerinit.c | 4 + src/game/propobj.c | 2113 ++++++++++++++++++++++++++++++++ src/game/sight.c | 2 +- src/game/title.c | 4 +- src/game/training/menus.c | 18 +- src/game/training/training.c | 2 +- src/game/weather/weather.c | 20 +- src/lib/dma.c | 4 +- src/lib/memp.c | 2 +- src/lib/model.c | 6 +- src/lib/ultra/io/conteepread.c | 2 +- src/lib/ultra/os/initialize2.c | 187 +++ src/lib/vi.c | 577 ++++++++- src/lib/vm.c | 15 +- tools/mkrom/main.c | 17 +- tools/mkrom/mkrom.h | 5 + tools/mkrom/pack.c | 7 +- 38 files changed, 3947 insertions(+), 94 deletions(-) diff --git a/Makefile b/Makefile index c4f63b885..2622a5ae4 100644 --- a/Makefile +++ b/Makefile @@ -25,6 +25,7 @@ NTSC=0 PAL=0 JPN=0 ZIPMAGIC=0x0000 +COPYLEN=2 ifeq ($(ROMID),ntsc-beta) NTSC=1 @@ -45,6 +46,7 @@ ifeq ($(ROMID),pal-beta) PAL=1 VERSION=3 ZIPMAGIC=0x0c00 + COPYLEN=6 endif ifeq ($(ROMID),pal-final) PAL=1 @@ -55,6 +57,7 @@ ifeq ($(ROMID),jpn-final) JPN=1 VERSION=5 ZIPMAGIC=0x0002 + COPYLEN=4 endif DEFINES := VERSION=$(VERSION) NTSC=$(NTSC) PAL=$(PAL) JPN=$(JPN) PIRACYCHECKS=$(PIRACYCHECKS) _FINALROM=1 @@ -324,7 +327,7 @@ $(B_DIR)/stage1.bin: $(B_DIR)/stage1.elf # mkrom handles calculating the piracy checksums, zipping segments and # calculating the ROM checksum. $(B_DIR)/pd.z64: $(B_DIR)/stage1.bin tools/mkrom/mkrom - tools/mkrom/mkrom $(B_DIR)/stage1.bin $(B_DIR)/pd.map $(PIRACYCHECKS) $(ZIPMAGIC) $@ + tools/mkrom/mkrom $(B_DIR)/stage1.bin $(B_DIR)/pd.map $(PIRACYCHECKS) $(ZIPMAGIC) $(COPYLEN) $@ tools/mkrom/mkrom: $(MAKE) -C tools/mkrom diff --git a/src/game/activemenu/tick.c b/src/game/activemenu/tick.c index 91d61ea36..37a0800aa 100644 --- a/src/game/activemenu/tick.c +++ b/src/game/activemenu/tick.c @@ -385,7 +385,7 @@ void amTick(void) // Update alpha of slots so they fade in if (g_AmMenus[g_AmIndex].alphafrac < 1) { -#if VERSION >= VERSION_PAL_FINAL +#if VERSION >= VERSION_PAL_BETA g_AmMenus[g_AmIndex].alphafrac += g_Vars.lvupdate240freal / 30.0f; #else g_AmMenus[g_AmIndex].alphafrac += g_Vars.lvupdate240f / 30.0f; @@ -397,7 +397,7 @@ void amTick(void) } // Make selection border pulsate -#if VERSION >= VERSION_PAL_FINAL +#if VERSION >= VERSION_PAL_BETA g_AmMenus[g_AmIndex].selpulse += g_Vars.lvupdate240freal / 5.0f; #else g_AmMenus[g_AmIndex].selpulse += g_Vars.lvupdate240f / 5.0f; diff --git a/src/game/bondgun.c b/src/game/bondgun.c index cab333e2f..295874064 100644 --- a/src/game/bondgun.c +++ b/src/game/bondgun.c @@ -77,7 +77,7 @@ u32 var8009d134; u32 var8009d138; u32 var8009d13c; -#if VERSION >= VERSION_PAL_FINAL +#if VERSION >= VERSION_PAL_BETA u32 fill2[2]; #endif @@ -557,7 +557,7 @@ f32 bgun0f09815c(struct hand *hand) return 0; } -#if VERSION >= VERSION_PAL_BETA +#if VERSION >= VERSION_PAL_FINAL GLOBAL_ASM( glabel bgun0f0981e8 .late_rodata @@ -1130,6 +1130,579 @@ glabel var7f1ad3acpf /* f098900: 03e00008 */ jr $ra /* f098904: 27bd0160 */ addiu $sp,$sp,0x160 ); +#elif VERSION >= VERSION_PAL_BETA +GLOBAL_ASM( +glabel bgun0f0981e8 +.late_rodata +glabel var7f1ad398pf +.word 0x461c4000 +glabel var7f1ad39cpf +.word 0x3f451eb8 +glabel var7f1ad3a0pf +.word 0x3f333333 +glabel var7f1ad3a4pf +.word 0x3f99999a +glabel var7f1ad3a8pf +.word 0x3f555555 +glabel var7f1ad3acpf +.word 0x3f99999a +.text +/* f098058: 27bdfea0 */ addiu $sp,$sp,-352 +/* f09805c: afbf004c */ sw $ra,0x4c($sp) +/* f098060: afb40048 */ sw $s4,0x48($sp) +/* f098064: afb30044 */ sw $s3,0x44($sp) +/* f098068: afb20040 */ sw $s2,0x40($sp) +/* f09806c: afb1003c */ sw $s1,0x3c($sp) +/* f098070: afb00038 */ sw $s0,0x38($sp) +/* f098074: f7b40030 */ sdc1 $f20,0x30($sp) +/* f098078: afa50164 */ sw $a1,0x164($sp) +/* f09807c: 908e0690 */ lbu $t6,0x690($a0) +/* f098080: 8c98068c */ lw $t8,0x68c($a0) +/* f098084: 24010002 */ li $at,0x2 +/* f098088: 31cfffe3 */ andi $t7,$t6,0xffe3 +/* f09808c: 00809025 */ move $s2,$a0 +/* f098090: 1701000f */ bne $t8,$at,.PB0f0980d0 +/* f098094: a08f0690 */ sb $t7,0x690($a0) +/* f098098: 0fc25ff3 */ jal 0xf097fcc +/* f09809c: 00000000 */ nop +/* f0980a0: 46000506 */ mov.s $f20,$f0 +/* f0980a4: 0c00772a */ jal 0x1dca8 +/* f0980a8: 26440384 */ addiu $a0,$s2,0x384 +/* f0980ac: 2459ffff */ addiu $t9,$v0,-1 +/* f0980b0: 44992000 */ mtc1 $t9,$f4 +/* f0980b4: 00000000 */ nop +/* f0980b8: 468021a0 */ cvt.s.w $f6,$f4 +/* f0980bc: 4614303e */ c.le.s $f6,$f20 +/* f0980c0: 00000000 */ nop +/* f0980c4: 45020003 */ bc1fl .PB0f0980d4 +/* f0980c8: 8e480680 */ lw $t0,0x680($s2) +/* f0980cc: ae40068c */ sw $zero,0x68c($s2) +.PB0f0980d0: +/* f0980d0: 8e480680 */ lw $t0,0x680($s2) +.PB0f0980d4: +/* f0980d4: 8e49068c */ lw $t1,0x68c($s2) +/* f0980d8: 29020000 */ slti $v0,$t0,0x0 +/* f0980dc: 392a0002 */ xori $t2,$t1,0x2 +/* f0980e0: 2d4a0001 */ sltiu $t2,$t2,0x1 +/* f0980e4: 38420001 */ xori $v0,$v0,0x1 +/* f0980e8: 01425825 */ or $t3,$t2,$v0 +/* f0980ec: 516001d2 */ beqzl $t3,.PB0f098838 +/* f0980f0: 8fbf004c */ lw $ra,0x4c($sp) +/* f0980f4: 44801000 */ mtc1 $zero,$f2 +/* f0980f8: c64806d0 */ lwc1 $f8,0x6d0($s2) +/* f0980fc: 26540384 */ addiu $s4,$s2,0x384 +/* f098100: 4608103c */ c.lt.s $f2,$f8 +/* f098104: 00000000 */ nop +/* f098108: 45000006 */ bc1f .PB0f098124 +/* f09810c: 00000000 */ nop +/* f098110: 8e480680 */ lw $t0,0x680($s2) +/* f098114: ae400684 */ sw $zero,0x684($s2) +/* f098118: e6420688 */ swc1 $f2,0x688($s2) +/* f09811c: 29020000 */ slti $v0,$t0,0x0 +/* f098120: 38420001 */ xori $v0,$v0,0x1 +.PB0f098124: +/* f098124: 5040005a */ beqzl $v0,.PB0f098290 +/* f098128: 8e4d0690 */ lw $t5,0x690($s2) +/* f09812c: 8e4306b0 */ lw $v1,0x6b0($s2) +/* f098130: 3c013f80 */ lui $at,0x3f80 +/* f098134: 924d06d6 */ lbu $t5,0x6d6($s2) +/* f098138: 8c6c0004 */ lw $t4,0x4($v1) +/* f09813c: 44810000 */ mtc1 $at,$f0 +/* f098140: 3c017f1b */ lui $at,0x7f1b +/* f098144: 448c5000 */ mtc1 $t4,$f10 +/* f098148: c432dde8 */ lwc1 $f18,-0x2218($at) +/* f09814c: 31ae0001 */ andi $t6,$t5,0x1 +/* f098150: 46805420 */ cvt.s.w $f16,$f10 +/* f098154: 3c0f800a */ lui $t7,0x800a +/* f098158: 11c0001a */ beqz $t6,.PB0f0981c4 +/* f09815c: 46128503 */ div.s $f20,$f16,$f18 +/* f098160: 8defe754 */ lw $t7,-0x18ac($t7) +/* f098164: 81f80de4 */ lb $t8,0xde4($t7) +/* f098168: 13000016 */ beqz $t8,.PB0f0981c4 +/* f09816c: 00000000 */ nop +/* f098170: 0c004be0 */ jal 0x12f80 +/* f098174: 00000000 */ nop +/* f098178: 44822000 */ mtc1 $v0,$f4 +/* f09817c: 3c014f80 */ lui $at,0x4f80 +/* f098180: 04410004 */ bgez $v0,.PB0f098194 +/* f098184: 468021a0 */ cvt.s.w $f6,$f4 +/* f098188: 44814000 */ mtc1 $at,$f8 +/* f09818c: 00000000 */ nop +/* f098190: 46083180 */ add.s $f6,$f6,$f8 +.PB0f098194: +/* f098194: 3c012f80 */ lui $at,0x2f80 +/* f098198: 44815000 */ mtc1 $at,$f10 +/* f09819c: 3c017f1b */ lui $at,0x7f1b +/* f0981a0: c432ddec */ lwc1 $f18,-0x2214($at) +/* f0981a4: 460a3402 */ mul.s $f16,$f6,$f10 +/* f0981a8: 3c017f1b */ lui $at,0x7f1b +/* f0981ac: c428ddf0 */ lwc1 $f8,-0x2210($at) +/* f0981b0: 44801000 */ mtc1 $zero,$f2 +/* f0981b4: 8e480680 */ lw $t0,0x680($s2) +/* f0981b8: 8e4306b0 */ lw $v1,0x6b0($s2) +/* f0981bc: 46128102 */ mul.s $f4,$f16,$f18 +/* f0981c0: 46082000 */ add.s $f0,$f4,$f8 +.PB0f0981c4: +/* f0981c4: 10600018 */ beqz $v1,.PB0f098228 +/* f0981c8: 02802025 */ move $a0,$s4 +/* f0981cc: 4602a03c */ c.lt.s $f20,$f2 +/* f0981d0: 00082c00 */ sll $a1,$t0,0x10 +/* f0981d4: 0005cc03 */ sra $t9,$a1,0x10 +/* f0981d8: 45000013 */ bc1f .PB0f098228 +/* f0981dc: 00000000 */ nop +/* f0981e0: 46140182 */ mul.s $f6,$f0,$f20 +/* f0981e4: 44071000 */ mfc1 $a3,$f2 +/* f0981e8: 02802025 */ move $a0,$s4 +/* f0981ec: 03202825 */ move $a1,$t9 +/* f0981f0: 00003025 */ move $a2,$zero +/* f0981f4: e7a20014 */ swc1 $f2,0x14($sp) +/* f0981f8: 0c0079d7 */ jal 0x1e75c +/* f0981fc: e7a60010 */ swc1 $f6,0x10($sp) +/* f098200: 0c00772a */ jal 0x1dca8 +/* f098204: 02802025 */ move $a0,$s4 +/* f098208: 44825000 */ mtc1 $v0,$f10 +/* f09820c: 02802025 */ move $a0,$s4 +/* f098210: 468052a0 */ cvt.s.w $f10,$f10 +/* f098214: 44055000 */ mfc1 $a1,$f10 +/* f098218: 0c007aaa */ jal 0x1eaa8 +/* f09821c: 00000000 */ nop +/* f098220: 1000000b */ b .PB0f098250 +/* f098224: 240affff */ li $t2,-1 +.PB0f098228: +/* f098228: 46140402 */ mul.s $f16,$f0,$f20 +/* f09822c: 00082c00 */ sll $a1,$t0,0x10 +/* f098230: 00054c03 */ sra $t1,$a1,0x10 +/* f098234: 44071000 */ mfc1 $a3,$f2 +/* f098238: 01202825 */ move $a1,$t1 +/* f09823c: 00003025 */ move $a2,$zero +/* f098240: e7a20014 */ swc1 $f2,0x14($sp) +/* f098244: 0c0079d7 */ jal 0x1e75c +/* f098248: e7b00010 */ swc1 $f16,0x10($sp) +/* f09824c: 240affff */ li $t2,-1 +.PB0f098250: +/* f098250: 240b0002 */ li $t3,0x2 +/* f098254: ae4a0680 */ sw $t2,0x680($s2) +/* f098258: ae4b068c */ sw $t3,0x68c($s2) +/* f09825c: 0c007746 */ jal 0x1dd18 +/* f098260: 02802025 */ move $a0,$s4 +/* f098264: 8e4c0684 */ lw $t4,0x684($s2) +/* f098268: 3c017f1b */ lui $at,0x7f1b +/* f09826c: c428ddf4 */ lwc1 $f8,-0x220c($at) +/* f098270: 448c9000 */ mtc1 $t4,$f18 +/* f098274: 44801000 */ mtc1 $zero,$f2 +/* f098278: 46809120 */ cvt.s.w $f4,$f18 +/* f09827c: 46082182 */ mul.s $f6,$f4,$f8 +/* f098280: 00000000 */ nop +/* f098284: 46060282 */ mul.s $f10,$f0,$f6 +/* f098288: e64a0688 */ swc1 $f10,0x688($s2) +/* f09828c: 8e4d0690 */ lw $t5,0x690($s2) +.PB0f098290: +/* f098290: 000d7840 */ sll $t7,$t5,0x1 +/* f098294: 05e10003 */ bgez $t7,.PB0f0982a4 +/* f098298: 00000000 */ nop +/* f09829c: ae400684 */ sw $zero,0x684($s2) +/* f0982a0: e6420688 */ swc1 $f2,0x688($s2) +.PB0f0982a4: +/* f0982a4: 0fc25ff3 */ jal 0xf097fcc +/* f0982a8: 02402025 */ move $a0,$s2 +/* f0982ac: 44809000 */ mtc1 $zero,$f18 +/* f0982b0: c6500688 */ lwc1 $f16,0x688($s2) +/* f0982b4: 46000506 */ mov.s $f20,$f0 +/* f0982b8: 46120032 */ c.eq.s $f0,$f18 +/* f0982bc: 46008380 */ add.s $f14,$f16,$f0 +/* f0982c0: 4502000b */ bc1fl .PB0f0982f0 +/* f0982c4: 8e4306b0 */ lw $v1,0x6b0($s2) +/* f0982c8: 44802000 */ mtc1 $zero,$f4 +/* f0982cc: 3c013f80 */ lui $at,0x3f80 +/* f0982d0: 460e203c */ c.lt.s $f4,$f14 +/* f0982d4: 00000000 */ nop +/* f0982d8: 45020005 */ bc1fl .PB0f0982f0 +/* f0982dc: 8e4306b0 */ lw $v1,0x6b0($s2) +/* f0982e0: 44814000 */ mtc1 $at,$f8 +/* f0982e4: 00000000 */ nop +/* f0982e8: 46080501 */ sub.s $f20,$f0,$f8 +/* f0982ec: 8e4306b0 */ lw $v1,0x6b0($s2) +.PB0f0982f0: +/* f0982f0: 106000d8 */ beqz $v1,.PB0f098654 +/* f0982f4: 00608825 */ move $s1,$v1 +/* f0982f8: 106000d6 */ beqz $v1,.PB0f098654 +/* f0982fc: afa0014c */ sw $zero,0x14c($sp) +/* f098300: 00008025 */ move $s0,$zero +/* f098304: 24130001 */ li $s3,0x1 +/* f098308: 92230000 */ lbu $v1,0x0($s1) +.PB0f09830c: +/* f09830c: 14600003 */ bnez $v1,.PB0f09831c +/* f098310: 00000000 */ nop +/* f098314: 100000b6 */ b .PB0f0985f0 +/* f098318: afb3014c */ sw $s3,0x14c($sp) +.PB0f09831c: +/* f09831c: 12630003 */ beq $s3,$v1,.PB0f09832c +/* f098320: 24010002 */ li $at,0x2 +/* f098324: 54610036 */ bnel $v1,$at,.PB0f098400 +/* f098328: 24010003 */ li $at,0x3 +.PB0f09832c: +/* f09832c: 96260002 */ lhu $a2,0x2($s1) +/* f098330: 3c014f80 */ lui $at,0x4f80 +/* f098334: 2405ffff */ li $a1,-1 +/* f098338: 44863000 */ mtc1 $a2,$f6 +/* f09833c: 27ab0094 */ addiu $t3,$sp,0x94 +/* f098340: 04c10004 */ bgez $a2,.PB0f098354 +/* f098344: 468032a0 */ cvt.s.w $f10,$f6 +/* f098348: 44818000 */ mtc1 $at,$f16 +/* f09834c: 00000000 */ nop +/* f098350: 46105280 */ add.s $f10,$f10,$f16 +.PB0f098354: +/* f098354: 460e503e */ c.le.s $f10,$f14 +/* f098358: 2401ffff */ li $at,-1 +/* f09835c: 450200a5 */ bc1fl .PB0f0985f4 +/* f098360: 8fac014c */ lw $t4,0x14c($sp) +/* f098364: 1a00000a */ blez $s0,.PB0f098390 +/* f098368: 00001025 */ move $v0,$zero +/* f09836c: 8e240004 */ lw $a0,0x4($s1) +/* f098370: 27a3010c */ addiu $v1,$sp,0x10c +.PB0f098374: +/* f098374: 8c780000 */ lw $t8,0x0($v1) +/* f098378: 54980003 */ bnel $a0,$t8,.PB0f098388 +/* f09837c: 24420001 */ addiu $v0,$v0,0x1 +/* f098380: 00402825 */ move $a1,$v0 +/* f098384: 24420001 */ addiu $v0,$v0,0x1 +.PB0f098388: +/* f098388: 1450fffa */ bne $v0,$s0,.PB0f098374 +/* f09838c: 24630004 */ addiu $v1,$v1,0x4 +.PB0f098390: +/* f098390: 14a1000a */ bne $a1,$at,.PB0f0983bc +/* f098394: 2409ffff */ li $t1,-1 +/* f098398: 8e240004 */ lw $a0,0x4($s1) +/* f09839c: 02002825 */ move $a1,$s0 +/* f0983a0: 00051080 */ sll $v0,$a1,0x2 +/* f0983a4: 03a2c821 */ addu $t9,$sp,$v0 +/* f0983a8: 03a25021 */ addu $t2,$sp,$v0 +/* f0983ac: af24010c */ sw $a0,0x10c($t9) +/* f0983b0: ad490094 */ sw $t1,0x94($t2) +/* f0983b4: 26100001 */ addiu $s0,$s0,0x1 +/* f0983b8: 96260002 */ lhu $a2,0x2($s1) +.PB0f0983bc: +/* f0983bc: 00051080 */ sll $v0,$a1,0x2 +/* f0983c0: 004b1821 */ addu $v1,$v0,$t3 +/* f0983c4: 8c6c0000 */ lw $t4,0x0($v1) +/* f0983c8: 0186082a */ slt $at,$t4,$a2 +/* f0983cc: 50200089 */ beqzl $at,.PB0f0985f4 +/* f0983d0: 8fac014c */ lw $t4,0x14c($sp) +/* f0983d4: ac660000 */ sw $a2,0x0($v1) +/* f0983d8: 922d0000 */ lbu $t5,0x0($s1) +/* f0983dc: 03a27821 */ addu $t7,$sp,$v0 +/* f0983e0: 03a27021 */ addu $t6,$sp,$v0 +/* f0983e4: 166d0003 */ bne $s3,$t5,.PB0f0983f4 +/* f0983e8: 00000000 */ nop +/* f0983ec: 10000080 */ b .PB0f0985f0 +/* f0983f0: add300d0 */ sw $s3,0xd0($t6) +.PB0f0983f4: +/* f0983f4: 1000007e */ b .PB0f0985f0 +/* f0983f8: ade000d0 */ sw $zero,0xd0($t7) +/* f0983fc: 24010003 */ li $at,0x3 +.PB0f098400: +/* f098400: 10610005 */ beq $v1,$at,.PB0f098418 +/* f098404: 24010008 */ li $at,0x8 +/* f098408: 50610049 */ beql $v1,$at,.PB0f098530 +/* f09840c: 8e4e0690 */ lw $t6,0x690($s2) +/* f098410: 10000078 */ b .PB0f0985f4 +/* f098414: 8fac014c */ lw $t4,0x14c($sp) +.PB0f098418: +/* f098418: 8e580690 */ lw $t8,0x690($s2) +/* f09841c: 0018cfc2 */ srl $t9,$t8,0x1f +/* f098420: 53200074 */ beqzl $t9,.PB0f0985f4 +/* f098424: 8fac014c */ lw $t4,0x14c($sp) +/* f098428: 96290002 */ lhu $t1,0x2($s1) +/* f09842c: 3c014f80 */ lui $at,0x4f80 +/* f098430: 44899000 */ mtc1 $t1,$f18 +/* f098434: 05210004 */ bgez $t1,.PB0f098448 +/* f098438: 468090a0 */ cvt.s.w $f2,$f18 +/* f09843c: 44812000 */ mtc1 $at,$f4 +/* f098440: 00000000 */ nop +/* f098444: 46041080 */ add.s $f2,$f2,$f4 +.PB0f098448: +/* f098448: 460e103e */ c.le.s $f2,$f14 +/* f09844c: 00000000 */ nop +/* f098450: 45020068 */ bc1fl .PB0f0985f4 +/* f098454: 8fac014c */ lw $t4,0x14c($sp) +/* f098458: 4602a03c */ c.lt.s $f20,$f2 +/* f09845c: 00000000 */ nop +/* f098460: 45020064 */ bc1fl .PB0f0985f4 +/* f098464: 8fac014c */ lw $t4,0x14c($sp) +/* f098468: 460ea03c */ c.lt.s $f20,$f14 +/* f09846c: 00000000 */ nop +/* f098470: 45020060 */ bc1fl .PB0f0985f4 +/* f098474: 8fac014c */ lw $t4,0x14c($sp) +/* f098478: 0fc25ff3 */ jal 0xf097fcc +/* f09847c: 02402025 */ move $a0,$s2 +/* f098480: 962a0002 */ lhu $t2,0x2($s1) +/* f098484: 3c014f80 */ lui $at,0x4f80 +/* f098488: 02802025 */ move $a0,$s4 +/* f09848c: 448a4000 */ mtc1 $t2,$f8 +/* f098490: 05410004 */ bgez $t2,.PB0f0984a4 +/* f098494: 468041a0 */ cvt.s.w $f6,$f8 +/* f098498: 44818000 */ mtc1 $at,$f16 +/* f09849c: 00000000 */ nop +/* f0984a0: 46103180 */ add.s $f6,$f6,$f16 +.PB0f0984a4: +/* f0984a4: 46003081 */ sub.s $f2,$f6,$f0 +/* f0984a8: 3c014000 */ lui $at,0x4000 +/* f0984ac: 44815000 */ mtc1 $at,$f10 +/* f0984b0: c64c0688 */ lwc1 $f12,0x688($s2) +/* f0984b4: 460a1083 */ div.s $f2,$f2,$f10 +/* f0984b8: 460c103c */ c.lt.s $f2,$f12 +/* f0984bc: 00000000 */ nop +/* f0984c0: 45000018 */ bc1f .PB0f098524 +/* f0984c4: 00000000 */ nop +/* f0984c8: 0c007746 */ jal 0x1dd18 +/* f0984cc: e7a20084 */ swc1 $f2,0x84($sp) +/* f0984d0: 3c017f1b */ lui $at,0x7f1b +/* f0984d4: c432ddf8 */ lwc1 $f18,-0x2208($at) +/* f0984d8: c7a20084 */ lwc1 $f2,0x84($sp) +/* f0984dc: 02802025 */ move $a0,$s4 +/* f0984e0: 46121102 */ mul.s $f4,$f2,$f18 +/* f0984e4: 46002203 */ div.s $f8,$f4,$f0 +/* f0984e8: 4600440d */ trunc.w.s $f16,$f8 +/* f0984ec: 440c8000 */ mfc1 $t4,$f16 +/* f0984f0: 0c007746 */ jal 0x1dd18 +/* f0984f4: ae4c0684 */ sw $t4,0x684($s2) +/* f0984f8: 8e4d0684 */ lw $t5,0x684($s2) +/* f0984fc: 3c017f1b */ lui $at,0x7f1b +/* f098500: c432ddfc */ lwc1 $f18,-0x2204($at) +/* f098504: 448d3000 */ mtc1 $t5,$f6 +/* f098508: 00000000 */ nop +/* f09850c: 468032a0 */ cvt.s.w $f10,$f6 +/* f098510: 46125102 */ mul.s $f4,$f10,$f18 +/* f098514: 00000000 */ nop +/* f098518: 46040202 */ mul.s $f8,$f0,$f4 +/* f09851c: e6480688 */ swc1 $f8,0x688($s2) +/* f098520: c64c0688 */ lwc1 $f12,0x688($s2) +.PB0f098524: +/* f098524: 10000032 */ b .PB0f0985f0 +/* f098528: 46146380 */ add.s $f14,$f12,$f20 +/* f09852c: 8e4e0690 */ lw $t6,0x690($s2) +.PB0f098530: +/* f098530: 000ec080 */ sll $t8,$t6,0x2 +/* f098534: 0703002f */ bgezl $t8,.PB0f0985f4 +/* f098538: 8fac014c */ lw $t4,0x14c($sp) +/* f09853c: 96260002 */ lhu $a2,0x2($s1) +/* f098540: 3c014f80 */ lui $at,0x4f80 +/* f098544: 44868000 */ mtc1 $a2,$f16 +/* f098548: 04c10004 */ bgez $a2,.PB0f09855c +/* f09854c: 468080a0 */ cvt.s.w $f2,$f16 +/* f098550: 44813000 */ mtc1 $at,$f6 +/* f098554: 00000000 */ nop +/* f098558: 46061080 */ add.s $f2,$f2,$f6 +.PB0f09855c: +/* f09855c: 460e103e */ c.le.s $f2,$f14 +/* f098560: 00000000 */ nop +/* f098564: 45020023 */ bc1fl .PB0f0985f4 +/* f098568: 8fac014c */ lw $t4,0x14c($sp) +/* f09856c: 4602a03c */ c.lt.s $f20,$f2 +/* f098570: 00000000 */ nop +/* f098574: 4502001f */ bc1fl .PB0f0985f4 +/* f098578: 8fac014c */ lw $t4,0x14c($sp) +/* f09857c: 460ea03c */ c.lt.s $f20,$f14 +/* f098580: 02802025 */ move $a0,$s4 +/* f098584: 4502001b */ bc1fl .PB0f0985f4 +/* f098588: 8fac014c */ lw $t4,0x14c($sp) +/* f09858c: 460e103e */ c.le.s $f2,$f14 +/* f098590: 44809000 */ mtc1 $zero,$f18 +/* f098594: 46007006 */ mov.s $f0,$f14 +/* f098598: 4502000c */ bc1fl .PB0f0985cc +/* f09859c: ae400684 */ sw $zero,0x684($s2) +/* f0985a0: 8e390004 */ lw $t9,0x4($s1) +/* f0985a4: 03264823 */ subu $t1,$t9,$a2 +/* f0985a8: 44895000 */ mtc1 $t1,$f10 +/* f0985ac: 00000000 */ nop +/* f0985b0: 46805320 */ cvt.s.w $f12,$f10 +/* f0985b4: 460c0000 */ add.s $f0,$f0,$f12 +.PB0f0985b8: +/* f0985b8: 4600103e */ c.le.s $f2,$f0 +/* f0985bc: 00000000 */ nop +/* f0985c0: 4503fffd */ bc1tl .PB0f0985b8 +/* f0985c4: 460c0000 */ add.s $f0,$f0,$f12 +/* f0985c8: ae400684 */ sw $zero,0x684($s2) +.PB0f0985cc: +/* f0985cc: e6520688 */ swc1 $f18,0x688($s2) +/* f0985d0: 44050000 */ mfc1 $a1,$f0 +/* f0985d4: 46000506 */ mov.s $f20,$f0 +/* f0985d8: 0c007aaa */ jal 0x1eaa8 +/* f0985dc: e7a00080 */ swc1 $f0,0x80($sp) +/* f0985e0: 924a0691 */ lbu $t2,0x691($s2) +/* f0985e4: c7ae0080 */ lwc1 $f14,0x80($sp) +/* f0985e8: 254b0001 */ addiu $t3,$t2,0x1 +/* f0985ec: a24b0691 */ sb $t3,0x691($s2) +.PB0f0985f0: +/* f0985f0: 8fac014c */ lw $t4,0x14c($sp) +.PB0f0985f4: +/* f0985f4: 26310008 */ addiu $s1,$s1,0x8 +/* f0985f8: 5180ff44 */ beqzl $t4,.PB0f09830c +/* f0985fc: 92230000 */ lbu $v1,0x0($s1) +/* f098600: 5a000015 */ blezl $s0,.PB0f098658 +/* f098604: 3c054099 */ lui $a1,0x4099 +/* f098608: 1a000012 */ blez $s0,.PB0f098654 +/* f09860c: 00001025 */ move $v0,$zero +/* f098610: 27a3010c */ addiu $v1,$sp,0x10c +/* f098614: 27a800d0 */ addiu $t0,$sp,0xd0 +.PB0f098618: +/* f098618: 84640002 */ lh $a0,0x2($v1) +/* f09861c: 8d050000 */ lw $a1,0x0($t0) +/* f098620: afa80058 */ sw $t0,0x58($sp) +/* f098624: afa3005c */ sw $v1,0x5c($sp) +/* f098628: afa2007c */ sw $v0,0x7c($sp) +/* f09862c: 02403025 */ move $a2,$s2 +/* f098630: 0fc25f39 */ jal 0xf097ce4 +/* f098634: 8fa70164 */ lw $a3,0x164($sp) +/* f098638: 8fa2007c */ lw $v0,0x7c($sp) +/* f09863c: 8fa3005c */ lw $v1,0x5c($sp) +/* f098640: 8fa80058 */ lw $t0,0x58($sp) +/* f098644: 24420001 */ addiu $v0,$v0,0x1 +/* f098648: 24630004 */ addiu $v1,$v1,0x4 +/* f09864c: 1450fff2 */ bne $v0,$s0,.PB0f098618 +/* f098650: 25080004 */ addiu $t0,$t0,0x4 +.PB0f098654: +/* f098654: 3c054099 */ lui $a1,0x4099 +.PB0f098658: +/* f098658: 34a5999a */ ori $a1,$a1,0x999a +/* f09865c: 02802025 */ move $a0,$s4 +/* f098660: 0c007a8f */ jal 0x1ea3c +/* f098664: 24060000 */ li $a2,0x0 +/* f098668: 02802025 */ move $a0,$s4 +/* f09866c: 8e450684 */ lw $a1,0x684($s2) +/* f098670: 0c007e2a */ jal 0x1f8a8 +/* f098674: 24060001 */ li $a2,0x1 +/* f098678: 0fc25ff3 */ jal 0xf097fcc +/* f09867c: 02402025 */ move $a0,$s2 +/* f098680: 8e4306b0 */ lw $v1,0x6b0($s2) +/* f098684: 46000386 */ mov.s $f14,$f0 +/* f098688: 00004025 */ move $t0,$zero +/* f09868c: 10600069 */ beqz $v1,.PB0f098834 +/* f098690: 00608025 */ move $s0,$v1 +/* f098694: 3c013f80 */ lui $at,0x3f80 +/* f098698: 44812000 */ mtc1 $at,$f4 +/* f09869c: 00008825 */ move $s1,$zero +/* f0986a0: 10600064 */ beqz $v1,.PB0f098834 +/* f0986a4: e7a40070 */ swc1 $f4,0x70($sp) +/* f0986a8: 24140009 */ li $s4,0x9 +/* f0986ac: 24130005 */ li $s3,0x5 +.PB0f0986b0: +/* f0986b0: 92030000 */ lbu $v1,0x0($s0) +/* f0986b4: 54600004 */ bnezl $v1,.PB0f0986c8 +/* f0986b8: 960d0002 */ lhu $t5,0x2($s0) +/* f0986bc: 1000005b */ b .PB0f09882c +/* f0986c0: 24080001 */ li $t0,0x1 +/* f0986c4: 960d0002 */ lhu $t5,0x2($s0) +.PB0f0986c8: +/* f0986c8: 3c014f80 */ lui $at,0x4f80 +/* f0986cc: 448d4000 */ mtc1 $t5,$f8 +/* f0986d0: 05a10004 */ bgez $t5,.PB0f0986e4 +/* f0986d4: 46804020 */ cvt.s.w $f0,$f8 +/* f0986d8: 44818000 */ mtc1 $at,$f16 +/* f0986dc: 00000000 */ nop +/* f0986e0: 46100000 */ add.s $f0,$f0,$f16 +.PB0f0986e4: +/* f0986e4: 460e003e */ c.le.s $f0,$f14 +/* f0986e8: 00000000 */ nop +/* f0986ec: 4500004f */ bc1f .PB0f09882c +/* f0986f0: 00000000 */ nop +/* f0986f4: 4600a03c */ c.lt.s $f20,$f0 +/* f0986f8: 00000000 */ nop +/* f0986fc: 4500004b */ bc1f .PB0f09882c +/* f098700: 00000000 */ nop +/* f098704: 460ea03c */ c.lt.s $f20,$f14 +/* f098708: 00000000 */ nop +/* f09870c: 45000047 */ bc1f .PB0f09882c +/* f098710: 00000000 */ nop +/* f098714: 10730007 */ beq $v1,$s3,.PB0f098734 +/* f098718: 00000000 */ nop +/* f09871c: 10740039 */ beq $v1,$s4,.PB0f098804 +/* f098720: 2401000b */ li $at,0xb +/* f098724: 5061002f */ beql $v1,$at,.PB0f0987e4 +/* f098728: 8e0d0004 */ lw $t5,0x4($s0) +/* f09872c: 1000003f */ b .PB0f09882c +/* f098730: 00000000 */ nop +.PB0f098734: +/* f098734: 12200016 */ beqz $s1,.PB0f098790 +/* f098738: 00002025 */ move $a0,$zero +/* f09873c: 8e0e0004 */ lw $t6,0x4($s0) +/* f098740: c7a60070 */ lwc1 $f6,0x70($sp) +/* f098744: 240f0001 */ li $t7,0x1 +/* f098748: 2418ffff */ li $t8,-1 +/* f09874c: 24190001 */ li $t9,0x1 +/* f098750: afb90020 */ sw $t9,0x20($sp) +/* f098754: afb8001c */ sw $t8,0x1c($sp) +/* f098758: afaf0018 */ sw $t7,0x18($sp) +/* f09875c: e7ae0158 */ swc1 $f14,0x158($sp) +/* f098760: afa80078 */ sw $t0,0x78($sp) +/* f098764: 00002025 */ move $a0,$zero +/* f098768: 00002825 */ move $a1,$zero +/* f09876c: 24067fff */ li $a2,0x7fff +/* f098770: 24070040 */ li $a3,0x40 +/* f098774: 00008825 */ move $s1,$zero +/* f098778: afae0010 */ sw $t6,0x10($sp) +/* f09877c: 0c0041d9 */ jal 0x10764 +/* f098780: e7a60014 */ swc1 $f6,0x14($sp) +/* f098784: 8fa80078 */ lw $t0,0x78($sp) +/* f098788: 10000028 */ b .PB0f09882c +/* f09878c: c7ae0158 */ lwc1 $f14,0x158($sp) +.PB0f098790: +/* f098790: 8e090004 */ lw $t1,0x4($s0) +/* f098794: 3c013f80 */ lui $at,0x3f80 +/* f098798: 44815000 */ mtc1 $at,$f10 +/* f09879c: 240a0001 */ li $t2,0x1 +/* f0987a0: 240bffff */ li $t3,-1 +/* f0987a4: 240c0001 */ li $t4,0x1 +/* f0987a8: afac0020 */ sw $t4,0x20($sp) +/* f0987ac: afab001c */ sw $t3,0x1c($sp) +/* f0987b0: afaa0018 */ sw $t2,0x18($sp) +/* f0987b4: e7ae0158 */ swc1 $f14,0x158($sp) +/* f0987b8: afa80078 */ sw $t0,0x78($sp) +/* f0987bc: 00002825 */ move $a1,$zero +/* f0987c0: 24067fff */ li $a2,0x7fff +/* f0987c4: 24070040 */ li $a3,0x40 +/* f0987c8: afa90010 */ sw $t1,0x10($sp) +/* f0987cc: 0c0041d9 */ jal 0x10764 +/* f0987d0: e7aa0014 */ swc1 $f10,0x14($sp) +/* f0987d4: 8fa80078 */ lw $t0,0x78($sp) +/* f0987d8: 10000014 */ b .PB0f09882c +/* f0987dc: c7ae0158 */ lwc1 $f14,0x158($sp) +/* f0987e0: 8e0d0004 */ lw $t5,0x4($s0) +.PB0f0987e4: +/* f0987e4: 3c01447a */ lui $at,0x447a +/* f0987e8: 44814000 */ mtc1 $at,$f8 +/* f0987ec: 448d9000 */ mtc1 $t5,$f18 +/* f0987f0: 24110001 */ li $s1,0x1 +/* f0987f4: 46809120 */ cvt.s.w $f4,$f18 +/* f0987f8: 46082403 */ div.s $f16,$f4,$f8 +/* f0987fc: 1000000b */ b .PB0f09882c +/* f098800: e7b00070 */ swc1 $f16,0x70($sp) +.PB0f098804: +/* f098804: 8e4e0690 */ lw $t6,0x690($s2) +/* f098808: 924b0690 */ lbu $t3,0x690($s2) +/* f09880c: 000e78c0 */ sll $t7,$t6,0x3 +/* f098810: 000fc742 */ srl $t8,$t7,0x1d +/* f098814: 27190001 */ addiu $t9,$t8,0x1 +/* f098818: 00194880 */ sll $t1,$t9,0x2 +/* f09881c: 312a001c */ andi $t2,$t1,0x1c +/* f098820: 316cffe3 */ andi $t4,$t3,0xffe3 +/* f098824: 014c6825 */ or $t5,$t2,$t4 +/* f098828: a24d0690 */ sb $t5,0x690($s2) +.PB0f09882c: +/* f09882c: 1100ffa0 */ beqz $t0,.PB0f0986b0 +/* f098830: 26100008 */ addiu $s0,$s0,0x8 +.PB0f098834: +/* f098834: 8fbf004c */ lw $ra,0x4c($sp) +.PB0f098838: +/* f098838: d7b40030 */ ldc1 $f20,0x30($sp) +/* f09883c: 8fb00038 */ lw $s0,0x38($sp) +/* f098840: 8fb1003c */ lw $s1,0x3c($sp) +/* f098844: 8fb20040 */ lw $s2,0x40($sp) +/* f098848: 8fb30044 */ lw $s3,0x44($sp) +/* f09884c: 8fb40048 */ lw $s4,0x48($sp) +/* f098850: 03e00008 */ jr $ra +/* f098854: 27bd0160 */ addiu $sp,$sp,0x160 +); #elif VERSION >= VERSION_NTSC_1_0 GLOBAL_ASM( glabel bgun0f0981e8 @@ -6140,7 +6713,7 @@ s32 bgun0f09a3f8(struct hand *hand, struct weaponfunc *func) if (autofunc->unk50 > 0) { if (hand->gs_float1 < 1) { -#if VERSION >= VERSION_PAL_FINAL +#if VERSION >= VERSION_PAL_BETA hand->gs_float1 += g_Vars.lvupdate240freal / autofunc->unk50; #else hand->gs_float1 += g_Vars.lvupdate240f / autofunc->unk50; @@ -6202,7 +6775,7 @@ s32 bgun0f09a3f8(struct hand *hand, struct weaponfunc *func) if (autofunc->unk51 > 0) { if (hand->gs_float1 > 0) { -#if VERSION >= VERSION_PAL_FINAL +#if VERSION >= VERSION_PAL_BETA hand->gs_float1 -= g_Vars.lvupdate240freal / autofunc->unk51; #else hand->gs_float1 -= g_Vars.lvupdate240f / autofunc->unk51; @@ -6225,7 +6798,7 @@ s32 bgun0f09a3f8(struct hand *hand, struct weaponfunc *func) return -1; } -#if VERSION >= VERSION_PAL_FINAL +#if VERSION >= VERSION_PAL_BETA GLOBAL_ASM( glabel bgun0f09a6f8 .late_rodata @@ -7931,7 +8504,7 @@ bool bgunTickIncAttackingClose(s32 handnum, struct hand *hand) hand->burstbullets++; if (hand->triggeron) { -#if VERSION >= VERSION_PAL_FINAL +#if VERSION >= VERSION_PAL_BETA hand->matmot2 += 0.01f * g_Vars.lvupdate240freal; #else hand->matmot2 += 0.01f * g_Vars.lvupdate240f; @@ -8939,7 +9512,7 @@ void bgunTick(s32 handnum) lvupdate = g_Vars.lvupdate240_60; hand->animframeinc = g_Vars.lvupdate240_60; -#if VERSION >= VERSION_PAL_FINAL +#if VERSION >= VERSION_PAL_BETA hand->animframeincfreal = modelGetAbsAnimSpeed(&hand->unk09bc) * PALUPF(hand->animframeinc); #else hand->animframeincfreal += PALUPF(g_Vars.lvupdate240_60); @@ -16209,7 +16782,7 @@ glabel var7f1ac764 void bgunSwivelTowards(f32 screenx, f32 screeny, f32 damp) { struct weapon *weapon = weaponFindById(bgunGetWeaponNum(HAND_RIGHT)); -#if VERSION >= VERSION_PAL_FINAL +#if VERSION >= VERSION_PAL_BETA f32 value = weapon->eptr->unk10; #else f32 value = weapon->eptr->unk14; @@ -16225,7 +16798,7 @@ void bgunSwivelTowards(f32 screenx, f32 screeny, f32 damp) void bgun0f0a0b98(f32 screenx, f32 screeny) { struct weapon *weapon = weaponFindById(bgunGetWeaponNum(HAND_RIGHT)); -#if VERSION >= VERSION_PAL_FINAL +#if VERSION >= VERSION_PAL_BETA f32 value = weapon->eptr->unk10; #else f32 value = weapon->eptr->unk14; @@ -17454,7 +18027,7 @@ void bgun0f0a24f0(struct coord *arg0, s32 handnum) arg0->z = b.z; } -#if VERSION >= VERSION_PAL_FINAL +#if VERSION >= VERSION_PAL_BETA GLOBAL_ASM( glabel bgun0f0a256c /* f0a256c: 3c0e800a */ lui $t6,%hi(var8009d148) @@ -18759,7 +19332,7 @@ glabel var7f1ac7d0 ); #endif -#if VERSION >= VERSION_PAL_FINAL +#if VERSION >= VERSION_PAL_BETA GLOBAL_ASM( glabel bgun0f0a3490 .late_rodata @@ -19566,7 +20139,7 @@ glabel bgun0f0a37b4 /* f0a3aa0: 00000000 */ nop ); -#if VERSION >= VERSION_PAL_FINAL +#if VERSION >= VERSION_PAL_BETA GLOBAL_ASM( glabel bgun0f0a3aa4 .late_rodata @@ -20323,7 +20896,7 @@ glabel bgun0f0a3eac /* f0a4090: 27bd00a8 */ addiu $sp,$sp,0xa8 ); -#if VERSION >= VERSION_PAL_FINAL +#if VERSION >= VERSION_PAL_BETA GLOBAL_ASM( glabel bgun0f0a4094 .late_rodata @@ -20481,7 +21054,7 @@ glabel var7f1ac8c0 ); #endif -#if VERSION >= VERSION_PAL_FINAL +#if VERSION >= VERSION_PAL_BETA GLOBAL_ASM( glabel bgun0f0a419c .late_rodata @@ -20723,7 +21296,7 @@ void bgun0f0a4334(struct hand *hand) } if (hand->matmot1 > 0) { -#if VERSION >= VERSION_PAL_FINAL +#if VERSION >= VERSION_PAL_BETA hand->matmot1 -= g_Vars.lvupdate240freal / 10.0f; #else hand->matmot1 -= g_Vars.lvupdate240f / 10.0f; @@ -27935,7 +28508,7 @@ void bgun0f0a6c30(void) // Handle RCP120 cloak ammo usage if ((chr->hidden & CHRHFLAG_CLOAKED) && chr->cloakfadefinished == true) { hand = &player->hands[HAND_RIGHT]; -#if VERSION >= VERSION_PAL_FINAL +#if VERSION >= VERSION_PAL_BETA hand->matmot1 += g_Vars.lvupdate240freal * 0.4f; #else hand->matmot1 += g_Vars.lvupdate240f * 0.4f; @@ -28061,7 +28634,7 @@ s32 bgunAllocateFireslot(void) return index; } -#if VERSION >= VERSION_PAL_FINAL +#if VERSION >= VERSION_PAL_BETA GLOBAL_ASM( glabel bgun0f0a7138 .late_rodata diff --git a/src/game/bondwalk.c b/src/game/bondwalk.c index ee893928f..a2414df3a 100644 --- a/src/game/bondwalk.c +++ b/src/game/bondwalk.c @@ -854,7 +854,7 @@ glabel var7f1a7ad8nb const char var7f1ad75c[] = "bondwalk.c"; -#if VERSION >= VERSION_PAL_FINAL +#if VERSION >= VERSION_PAL_BETA GLOBAL_ASM( glabel bwalkCalculateNewPositionWithPush /* f0c4250: 27bdff58 */ addiu $sp,$sp,-168 diff --git a/src/game/chr/chraction.c b/src/game/chr/chraction.c index 12f6df0c0..c3c5df8d3 100644 --- a/src/game/chr/chraction.c +++ b/src/game/chr/chraction.c @@ -19318,6 +19318,8 @@ bool chrNavCanSeeNextPos(struct chrdata *chr, struct coord *chrpos, s16 *chrroom spbc = true; #if VERSION >= VERSION_PAL_FINAL cd00024e4c(&spac, &spa0, 14151, "chr/chraction.c"); +#elif VERSION >= VERSION_PAL_BETA + cd00024e4c(&spac, &spa0, 14146, "chraction.c"); #elif VERSION >= VERSION_NTSC_1_0 cd00024e4c(&spac, &spa0, 14145, "chraction.c"); #else @@ -19339,6 +19341,8 @@ bool chrNavCanSeeNextPos(struct chrdata *chr, struct coord *chrpos, s16 *chrroom spb8 = true; #if VERSION >= VERSION_PAL_FINAL cd00024e4c(&sp94, &sp88, 14166, "chr/chraction.c"); +#elif VERSION >= VERSION_PAL_BETA + cd00024e4c(&sp94, &sp88, 14161, "chraction.c"); #elif VERSION >= VERSION_NTSC_1_0 cd00024e4c(&sp94, &sp88, 14160, "chraction.c"); #else @@ -19380,6 +19384,8 @@ bool chrNavCanSeeNextPos(struct chrdata *chr, struct coord *chrpos, s16 *chrroom } else { #if VERSION >= VERSION_PAL_FINAL cd00024e4c(leftpos, rightpos, 14236, "chr/chraction.c"); +#elif VERSION >= VERSION_PAL_BETA + cd00024e4c(leftpos, rightpos, 14231, "chraction.c"); #elif VERSION >= VERSION_NTSC_1_0 cd00024e4c(leftpos, rightpos, 14230, "chraction.c"); #else @@ -19465,6 +19471,8 @@ bool chrNavCheckForObstacle(struct chrdata *chr, struct coord *chrpos, s16 *chrr spbc = true; #if VERSION >= VERSION_PAL_FINAL cd00024e4c(&spac, &spa0, 14316, "chr/chraction.c"); +#elif VERSION >= VERSION_PAL_BETA + cd00024e4c(&spac, &spa0, 14311, "chraction.c"); #elif VERSION >= VERSION_NTSC_1_0 cd00024e4c(&spac, &spa0, 14310, "chraction.c"); #else @@ -19487,6 +19495,8 @@ bool chrNavCheckForObstacle(struct chrdata *chr, struct coord *chrpos, s16 *chrr spb8 = true; #if VERSION >= VERSION_PAL_FINAL cd00024e4c(&sp94, &sp88, 14331, "chr/chraction.c"); +#elif VERSION >= VERSION_PAL_BETA + cd00024e4c(&sp94, &sp88, 14326, "chraction.c"); #elif VERSION >= VERSION_NTSC_1_0 cd00024e4c(&sp94, &sp88, 14325, "chraction.c"); #else @@ -19536,6 +19546,8 @@ bool chrNavCheckForObstacle(struct chrdata *chr, struct coord *chrpos, s16 *chrr } else { #if VERSION >= VERSION_PAL_FINAL cd00024e4c(leftpos, rightpos, 14401, "chr/chraction.c"); +#elif VERSION >= VERSION_PAL_BETA + cd00024e4c(leftpos, rightpos, 14396, "chraction.c"); #elif VERSION >= VERSION_NTSC_1_0 cd00024e4c(leftpos, rightpos, 14395, "chraction.c"); #else @@ -25042,6 +25054,8 @@ bool chrRunFromPos(struct chrdata *chr, u32 speed, f32 rundist, struct coord *fr if (cdTestAToB4(&chr->prop->pos, chr->prop->rooms, &delta, CDTYPE_ALL, 4) == CDRESULT_COLLISION) { #if VERSION >= VERSION_PAL_FINAL cdGetPos(&delta, 18555, "chr/chraction.c"); +#elif VERSION >= VERSION_PAL_BETA + cdGetPos(&delta, 18550, "chraction.c"); #elif VERSION >= VERSION_NTSC_1_0 cdGetPos(&delta, 18547, "chraction.c"); #else @@ -25384,6 +25398,249 @@ glabel var7f1a942c /* f04cbfc: 03e00008 */ jr $ra /* f04cc00: 24020001 */ addiu $v0,$zero,0x1 ); +#elif VERSION >= VERSION_PAL_BETA +GLOBAL_ASM( +glabel func0f04c874 +.late_rodata +glabel var7f1a942c +.word 0x3c8ef461 +.text +/* f04c998: 27bdff18 */ addiu $sp,$sp,-232 +/* f04c99c: afbf007c */ sw $ra,0x7c($sp) +/* f04c9a0: afb40068 */ sw $s4,0x68($sp) +/* f04c9a4: afb30064 */ sw $s3,0x64($sp) +/* f04c9a8: afb20060 */ sw $s2,0x60($sp) +/* f04c9ac: afb00058 */ sw $s0,0x58($sp) +/* f04c9b0: 00c08025 */ move $s0,$a2 +/* f04c9b4: 00a09025 */ move $s2,$a1 +/* f04c9b8: 00809825 */ move $s3,$a0 +/* f04c9bc: 30f400ff */ andi $s4,$a3,0xff +/* f04c9c0: afbe0078 */ sw $s8,0x78($sp) +/* f04c9c4: afb70074 */ sw $s7,0x74($sp) +/* f04c9c8: afb60070 */ sw $s6,0x70($sp) +/* f04c9cc: afb5006c */ sw $s5,0x6c($sp) +/* f04c9d0: afb1005c */ sw $s1,0x5c($sp) +/* f04c9d4: f7be0050 */ sdc1 $f30,0x50($sp) +/* f04c9d8: f7bc0048 */ sdc1 $f28,0x48($sp) +/* f04c9dc: f7ba0040 */ sdc1 $f26,0x40($sp) +/* f04c9e0: f7b80038 */ sdc1 $f24,0x38($sp) +/* f04c9e4: f7b60030 */ sdc1 $f22,0x30($sp) +/* f04c9e8: f7b40028 */ sdc1 $f20,0x28($sp) +/* f04c9ec: 0fc0a255 */ jal 0xf028954 +/* f04c9f0: afa700f4 */ sw $a3,0xf4($sp) +/* f04c9f4: 4480d000 */ mtc1 $zero,$f26 +/* f04c9f8: 00408825 */ move $s1,$v0 +/* f04c9fc: 0fc1322a */ jal 0xf04c8a8 +/* f04ca00: 02602025 */ move $a0,$s3 +/* f04ca04: 8e6e001c */ lw $t6,0x1c($s3) +/* f04ca08: 3c0143b4 */ lui $at,0x43b4 +/* f04ca0c: 4481f000 */ mtc1 $at,$f30 +/* f04ca10: c5c40008 */ lwc1 $f4,0x8($t6) +/* f04ca14: 3c014334 */ lui $at,0x4334 +/* f04ca18: 4481e000 */ mtc1 $at,$f28 +/* f04ca1c: e7a400c8 */ swc1 $f4,0xc8($sp) +/* f04ca20: 8e6f001c */ lw $t7,0x1c($s3) +/* f04ca24: 46000606 */ mov.s $f24,$f0 +/* f04ca28: 27be00c8 */ addiu $s8,$sp,0xc8 +/* f04ca2c: c5e6000c */ lwc1 $f6,0xc($t7) +/* f04ca30: 27b7009c */ addiu $s7,$sp,0x9c +/* f04ca34: 27b600a0 */ addiu $s6,$sp,0xa0 +/* f04ca38: e7a600cc */ swc1 $f6,0xcc($sp) +/* f04ca3c: 8e78001c */ lw $t8,0x1c($s3) +/* f04ca40: 27b50098 */ addiu $s5,$sp,0x98 +/* f04ca44: c7080010 */ lwc1 $f8,0x10($t8) +/* f04ca48: e7a800d0 */ swc1 $f8,0xd0($sp) +/* f04ca4c: 44925000 */ mtc1 $s2,$f10 +.PB0f04ca50: +/* f04ca50: 3c014f80 */ lui $at,0x4f80 +/* f04ca54: 06410004 */ bgez $s2,.PB0f04ca68 +/* f04ca58: 46805020 */ cvt.s.w $f0,$f10 +/* f04ca5c: 44818000 */ mtc1 $at,$f16 +/* f04ca60: 00000000 */ nop +/* f04ca64: 46100000 */ add.s $f0,$f0,$f16 +.PB0f04ca68: +/* f04ca68: 4600e03c */ c.lt.s $f28,$f0 +/* f04ca6c: 46000506 */ mov.s $f20,$f0 +/* f04ca70: 3c017f1b */ lui $at,0x7f1b +/* f04ca74: 45020003 */ bc1fl .PB0f04ca84 +/* f04ca78: 4618a501 */ sub.s $f20,$f20,$f24 +/* f04ca7c: 461e0501 */ sub.s $f20,$f0,$f30 +/* f04ca80: 4618a501 */ sub.s $f20,$f20,$f24 +.PB0f04ca84: +/* f04ca84: c432b118 */ lwc1 $f18,-0x4ee8($at) +/* f04ca88: 4612a502 */ mul.s $f20,$f20,$f18 +/* f04ca8c: 0c006b88 */ jal 0x1ae20 +/* f04ca90: 4600a306 */ mov.s $f12,$f20 +/* f04ca94: 46000586 */ mov.s $f22,$f0 +/* f04ca98: 0c006b8b */ jal 0x1ae2c +/* f04ca9c: 4600a306 */ mov.s $f12,$f20 +/* f04caa0: c62e0008 */ lwc1 $f14,0x8($s1) +/* f04caa4: c7a400c8 */ lwc1 $f4,0xc8($sp) +/* f04caa8: c7a600d0 */ lwc1 $f6,0xd0($sp) +/* f04caac: c6280010 */ lwc1 $f8,0x10($s1) +/* f04cab0: 460e2081 */ sub.s $f2,$f4,$f14 +/* f04cab4: 02a02825 */ move $a1,$s5 +/* f04cab8: 02c03025 */ move $a2,$s6 +/* f04cabc: 46083301 */ sub.s $f12,$f6,$f8 +/* f04cac0: 46161282 */ mul.s $f10,$f2,$f22 +/* f04cac4: 02e03825 */ move $a3,$s7 +/* f04cac8: 46006402 */ mul.s $f16,$f12,$f0 +/* f04cacc: 46105481 */ sub.s $f18,$f10,$f16 +/* f04cad0: 46001202 */ mul.s $f8,$f2,$f0 +/* f04cad4: 00000000 */ nop +/* f04cad8: 46166282 */ mul.s $f10,$f12,$f22 +/* f04cadc: 46127100 */ add.s $f4,$f14,$f18 +/* f04cae0: e6040000 */ swc1 $f4,0x0($s0) +/* f04cae4: c7a600cc */ lwc1 $f6,0xcc($sp) +/* f04cae8: 460a4400 */ add.s $f16,$f8,$f10 +/* f04caec: e6060004 */ swc1 $f6,0x4($s0) +/* f04caf0: c6320010 */ lwc1 $f18,0x10($s1) +/* f04caf4: 46109100 */ add.s $f4,$f18,$f16 +/* f04caf8: e6040008 */ swc1 $f4,0x8($s0) +/* f04cafc: 0fc0a2ab */ jal 0xf028aac +/* f04cb00: 8e64001c */ lw $a0,0x1c($s3) +/* f04cb04: c7a800cc */ lwc1 $f8,0xcc($sp) +/* f04cb08: c7a600a0 */ lwc1 $f6,0xa0($sp) +/* f04cb0c: c7b2009c */ lwc1 $f18,0x9c($sp) +/* f04cb10: 8e65001c */ lw $a1,0x1c($s3) +/* f04cb14: 46083281 */ sub.s $f10,$f6,$f8 +/* f04cb18: 24190001 */ li $t9,0x1 +/* f04cb1c: afb90010 */ sw $t9,0x10($sp) +/* f04cb20: 46089401 */ sub.s $f16,$f18,$f8 +/* f04cb24: e7aa0014 */ swc1 $f10,0x14($sp) +/* f04cb28: 03c02025 */ move $a0,$s8 +/* f04cb2c: 02003025 */ move $a2,$s0 +/* f04cb30: e7b00018 */ swc1 $f16,0x18($sp) +/* f04cb34: 24070023 */ li $a3,0x23 +/* f04cb38: 0c00b760 */ jal 0x2dd80 +/* f04cb3c: 24a50028 */ addiu $a1,$a1,0x28 +/* f04cb40: 1440002a */ bnez $v0,.PB0f04cbec +/* f04cb44: 02002025 */ move $a0,$s0 +/* f04cb48: 3c067f1b */ lui $a2,0x7f1b +/* f04cb4c: 24c6a9b4 */ addiu $a2,$a2,-22092 +/* f04cb50: 0c00951f */ jal 0x2547c +/* f04cb54: 24054901 */ li $a1,0x4901 +/* f04cb58: c6040000 */ lwc1 $f4,0x0($s0) +/* f04cb5c: c7a600c8 */ lwc1 $f6,0xc8($sp) +/* f04cb60: c60a0008 */ lwc1 $f10,0x8($s0) +/* f04cb64: c7b200d0 */ lwc1 $f18,0xd0($sp) +/* f04cb68: 46062501 */ sub.s $f20,$f4,$f6 +/* f04cb6c: 46125581 */ sub.s $f22,$f10,$f18 +/* f04cb70: 4614a202 */ mul.s $f8,$f20,$f20 +/* f04cb74: 00000000 */ nop +/* f04cb78: 4616b402 */ mul.s $f16,$f22,$f22 +/* f04cb7c: 0c012ae4 */ jal 0x4ab90 +/* f04cb80: 46104300 */ add.s $f12,$f8,$f16 +/* f04cb84: 3c014248 */ lui $at,0x4248 +/* f04cb88: 44812000 */ mtc1 $at,$f4 +/* f04cb8c: 44805000 */ mtc1 $zero,$f10 +/* f04cb90: c7b200c8 */ lwc1 $f18,0xc8($sp) +/* f04cb94: 46040181 */ sub.s $f6,$f0,$f4 +/* f04cb98: c7a400c8 */ lwc1 $f4,0xc8($sp) +/* f04cb9c: 46003083 */ div.s $f2,$f6,$f0 +/* f04cba0: 460a103c */ c.lt.s $f2,$f10 +/* f04cba4: 00000000 */ nop +/* f04cba8: 45000007 */ bc1f .PB0f04cbc8 +/* f04cbac: 00000000 */ nop +/* f04cbb0: e6120000 */ swc1 $f18,0x0($s0) +/* f04cbb4: c7a800cc */ lwc1 $f8,0xcc($sp) +/* f04cbb8: e6080004 */ swc1 $f8,0x4($s0) +/* f04cbbc: c7b000d0 */ lwc1 $f16,0xd0($sp) +/* f04cbc0: 1000000a */ b .PB0f04cbec +/* f04cbc4: e6100008 */ swc1 $f16,0x8($s0) +.PB0f04cbc8: +/* f04cbc8: 4602a502 */ mul.s $f20,$f20,$f2 +/* f04cbcc: 46142180 */ add.s $f6,$f4,$f20 +/* f04cbd0: 4602b582 */ mul.s $f22,$f22,$f2 +/* f04cbd4: e6060000 */ swc1 $f6,0x0($s0) +/* f04cbd8: c7aa00cc */ lwc1 $f10,0xcc($sp) +/* f04cbdc: e60a0004 */ swc1 $f10,0x4($s0) +/* f04cbe0: c7b200d0 */ lwc1 $f18,0xd0($sp) +/* f04cbe4: 46169200 */ add.s $f8,$f18,$f22 +/* f04cbe8: e6080008 */ swc1 $f8,0x8($s0) +.PB0f04cbec: +/* f04cbec: 12800019 */ beqz $s4,.PB0f04cc54 +/* f04cbf0: 00001025 */ move $v0,$zero +/* f04cbf4: c6000000 */ lwc1 $f0,0x0($s0) +/* f04cbf8: c7b000c8 */ lwc1 $f16,0xc8($sp) +/* f04cbfc: c7a400cc */ lwc1 $f4,0xcc($sp) +/* f04cc00: c6060004 */ lwc1 $f6,0x4($s0) +/* f04cc04: 46008081 */ sub.s $f2,$f16,$f0 +/* f04cc08: c7aa00d0 */ lwc1 $f10,0xd0($sp) +/* f04cc0c: c6120008 */ lwc1 $f18,0x8($s0) +/* f04cc10: 46062381 */ sub.s $f14,$f4,$f6 +/* f04cc14: 46021202 */ mul.s $f8,$f2,$f2 +/* f04cc18: e7a000a8 */ swc1 $f0,0xa8($sp) +/* f04cc1c: 46125301 */ sub.s $f12,$f10,$f18 +/* f04cc20: 460e7402 */ mul.s $f16,$f14,$f14 +/* f04cc24: c60a0004 */ lwc1 $f10,0x4($s0) +/* f04cc28: 24080168 */ li $t0,0x168 +/* f04cc2c: 460c6182 */ mul.s $f6,$f12,$f12 +/* f04cc30: e7aa00ac */ swc1 $f10,0xac($sp) +/* f04cc34: c6120008 */ lwc1 $f18,0x8($s0) +/* f04cc38: 01129023 */ subu $s2,$t0,$s2 +/* f04cc3c: 24020001 */ li $v0,0x1 +/* f04cc40: 46104100 */ add.s $f4,$f8,$f16 +/* f04cc44: 0000a025 */ move $s4,$zero +/* f04cc48: e7b200b0 */ swc1 $f18,0xb0($sp) +/* f04cc4c: 10000001 */ b .PB0f04cc54 +/* f04cc50: 46062680 */ add.s $f26,$f4,$f6 +.PB0f04cc54: +/* f04cc54: 5440ff7e */ bnezl $v0,.PB0f04ca50 +/* f04cc58: 44925000 */ mtc1 $s2,$f10 +/* f04cc5c: 44804000 */ mtc1 $zero,$f8 +/* f04cc60: c7b000c8 */ lwc1 $f16,0xc8($sp) +/* f04cc64: 02602025 */ move $a0,$s3 +/* f04cc68: 4608d032 */ c.eq.s $f26,$f8 +/* f04cc6c: 02002825 */ move $a1,$s0 +/* f04cc70: 45010018 */ bc1t .PB0f04ccd4 +/* f04cc74: 00000000 */ nop +/* f04cc78: c6040000 */ lwc1 $f4,0x0($s0) +/* f04cc7c: c7a600cc */ lwc1 $f6,0xcc($sp) +/* f04cc80: c60a0004 */ lwc1 $f10,0x4($s0) +/* f04cc84: 46048081 */ sub.s $f2,$f16,$f4 +/* f04cc88: c7b200d0 */ lwc1 $f18,0xd0($sp) +/* f04cc8c: c6080008 */ lwc1 $f8,0x8($s0) +/* f04cc90: 460a3381 */ sub.s $f14,$f6,$f10 +/* f04cc94: 46021402 */ mul.s $f16,$f2,$f2 +/* f04cc98: 46089301 */ sub.s $f12,$f18,$f8 +/* f04cc9c: 460e7102 */ mul.s $f4,$f14,$f14 +/* f04cca0: c7a800a8 */ lwc1 $f8,0xa8($sp) +/* f04cca4: 460c6282 */ mul.s $f10,$f12,$f12 +/* f04cca8: 46048180 */ add.s $f6,$f16,$f4 +/* f04ccac: 460a3480 */ add.s $f18,$f6,$f10 +/* f04ccb0: 461a903c */ c.lt.s $f18,$f26 +/* f04ccb4: 00000000 */ nop +/* f04ccb8: 45000006 */ bc1f .PB0f04ccd4 +/* f04ccbc: 00000000 */ nop +/* f04ccc0: e6080000 */ swc1 $f8,0x0($s0) +/* f04ccc4: c7b000ac */ lwc1 $f16,0xac($sp) +/* f04ccc8: e6100004 */ swc1 $f16,0x4($s0) +/* f04cccc: c7a400b0 */ lwc1 $f4,0xb0($sp) +/* f04ccd0: e6040008 */ swc1 $f4,0x8($s0) +.PB0f04ccd4: +/* f04ccd4: 0fc0eb38 */ jal 0xf03ace0 +/* f04ccd8: 93a600fb */ lbu $a2,0xfb($sp) +/* f04ccdc: 8fbf007c */ lw $ra,0x7c($sp) +/* f04cce0: d7b40028 */ ldc1 $f20,0x28($sp) +/* f04cce4: d7b60030 */ ldc1 $f22,0x30($sp) +/* f04cce8: d7b80038 */ ldc1 $f24,0x38($sp) +/* f04ccec: d7ba0040 */ ldc1 $f26,0x40($sp) +/* f04ccf0: d7bc0048 */ ldc1 $f28,0x48($sp) +/* f04ccf4: d7be0050 */ ldc1 $f30,0x50($sp) +/* f04ccf8: 8fb00058 */ lw $s0,0x58($sp) +/* f04ccfc: 8fb1005c */ lw $s1,0x5c($sp) +/* f04cd00: 8fb20060 */ lw $s2,0x60($sp) +/* f04cd04: 8fb30064 */ lw $s3,0x64($sp) +/* f04cd08: 8fb40068 */ lw $s4,0x68($sp) +/* f04cd0c: 8fb5006c */ lw $s5,0x6c($sp) +/* f04cd10: 8fb60070 */ lw $s6,0x70($sp) +/* f04cd14: 8fb70074 */ lw $s7,0x74($sp) +/* f04cd18: 8fbe0078 */ lw $s8,0x78($sp) +/* f04cd1c: 27bd00e8 */ addiu $sp,$sp,0xe8 +/* f04cd20: 03e00008 */ jr $ra +/* f04cd24: 24020001 */ li $v0,0x1 +); #elif VERSION >= VERSION_NTSC_1_0 GLOBAL_ASM( glabel func0f04c874 diff --git a/src/game/credits.c b/src/game/credits.c index c6370b1d9..6cea9fb23 100644 --- a/src/game/credits.c +++ b/src/game/credits.c @@ -786,7 +786,7 @@ void func0f13870c(void) } } -#if VERSION >= VERSION_PAL_FINAL +#if VERSION >= VERSION_PAL_BETA GLOBAL_ASM( glabel func0f13899c .late_rodata diff --git a/src/game/debug2.c b/src/game/debug2.c index 8757f0e35..f8f6712da 100644 --- a/src/game/debug2.c +++ b/src/game/debug2.c @@ -383,13 +383,19 @@ s32 var800787a4nb = 0; s32 var800787a8nb = 0; bool g_DebugMemInfo = false; s32 var800787b0nb = 0; + +#if VERSION == VERSION_PAL_BETA +s32 var800787bcnb = 0; +s32 var800781e4pb = 0; +s32 var800787b8nb = 0; +s32 var800787b4nb = 0; +#else s32 var800787b4nb = 0; s32 var800787b8nb = 0; s32 var800787bcnb = 0; -s32 var800787c0nb = 0; -#if VERSION == VERSION_PAL_BETA -s32 var800781f0pb = 0; #endif + +s32 var800787c0nb = 0; s32 var800787c4nb = 1; s32 var800787c8nb = 0; s32 var800787ccnb = 0; @@ -1277,6 +1283,15 @@ bool debug0f119ba8nb(void) return var800787bcnb; } +#if VERSION == VERSION_PAL_BETA +GLOBAL_ASM( +glabel func0f120478nb +/* f120478: 3c028008 */ lui $v0,0x8008 +/* f12047c: 03e00008 */ jr $ra +/* f120480: 8c4281ec */ lw $v0,-0x7e14($v0) +); +#endif + bool debugIsChrStatsEnabled(void) { return g_DebugChrStats; @@ -1296,12 +1311,3 @@ bool debug0f119bd8nb(void) { return var800787f0nb; } - -#if VERSION == VERSION_PAL_BETA -GLOBAL_ASM( -glabel func0f1204a8nb -/* f1204a8: 3c028008 */ lui $v0,0x8008 -/* f1204ac: 03e00008 */ jr $ra -/* f1204b0: 8c428220 */ lw $v0,-0x7de0($v0) -); -#endif diff --git a/src/game/game_006900.c b/src/game/game_006900.c index 1ed40a29e..9f53820ef 100644 --- a/src/game/game_006900.c +++ b/src/game/game_006900.c @@ -31,7 +31,7 @@ u32 colourBlend(u32 a, u32 b, u32 aweight) void func0f0069dc(void) { -#if VERSION >= VERSION_PAL_FINAL +#if VERSION >= VERSION_PAL_BETA var80061630 = var80061630 + g_Vars.diffframe240freal / 4800.0f; #else var80061630 = var80061630 + g_Vars.diffframe240f / 4800.0f; @@ -41,7 +41,7 @@ void func0f0069dc(void) var80061630 -= 1.0f; } -#if VERSION >= VERSION_PAL_FINAL +#if VERSION >= VERSION_PAL_BETA var80061634 = var80061634 + g_Vars.lvupdate240freal / 4800.0f; #else var80061634 = var80061634 + g_Vars.lvupdate240f / 4800.0f; diff --git a/src/game/game_00c490.c b/src/game/game_00c490.c index 481456989..015053f1e 100644 --- a/src/game/game_00c490.c +++ b/src/game/game_00c490.c @@ -3178,7 +3178,7 @@ void setupHov(struct defaultobj *obj, struct hov *hov) hov->groundprev60 = -1; } -#if VERSION >= VERSION_PAL_FINAL +#if VERSION >= VERSION_PAL_BETA GLOBAL_ASM( glabel setupLoadBriefing /* f00e980: 27bdffc8 */ addiu $sp,$sp,-56 diff --git a/src/game/game_01bea0.c b/src/game/game_01bea0.c index 0e8ce0711..a856999ac 100644 --- a/src/game/game_01bea0.c +++ b/src/game/game_01bea0.c @@ -158,7 +158,7 @@ void menuTick(void) } if (g_MenuData.screenshottimer == 0 || g_MenuData.bg != 0) { -#if VERSION >= VERSION_PAL_FINAL +#if VERSION >= VERSION_PAL_BETA f32 diffframe = g_Vars.diffframe60freal; #else f32 diffframe = g_Vars.diffframe60f; diff --git a/src/game/game_0abe70.c b/src/game/game_0abe70.c index c8cb83d42..3ace41cf0 100644 --- a/src/game/game_0abe70.c +++ b/src/game/game_0abe70.c @@ -4182,7 +4182,7 @@ void func0f0aefb8(void) (var8009da60[i].unk20.f[1] - var8009da60[i].unk14.f[1]) * (var8009da60[i].unk20.f[1] - var8009da60[i].unk14.f[1]) + (var8009da60[i].unk20.f[2] - var8009da60[i].unk14.f[2]) * (var8009da60[i].unk20.f[2] - var8009da60[i].unk14.f[2])); -#if VERSION >= VERSION_PAL_FINAL +#if VERSION >= VERSION_PAL_BETA value -= var8009da60[i].unk2c * g_Vars.lvupdate240freal / 60.0f; #else value -= var8009da60[i].unk2c * g_Vars.lvupdate240f / 60.0f; diff --git a/src/game/game_0b0fd0.c b/src/game/game_0b0fd0.c index b5025b1e6..0b9454c5b 100644 --- a/src/game/game_0b0fd0.c +++ b/src/game/game_0b0fd0.c @@ -220,7 +220,7 @@ void currentPlayerZoomOut(f32 fovpersec) } if (index >= 0) { -#if VERSION >= VERSION_PAL_FINAL +#if VERSION >= VERSION_PAL_BETA f32 amount = fovpersec * 0.25f * g_Vars.lvupdate240freal; #else f32 amount = fovpersec * 0.25f * g_Vars.lvupdate240f; @@ -249,7 +249,7 @@ void currentPlayerZoomIn(f32 fovpersec) } if (index >= 0) { -#if VERSION >= VERSION_PAL_FINAL +#if VERSION >= VERSION_PAL_BETA f32 amount = fovpersec * 0.25f * g_Vars.lvupdate240freal; #else f32 amount = fovpersec * 0.25f * g_Vars.lvupdate240f; @@ -565,7 +565,7 @@ f32 gsetGetDamage(struct gset *gset) damage = fullfunc->damage; if (gset->weaponnum == WEAPON_REAPER) { -#if VERSION >= VERSION_PAL_FINAL +#if VERSION >= VERSION_PAL_BETA damage *= g_Vars.lvupdate240freal; #else damage *= g_Vars.lvupdate240f; diff --git a/src/game/lang.c b/src/game/lang.c index 65ca81a66..2d8c32ed9 100644 --- a/src/game/lang.c +++ b/src/game/lang.c @@ -564,7 +564,7 @@ char *langGet(s32 textid) return (char *)addr; } -#if PAL +#if VERSION >= VERSION_PAL_FINAL GLOBAL_ASM( glabel func0f16f6ecpf /* f16f6ec: 27bdffd8 */ addiu $sp,$sp,-40 @@ -598,6 +598,40 @@ glabel func0f16f6ecpf /* f16f754: 03e00008 */ jr $ra /* f16f758: 27bd0028 */ addiu $sp,$sp,0x28 ); +#elif VERSION >= VERSION_PAL_BETA +GLOBAL_ASM( +glabel func0f16f6ecpf +/* f1701ec: 27bdffd8 */ addiu $sp,$sp,-40 +/* f1701f0: afbf0024 */ sw $ra,0x24($sp) +/* f1701f4: 3c048008 */ lui $a0,0x8008 +/* f1701f8: afb20020 */ sw $s2,0x20($sp) +/* f1701fc: afb1001c */ sw $s1,0x1c($sp) +/* f170200: afb00018 */ sw $s0,0x18($sp) +/* f170204: 0fc5e23c */ jal 0xf1788f0 +/* f170208: 8c8465f4 */ lw $a0,0x65f4($a0) +/* f17020c: 3c018008 */ lui $at,0x8008 +/* f170210: 3c11800b */ lui $s1,0x800b +/* f170214: ac2265f8 */ sw $v0,0x65f8($at) +/* f170218: 2631f0c0 */ addiu $s1,$s1,-3904 +/* f17021c: 00008025 */ move $s0,$zero +/* f170220: 24120045 */ li $s2,0x45 +.PB0f170224: +/* f170224: 8e2e0000 */ lw $t6,0x0($s1) +/* f170228: 51c00004 */ beqzl $t6,.PB0f17023c +/* f17022c: 26100001 */ addiu $s0,$s0,0x1 +/* f170230: 0fc5c01e */ jal 0xf170078 +/* f170234: 02002025 */ move $a0,$s0 +/* f170238: 26100001 */ addiu $s0,$s0,0x1 +.PB0f17023c: +/* f17023c: 1612fff9 */ bne $s0,$s2,.PB0f170224 +/* f170240: 26310004 */ addiu $s1,$s1,0x4 +/* f170244: 8fbf0024 */ lw $ra,0x24($sp) +/* f170248: 8fb00018 */ lw $s0,0x18($sp) +/* f17024c: 8fb1001c */ lw $s1,0x1c($sp) +/* f170250: 8fb20020 */ lw $s2,0x20($sp) +/* f170254: 03e00008 */ jr $ra +/* f170258: 27bd0028 */ addiu $sp,$sp,0x28 +); #endif #if VERSION >= VERSION_PAL_FINAL diff --git a/src/game/lv.c b/src/game/lv.c index 3e40ad033..c2e762138 100644 --- a/src/game/lv.c +++ b/src/game/lv.c @@ -533,7 +533,7 @@ Gfx *lvRenderFade(Gfx *gdl) if (g_FadeDelay > 0) { g_FadeDelay--; } else { -#if VERSION >= VERSION_PAL_FINAL +#if VERSION >= VERSION_PAL_BETA g_FadeFrac += g_Vars.diffframe60freal / g_FadeNumFrames; #else g_FadeFrac += g_Vars.diffframe60f / g_FadeNumFrames; @@ -1536,7 +1536,7 @@ Gfx *lvRender(Gfx *gdl) f32 cutsceneblurfrac = playerGetCutsceneBlurFrac(); if (cutsceneblurfrac > 0) { -#if VERSION < VERSION_PAL_FINAL +#if VERSION < VERSION_PAL_BETA u32 stack; #endif gdl = bviewRenderMotionBlur(gdl, 0xffffff00, cutsceneblurfrac * 255); diff --git a/src/game/mainmenu.c b/src/game/mainmenu.c index 72acd6c22..1af1a433e 100644 --- a/src/game/mainmenu.c +++ b/src/game/mainmenu.c @@ -265,7 +265,7 @@ s32 menuhandlerScreenRatio(s32 operation, struct menuitem *item, union handlerda return 0; } -#if VERSION >= VERSION_PAL_BETA +#if VERSION >= VERSION_PAL_FINAL u16 var80071ce0pf[] = { 0x5507, 0x5508, 0x5509, 0x550a, 0x550b }; GLOBAL_ASM( @@ -334,6 +334,75 @@ glabel func0f1030e4pf /* f1031bc: 03e00008 */ jr $ra /* f1031c0: 00000000 */ nop ); +#elif VERSION >= VERSION_PAL_BETA +u16 var80071ce0pf[] = { 0x5507, 0x5508, 0x5509, 0x550a, 0x550b }; + +GLOBAL_ASM( +glabel func0f1030e4pf +/* f102e4c: 27bdffd8 */ addiu $sp,$sp,-40 +/* f102e50: 3c0e8007 */ lui $t6,0x8007 +/* f102e54: afbf0014 */ sw $ra,0x14($sp) +/* f102e58: afa5002c */ sw $a1,0x2c($sp) +/* f102e5c: 25ce36cc */ addiu $t6,$t6,0x36cc +/* f102e60: 8dc10000 */ lw $at,0x0($t6) +/* f102e64: 27a2001c */ addiu $v0,$sp,0x1c +/* f102e68: 24080005 */ li $t0,0x5 +/* f102e6c: ac410000 */ sw $at,0x0($v0) +/* f102e70: 8dd90004 */ lw $t9,0x4($t6) +/* f102e74: ac590004 */ sw $t9,0x4($v0) +/* f102e78: 95c10008 */ lhu $at,0x8($t6) +/* f102e7c: a4410008 */ sh $at,0x8($v0) +/* f102e80: 24010001 */ li $at,0x1 +/* f102e84: 10810009 */ beq $a0,$at,.PB0f102eac +/* f102e88: 24010003 */ li $at,0x3 +/* f102e8c: 10810009 */ beq $a0,$at,.PB0f102eb4 +/* f102e90: 24010006 */ li $at,0x6 +/* f102e94: 1081000e */ beq $a0,$at,.PB0f102ed0 +/* f102e98: 24010007 */ li $at,0x7 +/* f102e9c: 10810018 */ beq $a0,$at,.PB0f102f00 +/* f102ea0: 3c02800a */ lui $v0,0x800a +/* f102ea4: 1000001d */ b .PB0f102f1c +/* f102ea8: 00001025 */ move $v0,$zero +.PB0f102eac: +/* f102eac: 1000001a */ b .PB0f102f18 +/* f102eb0: acc80000 */ sw $t0,0x0($a2) +.PB0f102eb4: +/* f102eb4: 8cc90000 */ lw $t1,0x0($a2) +/* f102eb8: 00095040 */ sll $t2,$t1,0x1 +/* f102ebc: 004a5821 */ addu $t3,$v0,$t2 +/* f102ec0: 0fc5c06a */ jal 0xf1701a8 +/* f102ec4: 95640000 */ lhu $a0,0x0($t3) +/* f102ec8: 10000015 */ b .PB0f102f20 +/* f102ecc: 8fbf0014 */ lw $ra,0x14($sp) +.PB0f102ed0: +/* f102ed0: 8ccc0000 */ lw $t4,0x0($a2) +/* f102ed4: 3c02800a */ lui $v0,0x800a +/* f102ed8: 2442e4d0 */ addiu $v0,$v0,-6960 +/* f102edc: a44c0482 */ sh $t4,0x482($v0) +/* f102ee0: 0fc5c097 */ jal 0xf17025c +/* f102ee4: 3184ffff */ andi $a0,$t4,0xffff +/* f102ee8: 3c02800a */ lui $v0,0x800a +/* f102eec: 2442e4d0 */ addiu $v0,$v0,-6960 +/* f102ef0: 8c4d0458 */ lw $t5,0x458($v0) +/* f102ef4: 35b80005 */ ori $t8,$t5,0x5 +/* f102ef8: 10000007 */ b .PB0f102f18 +/* f102efc: ac580458 */ sw $t8,0x458($v0) +.PB0f102f00: +/* f102f00: 2442e4d0 */ addiu $v0,$v0,-6960 +/* f102f04: 944f0482 */ lhu $t7,0x482($v0) +/* f102f08: 2de10005 */ sltiu $at,$t7,0x5 +/* f102f0c: 14200002 */ bnez $at,.PB0f102f18 +/* f102f10: accf0000 */ sw $t7,0x0($a2) +/* f102f14: acc00000 */ sw $zero,0x0($a2) +.PB0f102f18: +/* f102f18: 00001025 */ move $v0,$zero +.PB0f102f1c: +/* f102f1c: 8fbf0014 */ lw $ra,0x14($sp) +.PB0f102f20: +/* f102f20: 27bd0028 */ addiu $sp,$sp,0x28 +/* f102f24: 03e00008 */ jr $ra +/* f102f28: 00000000 */ nop +); #endif s32 menuhandlerScreenSplit(s32 operation, struct menuitem *item, union handlerdata *data) @@ -4590,7 +4659,7 @@ struct menudialogdef g_MissionControlOptionsMenuDialog = { NULL, }; -#if VERSINO >= VERSION_PAL_FINAL +#if VERSION >= VERSION_PAL_FINAL struct menuitem g_CiControlOptionsMenuItems2[] = { { MENUITEMTYPE_SELECTABLE, 0, 0x00000000, L_MPWEAPONS_270, (u32)&func0f105664, menuhandlerControlStyle }, // "Control Style" { MENUITEMTYPE_CHECKBOX, 0, 0x00000000, L_MPWEAPONS_271, 0x00000004, menuhandlerReversePitch }, // "Reverse Pitch" diff --git a/src/game/menu.c b/src/game/menu.c index 3a02e7a07..2828a06c7 100644 --- a/src/game/menu.c +++ b/src/game/menu.c @@ -112,7 +112,7 @@ const struct menucolourpalette g_MenuColourPalettes3[] = { #if VERSION >= VERSION_NTSC_1_0 char *g_StringPointer = g_CheatMarqueeString; -char *g_StringPointer2 = &g_CheatMarqueeString[PAL ? 150 : 125]; +char *g_StringPointer2 = &g_CheatMarqueeString[VERSION >= VERSION_PAL_FINAL ? 150 : 125]; #endif s32 g_MpPlayerNum = 0; @@ -2060,7 +2060,7 @@ void func0f0f1418(void) for (i = 0; i < 4; i++) { if (g_Menus[g_MpPlayerNum].unkdfc[i].item) { -#if VERSION >= VERSION_PAL_FINAL +#if VERSION >= VERSION_PAL_BETA g_Menus[g_MpPlayerNum].unkdfc[i].unk04 += g_Vars.diffframe60freal / 60.0f; #else g_Menus[g_MpPlayerNum].unkdfc[i].unk04 += g_Vars.diffframe60f / 60.0f; diff --git a/src/game/menugfx.c b/src/game/menugfx.c index ffbda683d..2e529d6d5 100644 --- a/src/game/menugfx.c +++ b/src/game/menugfx.c @@ -4269,7 +4269,7 @@ u32 menugfx0f0e4fe0(void) return align16(0xd20); } -#if VERSION >= VERSION_PAL_FINAL +#if VERSION >= VERSION_PAL_BETA GLOBAL_ASM( glabel menugfxRenderBgSuccess .late_rodata diff --git a/src/game/menuitem.c b/src/game/menuitem.c index ac7402ab3..0a2f9f74b 100644 --- a/src/game/menuitem.c +++ b/src/game/menuitem.c @@ -3476,7 +3476,7 @@ Gfx *menuitemSeparatorRender(Gfx *gdl, struct menurendercontext *context) u32 var800711e8 = 0x00000000; -#if PAL +#if VERSION >= VERSION_PAL_FINAL GLOBAL_ASM( glabel menuitemObjectivesRenderOne /* f0e98ac: 27bdfed0 */ addiu $sp,$sp,-304 @@ -5626,7 +5626,7 @@ Gfx *menuitemObjectivesRender(Gfx *gdl, struct menurendercontext *context) if (context->item->param == 0) { y += 18; } else if (context->item->param == 2) { - y += PAL ? 34 : 30; + y += VERSION >= VERSION_PAL_FINAL ? 34 : 30; } else { y += 14; } diff --git a/src/game/mplayer/setup.c b/src/game/mplayer/setup.c index 570c51214..16568aa76 100644 --- a/src/game/mplayer/setup.c +++ b/src/game/mplayer/setup.c @@ -545,7 +545,7 @@ s32 mpCharacterBodyMenuHandler(s32 operation, struct menuitem *item, union handl if (g_Menus[g_MpPlayerNum].unk840.unk578 > 0) { g_Menus[g_MpPlayerNum].unk840.unk578 -= g_Vars.diffframe60; } else { -#if VERSION >= VERSION_PAL_FINAL +#if VERSION >= VERSION_PAL_BETA f32 value = g_Menus[g_MpPlayerNum].unk840.unk524 + 0.01f * g_Vars.diffframe60freal; #else f32 value = g_Menus[g_MpPlayerNum].unk840.unk524 + 0.01f * g_Vars.diffframe60f; @@ -1271,7 +1271,7 @@ s32 mpCharacterHeadMenuHandler(s32 operation, struct menuitem *item, union handl data->carousel.value = mpGetNumHeads2(); break; case MENUOP_11: -#if VERSION >= VERSION_PAL_FINAL +#if VERSION >= VERSION_PAL_BETA diffframe = g_Menus[g_MpPlayerNum].unk840.unk524 + 0.01f * g_Vars.diffframe60freal; #else diffframe = g_Menus[g_MpPlayerNum].unk840.unk524 + 0.01f * g_Vars.diffframe60f; diff --git a/src/game/pak/pak.c b/src/game/pak/pak.c index 6ebed7912..6115bcb03 100644 --- a/src/game/pak/pak.c +++ b/src/game/pak/pak.c @@ -103,7 +103,7 @@ #define MAX_HEADERCACHE_ENTRIES 50 -#if VERSION >= VERSION_PAL_FINAL +#if VERSION >= VERSION_PAL_BETA #define LINE_825 825 #define LINE_1058 1058 #define LINE_1551 1551 @@ -215,7 +215,7 @@ u32 var800a337c; u32 var800a3380; u32 var800a3384; -#if VERSION >= VERSION_NTSC_1_0 +#if VERSION != VERSION_NTSC_BETA && VERSION != VERSION_PAL_BETA // This is likely g_DebugCutsceneLabelPtrs and/or g_DebugCutsceneLabelBuffers // but with reduced lengths u32 var800a3388; diff --git a/src/game/player.c b/src/game/player.c index a1f670450..d519e7af6 100644 --- a/src/game/player.c +++ b/src/game/player.c @@ -2110,7 +2110,7 @@ void playerTickCutscene(bool arg0) s32 endframe; s8 contpadnum = optionsGetContpadNum1(g_Vars.currentplayerstats->mpindex); u16 buttons; -#if VERSION >= VERSION_PAL_FINAL +#if VERSION >= VERSION_PAL_BETA u8 stack3[0x2c]; #endif f32 barfrac; diff --git a/src/game/playerinit.c b/src/game/playerinit.c index 1bde06cc5..c7a05317c 100644 --- a/src/game/playerinit.c +++ b/src/game/playerinit.c @@ -620,7 +620,11 @@ void playerInit(void) if (cheatIsActive(CHEAT_CLOAKINGDEVICE)) { invGiveSingleWeapon(WEAPON_CLOAKINGDEVICE); +#if VERSION >= VERSION_PAL_FINAL bgunSetAmmoQuantity(AMMOTYPE_CLOAK, TICKS(7200)); +#else + bgunSetAmmoQuantity(AMMOTYPE_CLOAK, 7200); +#endif } if (cheatIsActive(CHEAT_PERFECTDARKNESS)) { diff --git a/src/game/propobj.c b/src/game/propobj.c index 4ece0ae7c..632fec34a 100644 --- a/src/game/propobj.c +++ b/src/game/propobj.c @@ -6675,6 +6675,113 @@ glabel func0f06b488 /* f06b608: 03e00008 */ jr $ra /* f06b60c: 00000000 */ nop ); +#elif VERSION >= VERSION_PAL_BETA +GLOBAL_ASM( +glabel func0f06b488 +/* f06b660: 27bdffb8 */ addiu $sp,$sp,-72 +/* f06b664: afa40048 */ sw $a0,0x48($sp) +/* f06b668: afa5004c */ sw $a1,0x4c($sp) +/* f06b66c: 00a02025 */ move $a0,$a1 +/* f06b670: afbf001c */ sw $ra,0x1c($sp) +/* f06b674: afb00018 */ sw $s0,0x18($sp) +/* f06b678: afa60050 */ sw $a2,0x50($sp) +/* f06b67c: 00c02825 */ move $a1,$a2 +/* f06b680: 00e08025 */ move $s0,$a3 +/* f06b684: 0c00b926 */ jal 0x2e498 +/* f06b688: 8fa60048 */ lw $a2,0x48($sp) +/* f06b68c: 14400050 */ bnez $v0,.PB0f06b7d0 +/* f06b690: 27a4003c */ addiu $a0,$sp,0x3c +/* f06b694: 3c077f1b */ lui $a3,0x7f1b +/* f06b698: 24e7bc70 */ addiu $a3,$a3,-17296 +/* f06b69c: 27a50030 */ addiu $a1,$sp,0x30 +/* f06b6a0: 0c009503 */ jal 0x2540c +/* f06b6a4: 24060b5e */ li $a2,0xb5e +/* f06b6a8: 3c067f1b */ lui $a2,0x7f1b +/* f06b6ac: 24c6bc7c */ addiu $a2,$a2,-17284 +/* f06b6b0: 27a40020 */ addiu $a0,$sp,0x20 +/* f06b6b4: 0c00951f */ jal 0x2547c +/* f06b6b8: 24050b5f */ li $a1,0xb5f +/* f06b6bc: 8fa2004c */ lw $v0,0x4c($sp) +/* f06b6c0: c7a40020 */ lwc1 $f4,0x20($sp) +/* f06b6c4: c60a0000 */ lwc1 $f10,0x0($s0) +/* f06b6c8: c4460000 */ lwc1 $f6,0x0($v0) +/* f06b6cc: c7b20024 */ lwc1 $f18,0x24($sp) +/* f06b6d0: 8fa30060 */ lw $v1,0x60($sp) +/* f06b6d4: 46062201 */ sub.s $f8,$f4,$f6 +/* f06b6d8: c4440004 */ lwc1 $f4,0x4($v0) +/* f06b6dc: 8fa4005c */ lw $a0,0x5c($sp) +/* f06b6e0: 460a4402 */ mul.s $f16,$f8,$f10 +/* f06b6e4: 46049181 */ sub.s $f6,$f18,$f4 +/* f06b6e8: c6080004 */ lwc1 $f8,0x4($s0) +/* f06b6ec: c7a40028 */ lwc1 $f4,0x28($sp) +/* f06b6f0: 46083282 */ mul.s $f10,$f6,$f8 +/* f06b6f4: c4460008 */ lwc1 $f6,0x8($v0) +/* f06b6f8: 8fa20058 */ lw $v0,0x58($sp) +/* f06b6fc: 46062201 */ sub.s $f8,$f4,$f6 +/* f06b700: c4640000 */ lwc1 $f4,0x0($v1) +/* f06b704: 460a8480 */ add.s $f18,$f16,$f10 +/* f06b708: c6100008 */ lwc1 $f16,0x8($s0) +/* f06b70c: 46088282 */ mul.s $f10,$f16,$f8 +/* f06b710: 46125000 */ add.s $f0,$f10,$f18 +/* f06b714: 4604003c */ c.lt.s $f0,$f4 +/* f06b718: 00000000 */ nop +/* f06b71c: 4502002d */ bc1fl .PB0f06b7d4 +/* f06b720: 00001025 */ move $v0,$zero +/* f06b724: e4600000 */ swc1 $f0,0x0($v1) +/* f06b728: c7a60020 */ lwc1 $f6,0x20($sp) +/* f06b72c: 44801000 */ mtc1 $zero,$f2 +/* f06b730: 24850004 */ addiu $a1,$a0,0x4 +/* f06b734: e4460000 */ swc1 $f6,0x0($v0) +/* f06b738: c7b00024 */ lwc1 $f16,0x24($sp) +/* f06b73c: e4500004 */ swc1 $f16,0x4($v0) +/* f06b740: c7a80028 */ lwc1 $f8,0x28($sp) +/* f06b744: e4480008 */ swc1 $f8,0x8($v0) +/* f06b748: c60a0000 */ lwc1 $f10,0x0($s0) +/* f06b74c: e4820004 */ swc1 $f2,0x4($a0) +/* f06b750: 46005487 */ neg.s $f18,$f10 +/* f06b754: e4920000 */ swc1 $f18,0x0($a0) +/* f06b758: c4900000 */ lwc1 $f16,0x0($a0) +/* f06b75c: c6040008 */ lwc1 $f4,0x8($s0) +/* f06b760: 46101032 */ c.eq.s $f2,$f16 +/* f06b764: 46002187 */ neg.s $f6,$f4 +/* f06b768: 45000007 */ bc1f .PB0f06b788 +/* f06b76c: e4860008 */ swc1 $f6,0x8($a0) +/* f06b770: c4880008 */ lwc1 $f8,0x8($a0) +/* f06b774: 3c013f80 */ lui $at,0x3f80 +/* f06b778: 46081032 */ c.eq.s $f2,$f8 +/* f06b77c: 00000000 */ nop +/* f06b780: 45030006 */ bc1tl .PB0f06b79c +/* f06b784: 44815000 */ mtc1 $at,$f10 +.PB0f06b788: +/* f06b788: 0c0011d8 */ jal 0x4760 +/* f06b78c: 24860008 */ addiu $a2,$a0,0x8 +/* f06b790: 10000005 */ b .PB0f06b7a8 +/* f06b794: 8fae0048 */ lw $t6,0x48($sp) +/* f06b798: 44815000 */ mtc1 $at,$f10 +.PB0f06b79c: +/* f06b79c: 00000000 */ nop +/* f06b7a0: e48a0008 */ swc1 $f10,0x8($a0) +/* f06b7a4: 8fae0048 */ lw $t6,0x48($sp) +.PB0f06b7a8: +/* f06b7a8: 3c018007 */ lui $at,0x8007 +/* f06b7ac: 24020001 */ li $v0,0x1 +/* f06b7b0: ac2eb000 */ sw $t6,-0x5000($at) +/* f06b7b4: 3c018007 */ lui $at,0x8007 +/* f06b7b8: ac20b004 */ sw $zero,-0x4ffc($at) +/* f06b7bc: 3c01800a */ lui $at,0x800a +/* f06b7c0: ac201390 */ sw $zero,0x1390($at) +/* f06b7c4: 3c01800a */ lui $at,0x800a +/* f06b7c8: 10000002 */ b .PB0f06b7d4 +/* f06b7cc: ac201394 */ sw $zero,0x1394($at) +.PB0f06b7d0: +/* f06b7d0: 00001025 */ move $v0,$zero +.PB0f06b7d4: +/* f06b7d4: 8fbf001c */ lw $ra,0x1c($sp) +/* f06b7d8: 8fb00018 */ lw $s0,0x18($sp) +/* f06b7dc: 27bd0048 */ addiu $sp,$sp,0x48 +/* f06b7e0: 03e00008 */ jr $ra +/* f06b7e4: 00000000 */ nop +); #elif VERSION >= VERSION_NTSC_1_0 GLOBAL_ASM( glabel func0f06b488 @@ -8957,6 +9064,453 @@ glabel var7f1aa268 /* f06d374: 03e00008 */ jr $ra /* f06d378: 27bd0208 */ addiu $sp,$sp,0x208 ); +#elif VERSION >= VERSION_PAL_BETA +GLOBAL_ASM( +glabel func0f06cd00 +.late_rodata +glabel var7f1aa268 +.word 0x3dcccccd +.text +/* f06ced8: 27bdfdf8 */ addiu $sp,$sp,-520 +/* f06cedc: 3c02800a */ lui $v0,0x800a +/* f06cee0: 2442e4d0 */ addiu $v0,$v0,-6960 +/* f06cee4: 8c4f0318 */ lw $t7,0x318($v0) +/* f06cee8: afbf0074 */ sw $ra,0x74($sp) +/* f06ceec: afb70070 */ sw $s7,0x70($sp) +/* f06cef0: afb6006c */ sw $s6,0x6c($sp) +/* f06cef4: afb50068 */ sw $s5,0x68($sp) +/* f06cef8: afb40064 */ sw $s4,0x64($sp) +/* f06cefc: afb30060 */ sw $s3,0x60($sp) +/* f06cf00: afb2005c */ sw $s2,0x5c($sp) +/* f06cf04: afb10058 */ sw $s1,0x58($sp) +/* f06cf08: afb00054 */ sw $s0,0x54($sp) +/* f06cf0c: f7b60048 */ sdc1 $f22,0x48($sp) +/* f06cf10: f7b40040 */ sdc1 $f20,0x40($sp) +/* f06cf14: afa60210 */ sw $a2,0x210($sp) +/* f06cf18: 8c920014 */ lw $s2,0x14($a0) +/* f06cf1c: 240e0001 */ li $t6,0x1 +/* f06cf20: 00a08025 */ move $s0,$a1 +/* f06cf24: 00e0a025 */ move $s4,$a3 +/* f06cf28: 0080b825 */ move $s7,$a0 +/* f06cf2c: 11e00003 */ beqz $t7,.PB0f06cf3c +/* f06cf30: afae0200 */ sw $t6,0x200($sp) +/* f06cf34: 24180001 */ li $t8,0x1 +/* f06cf38: ac58048c */ sw $t8,0x48c($v0) +.PB0f06cf3c: +/* f06cf3c: 3c018007 */ lui $at,0x8007 +/* f06cf40: ac20b000 */ sw $zero,-0x5000($at) +/* f06cf44: 3c018007 */ lui $at,0x8007 +/* f06cf48: ac20b014 */ sw $zero,-0x4fec($at) +/* f06cf4c: c6040000 */ lwc1 $f4,0x0($s0) +/* f06cf50: e7a401c4 */ swc1 $f4,0x1c4($sp) +/* f06cf54: c6060004 */ lwc1 $f6,0x4($s0) +/* f06cf58: e7a601c8 */ swc1 $f6,0x1c8($sp) +/* f06cf5c: c6080008 */ lwc1 $f8,0x8($s0) +/* f06cf60: e7a801cc */ swc1 $f8,0x1cc($sp) +/* f06cf64: c6500008 */ lwc1 $f16,0x8($s2) +/* f06cf68: c60a0000 */ lwc1 $f10,0x0($s0) +/* f06cf6c: 46105032 */ c.eq.s $f10,$f16 +/* f06cf70: 00000000 */ nop +/* f06cf74: 4502000e */ bc1fl .PB0f06cfb0 +/* f06cf78: 8ef90040 */ lw $t9,0x40($s7) +/* f06cf7c: c6120004 */ lwc1 $f18,0x4($s0) +/* f06cf80: c644000c */ lwc1 $f4,0xc($s2) +/* f06cf84: 46049032 */ c.eq.s $f18,$f4 +/* f06cf88: 00000000 */ nop +/* f06cf8c: 45020008 */ bc1fl .PB0f06cfb0 +/* f06cf90: 8ef90040 */ lw $t9,0x40($s7) +/* f06cf94: c6060008 */ lwc1 $f6,0x8($s0) +/* f06cf98: c6480010 */ lwc1 $f8,0x10($s2) +/* f06cf9c: 46083032 */ c.eq.s $f6,$f8 +/* f06cfa0: 00000000 */ nop +/* f06cfa4: 45010157 */ bc1t .PB0f06d504 +/* f06cfa8: 00000000 */ nop +/* f06cfac: 8ef90040 */ lw $t9,0x40($s7) +.PB0f06cfb0: +/* f06cfb0: 33280080 */ andi $t0,$t9,0x80 +/* f06cfb4: 11000153 */ beqz $t0,.PB0f06d504 +/* f06cfb8: 00000000 */ nop +/* f06cfbc: 8ee90048 */ lw $t1,0x48($s7) +/* f06cfc0: 26550008 */ addiu $s5,$s2,0x8 +/* f06cfc4: 02a02025 */ move $a0,$s5 +/* f06cfc8: 8d2a0000 */ lw $t2,0x0($t1) +/* f06cfcc: 27a501c4 */ addiu $a1,$sp,0x1c4 +/* f06cfd0: 26460028 */ addiu $a2,$s2,0x28 +/* f06cfd4: 314b0004 */ andi $t3,$t2,0x4 +/* f06cfd8: 1160014a */ beqz $t3,.PB0f06d504 +/* f06cfdc: 27a700b8 */ addiu $a3,$sp,0xb8 +/* f06cfe0: 27ac00cc */ addiu $t4,$sp,0xcc +/* f06cfe4: 240d0014 */ li $t5,0x14 +/* f06cfe8: afad0014 */ sw $t5,0x14($sp) +/* f06cfec: afac0010 */ sw $t4,0x10($sp) +/* f06cff0: 0c0062e6 */ jal 0x18b98 +/* f06cff4: afb0020c */ sw $s0,0x20c($sp) +/* f06cff8: 87ae00cc */ lh $t6,0xcc($sp) +/* f06cffc: 2416ffff */ li $s6,-1 +/* f06d000: 27a400cc */ addiu $a0,$sp,0xcc +/* f06d004: 12ce0005 */ beq $s6,$t6,.PB0f06d01c +/* f06d008: 00000000 */ nop +/* f06d00c: 848f0002 */ lh $t7,0x2($a0) +.PB0f06d010: +/* f06d010: 24840002 */ addiu $a0,$a0,0x2 +/* f06d014: 56cffffe */ bnel $s6,$t7,.PB0f06d010 +/* f06d018: 848f0002 */ lh $t7,0x2($a0) +.PB0f06d01c: +/* f06d01c: 0fc596e9 */ jal 0xf165ba4 +/* f06d020: 24050064 */ li $a1,0x64 +/* f06d024: 87b800cc */ lh $t8,0xcc($sp) +/* f06d028: 27b100cc */ addiu $s1,$sp,0xcc +/* f06d02c: 3c013f80 */ lui $at,0x3f80 +/* f06d030: 12d800d1 */ beq $s6,$t8,.PB0f06d378 +/* f06d034: 27b301d0 */ addiu $s3,$sp,0x1d0 +/* f06d038: 4481b000 */ mtc1 $at,$f22 +/* f06d03c: 3c01bf80 */ lui $at,0xbf80 +/* f06d040: 4481a000 */ mtc1 $at,$f20 +/* f06d044: 86240000 */ lh $a0,0x0($s1) +.PB0f06d048: +/* f06d048: 0fc58c49 */ jal 0xf163124 +/* f06d04c: 00008025 */ move $s0,$zero +/* f06d050: 10400045 */ beqz $v0,.PB0f06d168 +/* f06d054: 02a02025 */ move $a0,$s5 +/* f06d058: 02a02025 */ move $a0,$s5 +/* f06d05c: 27a501c4 */ addiu $a1,$sp,0x1c4 +/* f06d060: 86260000 */ lh $a2,0x0($s1) +/* f06d064: 0fc58ae4 */ jal 0xf162b90 +/* f06d068: 02603825 */ move $a3,$s3 +/* f06d06c: 1040004e */ beqz $v0,.PB0f06d1a8 +/* f06d070: c7aa01d0 */ lwc1 $f10,0x1d0($sp) +/* f06d074: 46165402 */ mul.s $f16,$f10,$f22 +/* f06d078: c7b201d4 */ lwc1 $f18,0x1d4($sp) +/* f06d07c: c7a601d8 */ lwc1 $f6,0x1d8($sp) +/* f06d080: 87a801fa */ lh $t0,0x1fa($sp) +/* f06d084: 46169102 */ mul.s $f4,$f18,$f22 +/* f06d088: 3c09800b */ lui $t1,0x800b +/* f06d08c: 8d29f1e0 */ lw $t1,-0xe20($t1) +/* f06d090: 46163202 */ mul.s $f8,$f6,$f22 +/* f06d094: 3c018007 */ lui $at,0x8007 +/* f06d098: 000850c0 */ sll $t2,$t0,0x3 +/* f06d09c: e7b001d0 */ swc1 $f16,0x1d0($sp) +/* f06d0a0: e7a401d4 */ swc1 $f4,0x1d4($sp) +/* f06d0a4: ac28b014 */ sw $t0,-0x4fec($at) +/* f06d0a8: 012a5821 */ addu $t3,$t1,$t2 +/* f06d0ac: e7a801d8 */ swc1 $f8,0x1d8($sp) +/* f06d0b0: 916c0000 */ lbu $t4,0x0($t3) +/* f06d0b4: 2401000e */ li $at,0xe +/* f06d0b8: 24100001 */ li $s0,0x1 +/* f06d0bc: 318d000f */ andi $t5,$t4,0xf +/* f06d0c0: 15a10039 */ bne $t5,$at,.PB0f06d1a8 +/* f06d0c4: 3c0e8007 */ lui $t6,0x8007 +/* f06d0c8: 25ceb0b4 */ addiu $t6,$t6,-20300 +/* f06d0cc: 8dc10000 */ lw $at,0x0($t6) +/* f06d0d0: 27a700a4 */ addiu $a3,$sp,0xa4 +/* f06d0d4: 27b901dc */ addiu $t9,$sp,0x1dc +/* f06d0d8: ace10000 */ sw $at,0x0($a3) +/* f06d0dc: 8dd80004 */ lw $t8,0x4($t6) +/* f06d0e0: 2408001a */ li $t0,0x1a +/* f06d0e4: 00008025 */ move $s0,$zero +/* f06d0e8: acf80004 */ sw $t8,0x4($a3) +/* f06d0ec: 8dc10008 */ lw $at,0x8($t6) +/* f06d0f0: 02402825 */ move $a1,$s2 +/* f06d0f4: 02603025 */ move $a2,$s3 +/* f06d0f8: ace10008 */ sw $at,0x8($a3) +/* f06d0fc: 86440028 */ lh $a0,0x28($s2) +/* f06d100: afa80014 */ sw $t0,0x14($sp) +/* f06d104: 0fc4c3dd */ jal 0xf130f74 +/* f06d108: afb90010 */ sw $t9,0x10($sp) +/* f06d10c: 00163c00 */ sll $a3,$s6,0x10 +/* f06d110: 00074c03 */ sra $t1,$a3,0x10 +/* f06d114: 240a0400 */ li $t2,0x400 +/* f06d118: afaa0014 */ sw $t2,0x14($sp) +/* f06d11c: 01203825 */ move $a3,$t1 +/* f06d120: 00002025 */ move $a0,$zero +/* f06d124: 02402825 */ move $a1,$s2 +/* f06d128: 24068080 */ li $a2,-32640 +/* f06d12c: afb60010 */ sw $s6,0x10($sp) +/* f06d130: afa00018 */ sw $zero,0x18($sp) +/* f06d134: afa0001c */ sw $zero,0x1c($sp) +/* f06d138: afa00020 */ sw $zero,0x20($sp) +/* f06d13c: e7b40024 */ swc1 $f20,0x24($sp) +/* f06d140: afa00028 */ sw $zero,0x28($sp) +/* f06d144: afb6002c */ sw $s6,0x2c($sp) +/* f06d148: e7b40030 */ swc1 $f20,0x30($sp) +/* f06d14c: e7b40034 */ swc1 $f20,0x34($sp) +/* f06d150: 0fc24e0e */ jal 0xf093838 +/* f06d154: e7b40038 */ swc1 $f20,0x38($sp) +/* f06d158: 8eeb0040 */ lw $t3,0x40($s7) +/* f06d15c: 356c0004 */ ori $t4,$t3,0x4 +/* f06d160: 10000011 */ b .PB0f06d1a8 +/* f06d164: aeec0040 */ sw $t4,0x40($s7) +.PB0f06d168: +/* f06d168: 862d0000 */ lh $t5,0x0($s1) +/* f06d16c: a7b600a2 */ sh $s6,0xa2($sp) +/* f06d170: 27a500a0 */ addiu $a1,$sp,0xa0 +/* f06d174: 27a601c4 */ addiu $a2,$sp,0x1c4 +/* f06d178: 24070020 */ li $a3,0x20 +/* f06d17c: 0c00b8f4 */ jal 0x2e3d0 +/* f06d180: a7ad00a0 */ sh $t5,0xa0($sp) +/* f06d184: 14400008 */ bnez $v0,.PB0f06d1a8 +/* f06d188: 02602025 */ move $a0,$s3 +/* f06d18c: 3c067f1b */ lui $a2,0x7f1b +/* f06d190: 24100001 */ li $s0,0x1 +/* f06d194: 24c6bc88 */ addiu $a2,$a2,-17272 +/* f06d198: 0c00951f */ jal 0x2547c +/* f06d19c: 240510a2 */ li $a1,0x10a2 +/* f06d1a0: 0c00952a */ jal 0x254a8 +/* f06d1a4: 27a401dc */ addiu $a0,$sp,0x1dc +.PB0f06d1a8: +/* f06d1a8: 1200006f */ beqz $s0,.PB0f06d368 +/* f06d1ac: c7aa01c4 */ lwc1 $f10,0x1c4($sp) +/* f06d1b0: c64c0008 */ lwc1 $f12,0x8($s2) +/* f06d1b4: c7b001d0 */ lwc1 $f16,0x1d0($sp) +/* f06d1b8: c7b201c4 */ lwc1 $f18,0x1c4($sp) +/* f06d1bc: 460a603e */ c.le.s $f12,$f10 +/* f06d1c0: 00000000 */ nop +/* f06d1c4: 4502000a */ bc1fl .PB0f06d1f0 +/* f06d1c8: 460c903e */ c.le.s $f18,$f12 +/* f06d1cc: 460a803e */ c.le.s $f16,$f10 +/* f06d1d0: 00000000 */ nop +/* f06d1d4: 45020006 */ bc1fl .PB0f06d1f0 +/* f06d1d8: 460c903e */ c.le.s $f18,$f12 +/* f06d1dc: 4610603e */ c.le.s $f12,$f16 +/* f06d1e0: 00000000 */ nop +/* f06d1e4: 4503000e */ bc1tl .PB0f06d220 +/* f06d1e8: c642000c */ lwc1 $f2,0xc($s2) +/* f06d1ec: 460c903e */ c.le.s $f18,$f12 +.PB0f06d1f0: +/* f06d1f0: c7a401d0 */ lwc1 $f4,0x1d0($sp) +/* f06d1f4: 4502005d */ bc1fl .PB0f06d36c +/* f06d1f8: 86240002 */ lh $a0,0x2($s1) +/* f06d1fc: 4604903e */ c.le.s $f18,$f4 +/* f06d200: 00000000 */ nop +/* f06d204: 45020059 */ bc1fl .PB0f06d36c +/* f06d208: 86240002 */ lh $a0,0x2($s1) +/* f06d20c: 460c203e */ c.le.s $f4,$f12 +/* f06d210: 00000000 */ nop +/* f06d214: 45020055 */ bc1fl .PB0f06d36c +/* f06d218: 86240002 */ lh $a0,0x2($s1) +/* f06d21c: c642000c */ lwc1 $f2,0xc($s2) +.PB0f06d220: +/* f06d220: c7a601c8 */ lwc1 $f6,0x1c8($sp) +/* f06d224: c7a801d4 */ lwc1 $f8,0x1d4($sp) +/* f06d228: c7aa01c8 */ lwc1 $f10,0x1c8($sp) +/* f06d22c: 4606103e */ c.le.s $f2,$f6 +/* f06d230: 00000000 */ nop +/* f06d234: 4502000a */ bc1fl .PB0f06d260 +/* f06d238: 4602503e */ c.le.s $f10,$f2 +/* f06d23c: 4606403e */ c.le.s $f8,$f6 +/* f06d240: 00000000 */ nop +/* f06d244: 45020006 */ bc1fl .PB0f06d260 +/* f06d248: 4602503e */ c.le.s $f10,$f2 +/* f06d24c: 4608103e */ c.le.s $f2,$f8 +/* f06d250: 00000000 */ nop +/* f06d254: 4503000e */ bc1tl .PB0f06d290 +/* f06d258: c6400010 */ lwc1 $f0,0x10($s2) +/* f06d25c: 4602503e */ c.le.s $f10,$f2 +.PB0f06d260: +/* f06d260: c7b001d4 */ lwc1 $f16,0x1d4($sp) +/* f06d264: 45020041 */ bc1fl .PB0f06d36c +/* f06d268: 86240002 */ lh $a0,0x2($s1) +/* f06d26c: 4610503e */ c.le.s $f10,$f16 +/* f06d270: 00000000 */ nop +/* f06d274: 4502003d */ bc1fl .PB0f06d36c +/* f06d278: 86240002 */ lh $a0,0x2($s1) +/* f06d27c: 4602803e */ c.le.s $f16,$f2 +/* f06d280: 00000000 */ nop +/* f06d284: 45020039 */ bc1fl .PB0f06d36c +/* f06d288: 86240002 */ lh $a0,0x2($s1) +/* f06d28c: c6400010 */ lwc1 $f0,0x10($s2) +.PB0f06d290: +/* f06d290: c7b201cc */ lwc1 $f18,0x1cc($sp) +/* f06d294: c7a401d8 */ lwc1 $f4,0x1d8($sp) +/* f06d298: c7a601cc */ lwc1 $f6,0x1cc($sp) +/* f06d29c: 4612003e */ c.le.s $f0,$f18 +/* f06d2a0: 00000000 */ nop +/* f06d2a4: 4502000a */ bc1fl .PB0f06d2d0 +/* f06d2a8: 4600303e */ c.le.s $f6,$f0 +/* f06d2ac: 4612203e */ c.le.s $f4,$f18 +/* f06d2b0: 00000000 */ nop +/* f06d2b4: 45020006 */ bc1fl .PB0f06d2d0 +/* f06d2b8: 4600303e */ c.le.s $f6,$f0 +/* f06d2bc: 4604003e */ c.le.s $f0,$f4 +/* f06d2c0: 00000000 */ nop +/* f06d2c4: 4503000e */ bc1tl .PB0f06d300 +/* f06d2c8: c7aa01d0 */ lwc1 $f10,0x1d0($sp) +/* f06d2cc: 4600303e */ c.le.s $f6,$f0 +.PB0f06d2d0: +/* f06d2d0: c7a801d8 */ lwc1 $f8,0x1d8($sp) +/* f06d2d4: 45020025 */ bc1fl .PB0f06d36c +/* f06d2d8: 86240002 */ lh $a0,0x2($s1) +/* f06d2dc: 4608303e */ c.le.s $f6,$f8 +/* f06d2e0: 00000000 */ nop +/* f06d2e4: 45020021 */ bc1fl .PB0f06d36c +/* f06d2e8: 86240002 */ lh $a0,0x2($s1) +/* f06d2ec: 4600403e */ c.le.s $f8,$f0 +/* f06d2f0: 00000000 */ nop +/* f06d2f4: 4502001d */ bc1fl .PB0f06d36c +/* f06d2f8: 86240002 */ lh $a0,0x2($s1) +/* f06d2fc: c7aa01d0 */ lwc1 $f10,0x1d0($sp) +.PB0f06d300: +/* f06d300: c7b001d4 */ lwc1 $f16,0x1d4($sp) +/* f06d304: 460a6032 */ c.eq.s $f12,$f10 +/* f06d308: 00000000 */ nop +/* f06d30c: 4502000a */ bc1fl .PB0f06d338 +/* f06d310: c7a401d0 */ lwc1 $f4,0x1d0($sp) +/* f06d314: 46101032 */ c.eq.s $f2,$f16 +/* f06d318: c7b201d8 */ lwc1 $f18,0x1d8($sp) +/* f06d31c: 45020006 */ bc1fl .PB0f06d338 +/* f06d320: c7a401d0 */ lwc1 $f4,0x1d0($sp) +/* f06d324: 46120032 */ c.eq.s $f0,$f18 +/* f06d328: 00000000 */ nop +/* f06d32c: 4503000f */ bc1tl .PB0f06d36c +/* f06d330: 86240002 */ lh $a0,0x2($s1) +/* f06d334: c7a401d0 */ lwc1 $f4,0x1d0($sp) +.PB0f06d338: +/* f06d338: c7a601d4 */ lwc1 $f6,0x1d4($sp) +/* f06d33c: c7a801d8 */ lwc1 $f8,0x1d8($sp) +/* f06d340: c7aa01dc */ lwc1 $f10,0x1dc($sp) +/* f06d344: afa00200 */ sw $zero,0x200($sp) +/* f06d348: e7a401c4 */ swc1 $f4,0x1c4($sp) +/* f06d34c: e7a601c8 */ swc1 $f6,0x1c8($sp) +/* f06d350: e7a801cc */ swc1 $f8,0x1cc($sp) +/* f06d354: e68a0000 */ swc1 $f10,0x0($s4) +/* f06d358: c7b001e0 */ lwc1 $f16,0x1e0($sp) +/* f06d35c: e6900004 */ swc1 $f16,0x4($s4) +/* f06d360: c7b201e4 */ lwc1 $f18,0x1e4($sp) +/* f06d364: e6920008 */ swc1 $f18,0x8($s4) +.PB0f06d368: +/* f06d368: 86240002 */ lh $a0,0x2($s1) +.PB0f06d36c: +/* f06d36c: 26310002 */ addiu $s1,$s1,0x2 +/* f06d370: 16c4ff35 */ bne $s6,$a0,.PB0f06d048 +/* f06d374: 00000000 */ nop +.PB0f06d378: +/* f06d378: 8faf0210 */ lw $t7,0x210($sp) +/* f06d37c: 3c013f80 */ lui $at,0x3f80 +/* f06d380: 4481b000 */ mtc1 $at,$f22 +/* f06d384: 27ae00cc */ addiu $t6,$sp,0xcc +/* f06d388: afae0018 */ sw $t6,0x18($sp) +/* f06d38c: 02402025 */ move $a0,$s2 +/* f06d390: 02a02825 */ move $a1,$s5 +/* f06d394: 27a601c4 */ addiu $a2,$sp,0x1c4 +/* f06d398: 2407003f */ li $a3,0x3f +/* f06d39c: afb40014 */ sw $s4,0x14($sp) +/* f06d3a0: 0fc1b2a1 */ jal 0xf06ca84 +/* f06d3a4: afaf0010 */ sw $t7,0x10($sp) +/* f06d3a8: 1440000a */ bnez $v0,.PB0f06d3d4 +/* f06d3ac: 8fb80200 */ lw $t8,0x200($sp) +/* f06d3b0: 17000009 */ bnez $t8,.PB0f06d3d8 +/* f06d3b4: c7a401c4 */ lwc1 $f4,0x1c4($sp) +/* f06d3b8: 8fb90210 */ lw $t9,0x210($sp) +/* f06d3bc: e7240000 */ swc1 $f4,0x0($t9) +/* f06d3c0: c7a601c8 */ lwc1 $f6,0x1c8($sp) +/* f06d3c4: e7260004 */ swc1 $f6,0x4($t9) +/* f06d3c8: c7a801cc */ lwc1 $f8,0x1cc($sp) +/* f06d3cc: 10000002 */ b .PB0f06d3d8 +/* f06d3d0: e7280008 */ swc1 $f8,0x8($t9) +.PB0f06d3d4: +/* f06d3d4: afa00200 */ sw $zero,0x200($sp) +.PB0f06d3d8: +/* f06d3d8: 8fa80200 */ lw $t0,0x200($sp) +/* f06d3dc: 24010001 */ li $at,0x1 +/* f06d3e0: 8fa2020c */ lw $v0,0x20c($sp) +/* f06d3e4: 11010047 */ beq $t0,$at,.PB0f06d504 +/* f06d3e8: 00000000 */ nop +/* f06d3ec: c44a0000 */ lwc1 $f10,0x0($v0) +/* f06d3f0: c6500008 */ lwc1 $f16,0x8($s2) +/* f06d3f4: 46105481 */ sub.s $f18,$f10,$f16 +/* f06d3f8: e7b20094 */ swc1 $f18,0x94($sp) +/* f06d3fc: c646000c */ lwc1 $f6,0xc($s2) +/* f06d400: c4440004 */ lwc1 $f4,0x4($v0) +/* f06d404: 46062201 */ sub.s $f8,$f4,$f6 +/* f06d408: c7a40094 */ lwc1 $f4,0x94($sp) +/* f06d40c: e7a80098 */ swc1 $f8,0x98($sp) +/* f06d410: c6500010 */ lwc1 $f16,0x10($s2) +/* f06d414: c44a0008 */ lwc1 $f10,0x8($v0) +/* f06d418: 46042182 */ mul.s $f6,$f4,$f4 +/* f06d41c: c7a80098 */ lwc1 $f8,0x98($sp) +/* f06d420: 46105481 */ sub.s $f18,$f10,$f16 +/* f06d424: 46084282 */ mul.s $f10,$f8,$f8 +/* f06d428: e7b2009c */ swc1 $f18,0x9c($sp) +/* f06d42c: c7b2009c */ lwc1 $f18,0x9c($sp) +/* f06d430: 46129102 */ mul.s $f4,$f18,$f18 +/* f06d434: 460a3400 */ add.s $f16,$f6,$f10 +/* f06d438: 0c012ae4 */ jal 0x4ab90 +/* f06d43c: 46102300 */ add.s $f12,$f4,$f16 +/* f06d440: 3c017f1b */ lui $at,0x7f1b +/* f06d444: c42cbf5c */ lwc1 $f12,-0x40a4($at) +/* f06d448: 3c013f00 */ lui $at,0x3f00 +/* f06d44c: c7a60094 */ lwc1 $f6,0x94($sp) +/* f06d450: 4600603c */ c.lt.s $f12,$f0 +/* f06d454: 02802025 */ move $a0,$s4 +/* f06d458: 26850004 */ addiu $a1,$s4,0x4 +/* f06d45c: 45020004 */ bc1fl .PB0f06d470 +/* f06d460: 44811000 */ mtc1 $at,$f2 +/* f06d464: 10000003 */ b .PB0f06d474 +/* f06d468: 46006083 */ div.s $f2,$f12,$f0 +/* f06d46c: 44811000 */ mtc1 $at,$f2 +.PB0f06d470: +/* f06d470: 00000000 */ nop +.PB0f06d474: +/* f06d474: 46061282 */ mul.s $f10,$f2,$f6 +/* f06d478: 8fa20210 */ lw $v0,0x210($sp) +/* f06d47c: 44800000 */ mtc1 $zero,$f0 +/* f06d480: c4480000 */ lwc1 $f8,0x0($v0) +/* f06d484: c4440004 */ lwc1 $f4,0x4($v0) +/* f06d488: 460a4481 */ sub.s $f18,$f8,$f10 +/* f06d48c: c44a0008 */ lwc1 $f10,0x8($v0) +/* f06d490: e4520000 */ swc1 $f18,0x0($v0) +/* f06d494: c7b00098 */ lwc1 $f16,0x98($sp) +/* f06d498: 46101182 */ mul.s $f6,$f2,$f16 +/* f06d49c: 46062201 */ sub.s $f8,$f4,$f6 +/* f06d4a0: e4480004 */ swc1 $f8,0x4($v0) +/* f06d4a4: c7b2009c */ lwc1 $f18,0x9c($sp) +/* f06d4a8: 46121402 */ mul.s $f16,$f2,$f18 +/* f06d4ac: 46105101 */ sub.s $f4,$f10,$f16 +/* f06d4b0: e4440008 */ swc1 $f4,0x8($v0) +/* f06d4b4: c6860000 */ lwc1 $f6,0x0($s4) +/* f06d4b8: 46060032 */ c.eq.s $f0,$f6 +/* f06d4bc: 00000000 */ nop +/* f06d4c0: 4500000b */ bc1f .PB0f06d4f0 +/* f06d4c4: 00000000 */ nop +/* f06d4c8: c6880004 */ lwc1 $f8,0x4($s4) +/* f06d4cc: 46080032 */ c.eq.s $f0,$f8 +/* f06d4d0: 00000000 */ nop +/* f06d4d4: 45000006 */ bc1f .PB0f06d4f0 +/* f06d4d8: 00000000 */ nop +/* f06d4dc: c6920008 */ lwc1 $f18,0x8($s4) +/* f06d4e0: 46120032 */ c.eq.s $f0,$f18 +/* f06d4e4: 00000000 */ nop +/* f06d4e8: 45030006 */ bc1tl .PB0f06d504 +/* f06d4ec: e6960008 */ swc1 $f22,0x8($s4) +.PB0f06d4f0: +/* f06d4f0: 0c0011d8 */ jal 0x4760 +/* f06d4f4: 26860008 */ addiu $a2,$s4,0x8 +/* f06d4f8: 10000002 */ b .PB0f06d504 +/* f06d4fc: 00000000 */ nop +/* f06d500: e6960008 */ swc1 $f22,0x8($s4) +.PB0f06d504: +/* f06d504: 3c02800a */ lui $v0,0x800a +/* f06d508: 2442e4d0 */ addiu $v0,$v0,-6960 +/* f06d50c: 8c490318 */ lw $t1,0x318($v0) +/* f06d510: 51200003 */ beqzl $t1,.PB0f06d520 +/* f06d514: 8fbf0074 */ lw $ra,0x74($sp) +/* f06d518: ac40048c */ sw $zero,0x48c($v0) +/* f06d51c: 8fbf0074 */ lw $ra,0x74($sp) +.PB0f06d520: +/* f06d520: 8fa20200 */ lw $v0,0x200($sp) +/* f06d524: d7b40040 */ ldc1 $f20,0x40($sp) +/* f06d528: d7b60048 */ ldc1 $f22,0x48($sp) +/* f06d52c: 8fb00054 */ lw $s0,0x54($sp) +/* f06d530: 8fb10058 */ lw $s1,0x58($sp) +/* f06d534: 8fb2005c */ lw $s2,0x5c($sp) +/* f06d538: 8fb30060 */ lw $s3,0x60($sp) +/* f06d53c: 8fb40064 */ lw $s4,0x64($sp) +/* f06d540: 8fb50068 */ lw $s5,0x68($sp) +/* f06d544: 8fb6006c */ lw $s6,0x6c($sp) +/* f06d548: 8fb70070 */ lw $s7,0x70($sp) +/* f06d54c: 03e00008 */ jr $ra +/* f06d550: 27bd0208 */ addiu $sp,$sp,0x208 +); #elif VERSION >= VERSION_NTSC_1_0 GLOBAL_ASM( glabel func0f06cd00 @@ -10244,6 +10798,397 @@ glabel var7f1aa26c /* f06d904: 03e00008 */ jr $ra /* f06d908: 27bd00a8 */ addiu $sp,$sp,0xa8 ); +#elif VERSION >= VERSION_PAL_BETA +GLOBAL_ASM( +glabel func0f06d37c +.late_rodata +glabel var7f1aa26c +.word 0x3f7d70a4 +.text +/* f06d554: 27bdff58 */ addiu $sp,$sp,-168 +/* f06d558: afbf0034 */ sw $ra,0x34($sp) +/* f06d55c: afb10030 */ sw $s1,0x30($sp) +/* f06d560: afb0002c */ sw $s0,0x2c($sp) +/* f06d564: afa700b4 */ sw $a3,0xb4($sp) +/* f06d568: 8c900014 */ lw $s0,0x14($a0) +/* f06d56c: 00c08825 */ move $s1,$a2 +/* f06d570: afa500ac */ sw $a1,0xac($sp) +/* f06d574: 0fc1ad51 */ jal 0xf06b544 +/* f06d578: afa400a8 */ sw $a0,0xa8($sp) +/* f06d57c: 3c018007 */ lui $at,0x8007 +/* f06d580: 8fa500ac */ lw $a1,0xac($sp) +/* f06d584: ac20b000 */ sw $zero,-0x5000($at) +/* f06d588: 240e0001 */ li $t6,0x1 +/* f06d58c: 3c018007 */ lui $at,0x8007 +/* f06d590: afae009c */ sw $t6,0x9c($sp) +/* f06d594: afa00098 */ sw $zero,0x98($sp) +/* f06d598: ac20b014 */ sw $zero,-0x4fec($at) +/* f06d59c: c4a40000 */ lwc1 $f4,0x0($a1) +/* f06d5a0: 46000086 */ mov.s $f2,$f0 +/* f06d5a4: 8faf00a8 */ lw $t7,0xa8($sp) +/* f06d5a8: e7a40080 */ swc1 $f4,0x80($sp) +/* f06d5ac: c4a60004 */ lwc1 $f6,0x4($a1) +/* f06d5b0: e7a60084 */ swc1 $f6,0x84($sp) +/* f06d5b4: c4a80008 */ lwc1 $f8,0x8($a1) +/* f06d5b8: e7a80088 */ swc1 $f8,0x88($sp) +/* f06d5bc: c6100008 */ lwc1 $f16,0x8($s0) +/* f06d5c0: c4aa0000 */ lwc1 $f10,0x0($a1) +/* f06d5c4: 46105032 */ c.eq.s $f10,$f16 +/* f06d5c8: 00000000 */ nop +/* f06d5cc: 4502000e */ bc1fl .PB0f06d608 +/* f06d5d0: 8df80040 */ lw $t8,0x40($t7) +/* f06d5d4: c4b20004 */ lwc1 $f18,0x4($a1) +/* f06d5d8: c604000c */ lwc1 $f4,0xc($s0) +/* f06d5dc: 46049032 */ c.eq.s $f18,$f4 +/* f06d5e0: 00000000 */ nop +/* f06d5e4: 45020008 */ bc1fl .PB0f06d608 +/* f06d5e8: 8df80040 */ lw $t8,0x40($t7) +/* f06d5ec: c4a60008 */ lwc1 $f6,0x8($a1) +/* f06d5f0: c6080010 */ lwc1 $f8,0x10($s0) +/* f06d5f4: 46083032 */ c.eq.s $f6,$f8 +/* f06d5f8: 00000000 */ nop +/* f06d5fc: 45030134 */ bc1tl .PB0f06dad0 +/* f06d600: 8fbf0034 */ lw $ra,0x34($sp) +/* f06d604: 8df80040 */ lw $t8,0x40($t7) +.PB0f06d608: +/* f06d608: 26040008 */ addiu $a0,$s0,0x8 +/* f06d60c: 26050028 */ addiu $a1,$s0,0x28 +/* f06d610: 33190080 */ andi $t9,$t8,0x80 +/* f06d614: 1320012d */ beqz $t9,.PB0f06dacc +/* f06d618: 27a60080 */ addiu $a2,$sp,0x80 +/* f06d61c: 44800000 */ mtc1 $zero,$f0 +/* f06d620: 2408003f */ li $t0,0x3f +/* f06d624: afa80014 */ sw $t0,0x14($sp) +/* f06d628: 27a70070 */ addiu $a3,$sp,0x70 +/* f06d62c: e7a20010 */ swc1 $f2,0x10($sp) +/* f06d630: afa00018 */ sw $zero,0x18($sp) +/* f06d634: afa40040 */ sw $a0,0x40($sp) +/* f06d638: afa5003c */ sw $a1,0x3c($sp) +/* f06d63c: e7a200a0 */ swc1 $f2,0xa0($sp) +/* f06d640: e7a0001c */ swc1 $f0,0x1c($sp) +/* f06d644: 0c00b822 */ jal 0x2e088 +/* f06d648: e7a00020 */ swc1 $f0,0x20($sp) +/* f06d64c: 10400020 */ beqz $v0,.PB0f06d6d0 +/* f06d650: 8fa400a8 */ lw $a0,0xa8($sp) +/* f06d654: 27a50080 */ addiu $a1,$sp,0x80 +/* f06d658: 2486001c */ addiu $a2,$a0,0x1c +/* f06d65c: 0fc24863 */ jal 0xf09218c +/* f06d660: 27a70070 */ addiu $a3,$sp,0x70 +/* f06d664: 44800000 */ mtc1 $zero,$f0 +/* f06d668: 2409003f */ li $t1,0x3f +/* f06d66c: afa90010 */ sw $t1,0x10($sp) +/* f06d670: 8fa40040 */ lw $a0,0x40($sp) +/* f06d674: 27a50080 */ addiu $a1,$sp,0x80 +/* f06d678: 8fa600a0 */ lw $a2,0xa0($sp) +/* f06d67c: 27a70070 */ addiu $a3,$sp,0x70 +/* f06d680: afa00014 */ sw $zero,0x14($sp) +/* f06d684: e7a00018 */ swc1 $f0,0x18($sp) +/* f06d688: 0c00abec */ jal 0x2afb0 +/* f06d68c: e7a0001c */ swc1 $f0,0x1c($sp) +/* f06d690: 1040000d */ beqz $v0,.PB0f06d6c8 +/* f06d694: c7aa0080 */ lwc1 $f10,0x80($sp) +/* f06d698: e60a0008 */ swc1 $f10,0x8($s0) +/* f06d69c: c7b00084 */ lwc1 $f16,0x84($sp) +/* f06d6a0: 02002025 */ move $a0,$s0 +/* f06d6a4: e610000c */ swc1 $f16,0xc($s0) +/* f06d6a8: c7b20088 */ lwc1 $f18,0x88($sp) +/* f06d6ac: 0fc19789 */ jal 0xf065e24 +/* f06d6b0: e6120010 */ swc1 $f18,0x10($s0) +/* f06d6b4: 27a40070 */ addiu $a0,$sp,0x70 +/* f06d6b8: 0fc19661 */ jal 0xf065984 +/* f06d6bc: 8fa5003c */ lw $a1,0x3c($sp) +/* f06d6c0: 10000005 */ b .PB0f06d6d8 +/* f06d6c4: 8faa009c */ lw $t2,0x9c($sp) +.PB0f06d6c8: +/* f06d6c8: 10000002 */ b .PB0f06d6d4 +/* f06d6cc: afa0009c */ sw $zero,0x9c($sp) +.PB0f06d6d0: +/* f06d6d0: afa0009c */ sw $zero,0x9c($sp) +.PB0f06d6d4: +/* f06d6d4: 8faa009c */ lw $t2,0x9c($sp) +.PB0f06d6d8: +/* f06d6d8: 27a40064 */ addiu $a0,$sp,0x64 +/* f06d6dc: 27a50058 */ addiu $a1,$sp,0x58 +/* f06d6e0: 154000fa */ bnez $t2,.PB0f06dacc +/* f06d6e4: 24061122 */ li $a2,0x1122 +/* f06d6e8: 3c077f1b */ lui $a3,0x7f1b +/* f06d6ec: 0c009503 */ jal 0x2540c +/* f06d6f0: 24e7bc94 */ addiu $a3,$a3,-17260 +/* f06d6f4: c7a40060 */ lwc1 $f4,0x60($sp) +/* f06d6f8: c7a6006c */ lwc1 $f6,0x6c($sp) +/* f06d6fc: 8fa400b4 */ lw $a0,0xb4($sp) +/* f06d700: 44800000 */ mtc1 $zero,$f0 +/* f06d704: 46062201 */ sub.s $f8,$f4,$f6 +/* f06d708: 24850004 */ addiu $a1,$a0,0x4 +/* f06d70c: e4800004 */ swc1 $f0,0x4($a0) +/* f06d710: e4880000 */ swc1 $f8,0x0($a0) +/* f06d714: c4840000 */ lwc1 $f4,0x0($a0) +/* f06d718: c7b00058 */ lwc1 $f16,0x58($sp) +/* f06d71c: c7aa0064 */ lwc1 $f10,0x64($sp) +/* f06d720: 46040032 */ c.eq.s $f0,$f4 +/* f06d724: 46105481 */ sub.s $f18,$f10,$f16 +/* f06d728: 45000007 */ bc1f .PB0f06d748 +/* f06d72c: e4920008 */ swc1 $f18,0x8($a0) +/* f06d730: c4860008 */ lwc1 $f6,0x8($a0) +/* f06d734: 3c013f80 */ lui $at,0x3f80 +/* f06d738: 46060032 */ c.eq.s $f0,$f6 +/* f06d73c: 00000000 */ nop +/* f06d740: 45030006 */ bc1tl .PB0f06d75c +/* f06d744: 44814000 */ mtc1 $at,$f8 +.PB0f06d748: +/* f06d748: 0c0011d8 */ jal 0x4760 +/* f06d74c: 24860008 */ addiu $a2,$a0,0x8 +/* f06d750: 10000005 */ b .PB0f06d768 +/* f06d754: c6020008 */ lwc1 $f2,0x8($s0) +/* f06d758: 44814000 */ mtc1 $at,$f8 +.PB0f06d75c: +/* f06d75c: 00000000 */ nop +/* f06d760: e4880008 */ swc1 $f8,0x8($a0) +/* f06d764: c6020008 */ lwc1 $f2,0x8($s0) +.PB0f06d768: +/* f06d768: c7aa0080 */ lwc1 $f10,0x80($sp) +/* f06d76c: c7b00084 */ lwc1 $f16,0x84($sp) +/* f06d770: c7a80080 */ lwc1 $f8,0x80($sp) +/* f06d774: 46025032 */ c.eq.s $f10,$f2 +/* f06d778: 00000000 */ nop +/* f06d77c: 4502000e */ bc1fl .PB0f06d7b8 +/* f06d780: 46024281 */ sub.s $f10,$f8,$f2 +/* f06d784: c612000c */ lwc1 $f18,0xc($s0) +/* f06d788: c7a40088 */ lwc1 $f4,0x88($sp) +/* f06d78c: 46128032 */ c.eq.s $f16,$f18 +/* f06d790: 00000000 */ nop +/* f06d794: 45020008 */ bc1fl .PB0f06d7b8 +/* f06d798: 46024281 */ sub.s $f10,$f8,$f2 +/* f06d79c: c6060010 */ lwc1 $f6,0x10($s0) +/* f06d7a0: c7aa0080 */ lwc1 $f10,0x80($sp) +/* f06d7a4: 46062032 */ c.eq.s $f4,$f6 +/* f06d7a8: 00000000 */ nop +/* f06d7ac: 450300ad */ bc1tl .PB0f06da64 +/* f06d7b0: e62a0000 */ swc1 $f10,0x0($s1) +/* f06d7b4: 46024281 */ sub.s $f10,$f8,$f2 +.PB0f06d7b8: +/* f06d7b8: c7b00084 */ lwc1 $f16,0x84($sp) +/* f06d7bc: c7a60088 */ lwc1 $f6,0x88($sp) +/* f06d7c0: 8fa40040 */ lw $a0,0x40($sp) +/* f06d7c4: e7aa008c */ swc1 $f10,0x8c($sp) +/* f06d7c8: c612000c */ lwc1 $f18,0xc($s0) +/* f06d7cc: 27a5008c */ addiu $a1,$sp,0x8c +/* f06d7d0: 02203025 */ move $a2,$s1 +/* f06d7d4: 46128101 */ sub.s $f4,$f16,$f18 +/* f06d7d8: e7a40090 */ swc1 $f4,0x90($sp) +/* f06d7dc: c6080010 */ lwc1 $f8,0x10($s0) +/* f06d7e0: 46083281 */ sub.s $f10,$f6,$f8 +/* f06d7e4: 0fc0b972 */ jal 0xf02e5c8 +/* f06d7e8: e7aa0094 */ swc1 $f10,0x94($sp) +/* f06d7ec: c6020008 */ lwc1 $f2,0x8($s0) +/* f06d7f0: c7b00080 */ lwc1 $f16,0x80($sp) +/* f06d7f4: 4610103c */ c.lt.s $f2,$f16 +/* f06d7f8: 00000000 */ nop +/* f06d7fc: 4502000f */ bc1fl .PB0f06d83c +/* f06d800: c6200000 */ lwc1 $f0,0x0($s1) +/* f06d804: c6200000 */ lwc1 $f0,0x0($s1) +/* f06d808: 4600803c */ c.lt.s $f16,$f0 +/* f06d80c: 00000000 */ nop +/* f06d810: 45020004 */ bc1fl .PB0f06d824 +/* f06d814: 4602003c */ c.lt.s $f0,$f2 +/* f06d818: 10000014 */ b .PB0f06d86c +/* f06d81c: e6300000 */ swc1 $f16,0x0($s1) +/* f06d820: 4602003c */ c.lt.s $f0,$f2 +.PB0f06d824: +/* f06d824: 00000000 */ nop +/* f06d828: 45020011 */ bc1fl .PB0f06d870 +/* f06d82c: c602000c */ lwc1 $f2,0xc($s0) +/* f06d830: 1000000e */ b .PB0f06d86c +/* f06d834: e6220000 */ swc1 $f2,0x0($s1) +/* f06d838: c6200000 */ lwc1 $f0,0x0($s1) +.PB0f06d83c: +/* f06d83c: c7b20080 */ lwc1 $f18,0x80($sp) +/* f06d840: 4600103c */ c.lt.s $f2,$f0 +/* f06d844: 00000000 */ nop +/* f06d848: 45020004 */ bc1fl .PB0f06d85c +/* f06d84c: 4612003c */ c.lt.s $f0,$f18 +/* f06d850: 10000006 */ b .PB0f06d86c +/* f06d854: e6220000 */ swc1 $f2,0x0($s1) +/* f06d858: 4612003c */ c.lt.s $f0,$f18 +.PB0f06d85c: +/* f06d85c: 00000000 */ nop +/* f06d860: 45020003 */ bc1fl .PB0f06d870 +/* f06d864: c602000c */ lwc1 $f2,0xc($s0) +/* f06d868: e6320000 */ swc1 $f18,0x0($s1) +.PB0f06d86c: +/* f06d86c: c602000c */ lwc1 $f2,0xc($s0) +.PB0f06d870: +/* f06d870: c7a40084 */ lwc1 $f4,0x84($sp) +/* f06d874: 4604103c */ c.lt.s $f2,$f4 +/* f06d878: 00000000 */ nop +/* f06d87c: 4502000f */ bc1fl .PB0f06d8bc +/* f06d880: c6200004 */ lwc1 $f0,0x4($s1) +/* f06d884: c6200004 */ lwc1 $f0,0x4($s1) +/* f06d888: 4600203c */ c.lt.s $f4,$f0 +/* f06d88c: 00000000 */ nop +/* f06d890: 45020004 */ bc1fl .PB0f06d8a4 +/* f06d894: 4602003c */ c.lt.s $f0,$f2 +/* f06d898: 10000014 */ b .PB0f06d8ec +/* f06d89c: e6240004 */ swc1 $f4,0x4($s1) +/* f06d8a0: 4602003c */ c.lt.s $f0,$f2 +.PB0f06d8a4: +/* f06d8a4: 00000000 */ nop +/* f06d8a8: 45020011 */ bc1fl .PB0f06d8f0 +/* f06d8ac: c6020010 */ lwc1 $f2,0x10($s0) +/* f06d8b0: 1000000e */ b .PB0f06d8ec +/* f06d8b4: e6220004 */ swc1 $f2,0x4($s1) +/* f06d8b8: c6200004 */ lwc1 $f0,0x4($s1) +.PB0f06d8bc: +/* f06d8bc: c7a60084 */ lwc1 $f6,0x84($sp) +/* f06d8c0: 4600103c */ c.lt.s $f2,$f0 +/* f06d8c4: 00000000 */ nop +/* f06d8c8: 45020004 */ bc1fl .PB0f06d8dc +/* f06d8cc: 4606003c */ c.lt.s $f0,$f6 +/* f06d8d0: 10000006 */ b .PB0f06d8ec +/* f06d8d4: e6220004 */ swc1 $f2,0x4($s1) +/* f06d8d8: 4606003c */ c.lt.s $f0,$f6 +.PB0f06d8dc: +/* f06d8dc: 00000000 */ nop +/* f06d8e0: 45020003 */ bc1fl .PB0f06d8f0 +/* f06d8e4: c6020010 */ lwc1 $f2,0x10($s0) +/* f06d8e8: e6260004 */ swc1 $f6,0x4($s1) +.PB0f06d8ec: +/* f06d8ec: c6020010 */ lwc1 $f2,0x10($s0) +.PB0f06d8f0: +/* f06d8f0: c7a80088 */ lwc1 $f8,0x88($sp) +/* f06d8f4: 4608103c */ c.lt.s $f2,$f8 +/* f06d8f8: 00000000 */ nop +/* f06d8fc: 4502000f */ bc1fl .PB0f06d93c +/* f06d900: c6200008 */ lwc1 $f0,0x8($s1) +/* f06d904: c6200008 */ lwc1 $f0,0x8($s1) +/* f06d908: 4600403c */ c.lt.s $f8,$f0 +/* f06d90c: 00000000 */ nop +/* f06d910: 45020004 */ bc1fl .PB0f06d924 +/* f06d914: 4602003c */ c.lt.s $f0,$f2 +/* f06d918: 10000014 */ b .PB0f06d96c +/* f06d91c: e6280008 */ swc1 $f8,0x8($s1) +/* f06d920: 4602003c */ c.lt.s $f0,$f2 +.PB0f06d924: +/* f06d924: 00000000 */ nop +/* f06d928: 45000010 */ bc1f .PB0f06d96c +/* f06d92c: 00000000 */ nop +/* f06d930: 1000000e */ b .PB0f06d96c +/* f06d934: e6220008 */ swc1 $f2,0x8($s1) +/* f06d938: c6200008 */ lwc1 $f0,0x8($s1) +.PB0f06d93c: +/* f06d93c: c7aa0088 */ lwc1 $f10,0x88($sp) +/* f06d940: 4600103c */ c.lt.s $f2,$f0 +/* f06d944: 00000000 */ nop +/* f06d948: 45020004 */ bc1fl .PB0f06d95c +/* f06d94c: 460a003c */ c.lt.s $f0,$f10 +/* f06d950: 10000006 */ b .PB0f06d96c +/* f06d954: e6220008 */ swc1 $f2,0x8($s1) +/* f06d958: 460a003c */ c.lt.s $f0,$f10 +.PB0f06d95c: +/* f06d95c: 00000000 */ nop +/* f06d960: 45000002 */ bc1f .PB0f06d96c +/* f06d964: 00000000 */ nop +/* f06d968: e62a0008 */ swc1 $f10,0x8($s1) +.PB0f06d96c: +/* f06d96c: 0c009516 */ jal 0x25458 +/* f06d970: 00000000 */ nop +/* f06d974: 3c017f1b */ lui $at,0x7f1b +/* f06d978: c430bf60 */ lwc1 $f16,-0x40a0($at) +/* f06d97c: c7b2008c */ lwc1 $f18,0x8c($sp) +/* f06d980: c6060008 */ lwc1 $f6,0x8($s0) +/* f06d984: 46100082 */ mul.s $f2,$f0,$f16 +/* f06d988: c7b00094 */ lwc1 $f16,0x94($sp) +/* f06d98c: c7aa0084 */ lwc1 $f10,0x84($sp) +/* f06d990: 27b1004c */ addiu $s1,$sp,0x4c +/* f06d994: 240b003f */ li $t3,0x3f +/* f06d998: e7aa0050 */ swc1 $f10,0x50($sp) +/* f06d99c: 44805000 */ mtc1 $zero,$f10 +/* f06d9a0: 46029102 */ mul.s $f4,$f18,$f2 +/* f06d9a4: 02203025 */ move $a2,$s1 +/* f06d9a8: 8fa40040 */ lw $a0,0x40($sp) +/* f06d9ac: 46028482 */ mul.s $f18,$f16,$f2 +/* f06d9b0: 8fa5003c */ lw $a1,0x3c($sp) +/* f06d9b4: 27a70070 */ addiu $a3,$sp,0x70 +/* f06d9b8: 46062200 */ add.s $f8,$f4,$f6 +/* f06d9bc: e7a8004c */ swc1 $f8,0x4c($sp) +/* f06d9c0: c6040010 */ lwc1 $f4,0x10($s0) +/* f06d9c4: 44804000 */ mtc1 $zero,$f8 +/* f06d9c8: afa00014 */ sw $zero,0x14($sp) +/* f06d9cc: 46049180 */ add.s $f6,$f18,$f4 +/* f06d9d0: afab0010 */ sw $t3,0x10($sp) +/* f06d9d4: e7aa001c */ swc1 $f10,0x1c($sp) +/* f06d9d8: e7a80018 */ swc1 $f8,0x18($sp) +/* f06d9dc: 0c00b804 */ jal 0x2e010 +/* f06d9e0: e7a60054 */ swc1 $f6,0x54($sp) +/* f06d9e4: 10400024 */ beqz $v0,.PB0f06da78 +/* f06d9e8: 8fa400a8 */ lw $a0,0xa8($sp) +/* f06d9ec: 02202825 */ move $a1,$s1 +/* f06d9f0: 2486001c */ addiu $a2,$a0,0x1c +/* f06d9f4: 0fc24863 */ jal 0xf09218c +/* f06d9f8: 27a70070 */ addiu $a3,$sp,0x70 +/* f06d9fc: 44808000 */ mtc1 $zero,$f16 +/* f06da00: 44809000 */ mtc1 $zero,$f18 +/* f06da04: 02202025 */ move $a0,$s1 +/* f06da08: 8fa500a0 */ lw $a1,0xa0($sp) +/* f06da0c: 27a60070 */ addiu $a2,$sp,0x70 +/* f06da10: 2407003f */ li $a3,0x3f +/* f06da14: afa00010 */ sw $zero,0x10($sp) +/* f06da18: e7b00014 */ swc1 $f16,0x14($sp) +/* f06da1c: 0c00ab11 */ jal 0x2ac44 +/* f06da20: e7b20018 */ swc1 $f18,0x18($sp) +/* f06da24: 10400014 */ beqz $v0,.PB0f06da78 +/* f06da28: c7a4004c */ lwc1 $f4,0x4c($sp) +/* f06da2c: e6040008 */ swc1 $f4,0x8($s0) +/* f06da30: c7a60050 */ lwc1 $f6,0x50($sp) +/* f06da34: 02002025 */ move $a0,$s0 +/* f06da38: e606000c */ swc1 $f6,0xc($s0) +/* f06da3c: c7a80054 */ lwc1 $f8,0x54($sp) +/* f06da40: 0fc19789 */ jal 0xf065e24 +/* f06da44: e6080010 */ swc1 $f8,0x10($s0) +/* f06da48: 27a40070 */ addiu $a0,$sp,0x70 +/* f06da4c: 0fc19661 */ jal 0xf065984 +/* f06da50: 8fa5003c */ lw $a1,0x3c($sp) +/* f06da54: 240d0001 */ li $t5,0x1 +/* f06da58: 10000007 */ b .PB0f06da78 +/* f06da5c: afad0098 */ sw $t5,0x98($sp) +/* f06da60: e62a0000 */ swc1 $f10,0x0($s1) +.PB0f06da64: +/* f06da64: c7b00084 */ lwc1 $f16,0x84($sp) +/* f06da68: e6300004 */ swc1 $f16,0x4($s1) +/* f06da6c: c7b20088 */ lwc1 $f18,0x88($sp) +/* f06da70: e6320008 */ swc1 $f18,0x8($s1) +/* f06da74: 27b1004c */ addiu $s1,$sp,0x4c +.PB0f06da78: +/* f06da78: 8fae0098 */ lw $t6,0x98($sp) +/* f06da7c: 02203025 */ move $a2,$s1 +/* f06da80: 27a70070 */ addiu $a3,$sp,0x70 +/* f06da84: 55c00012 */ bnezl $t6,.PB0f06dad0 +/* f06da88: 8fbf0034 */ lw $ra,0x34($sp) +/* f06da8c: c6040008 */ lwc1 $f4,0x8($s0) +/* f06da90: c7a60084 */ lwc1 $f6,0x84($sp) +/* f06da94: 8fa40040 */ lw $a0,0x40($sp) +/* f06da98: e7a4004c */ swc1 $f4,0x4c($sp) +/* f06da9c: e7a60050 */ swc1 $f6,0x50($sp) +/* f06daa0: c6080010 */ lwc1 $f8,0x10($s0) +/* f06daa4: 8fa5003c */ lw $a1,0x3c($sp) +/* f06daa8: 0fc19815 */ jal 0xf066054 +/* f06daac: e7a80054 */ swc1 $f8,0x54($sp) +/* f06dab0: c7aa0050 */ lwc1 $f10,0x50($sp) +/* f06dab4: 02002025 */ move $a0,$s0 +/* f06dab8: 0fc19789 */ jal 0xf065e24 +/* f06dabc: e60a000c */ swc1 $f10,0xc($s0) +/* f06dac0: 27a40070 */ addiu $a0,$sp,0x70 +/* f06dac4: 0fc19661 */ jal 0xf065984 +/* f06dac8: 8fa5003c */ lw $a1,0x3c($sp) +.PB0f06dacc: +/* f06dacc: 8fbf0034 */ lw $ra,0x34($sp) +.PB0f06dad0: +/* f06dad0: 8fa2009c */ lw $v0,0x9c($sp) +/* f06dad4: 8fb0002c */ lw $s0,0x2c($sp) +/* f06dad8: 8fb10030 */ lw $s1,0x30($sp) +/* f06dadc: 03e00008 */ jr $ra +/* f06dae0: 27bd00a8 */ addiu $sp,$sp,0xa8 +); #elif VERSION >= VERSION_NTSC_1_0 GLOBAL_ASM( glabel func0f06d37c @@ -20976,6 +21921,212 @@ glabel var7f1aa320 /* f072ad4: 03e00008 */ jr $ra /* f072ad8: 27bd00a0 */ addiu $sp,$sp,0xa0 ); +#elif VERSION >= VERSION_PAL_BETA +GLOBAL_ASM( +glabel func0f0727d4 +.late_rodata +glabel var7f1aa320 +.word 0x3dcccccd +.text +/* f0729a8: 27bdff60 */ addiu $sp,$sp,-160 +/* f0729ac: 3c013f80 */ lui $at,0x3f80 +/* f0729b0: 44812000 */ mtc1 $at,$f4 +/* f0729b4: afbf0024 */ sw $ra,0x24($sp) +/* f0729b8: afb00020 */ sw $s0,0x20($sp) +/* f0729bc: 00808025 */ move $s0,$a0 +/* f0729c0: afa500a4 */ sw $a1,0xa4($sp) +/* f0729c4: afa600a8 */ sw $a2,0xa8($sp) +/* f0729c8: 0c00951c */ jal 0x25470 +/* f0729cc: e7a4009c */ swc1 $f4,0x9c($sp) +/* f0729d0: 104000b2 */ beqz $v0,.PB0f072c9c +/* f0729d4: 8faa00a4 */ lw $t2,0xa4($sp) +/* f0729d8: 3c09800a */ lui $t1,0x800a +/* f0729dc: 2529e4d0 */ addiu $t1,$t1,-6960 +/* f0729e0: 8d2e0034 */ lw $t6,0x34($t1) +/* f0729e4: 59c000ae */ blezl $t6,.PB0f072ca0 +/* f0729e8: 8fbf0024 */ lw $ra,0x24($sp) +/* f0729ec: 90430000 */ lbu $v1,0x0($v0) +/* f0729f0: 24010003 */ li $at,0x3 +/* f0729f4: 106100a9 */ beq $v1,$at,.PB0f072c9c +/* f0729f8: 24010006 */ li $at,0x6 +/* f0729fc: 106100a7 */ beq $v1,$at,.PB0f072c9c +/* f072a00: 24010001 */ li $at,0x1 +/* f072a04: 546100a6 */ bnel $v1,$at,.PB0f072ca0 +/* f072a08: 8fbf0024 */ lw $ra,0x24($sp) +/* f072a0c: 8c440004 */ lw $a0,0x4($v0) +/* f072a10: 8c830040 */ lw $v1,0x40($a0) +/* f072a14: 00037940 */ sll $t7,$v1,0x5 +/* f072a18: 05e000a0 */ bltz $t7,.PB0f072c9c +/* f072a1c: 0003c100 */ sll $t8,$v1,0x4 +/* f072a20: 0702009f */ bltzl $t8,.PB0f072ca0 +/* f072a24: 8fbf0024 */ lw $ra,0x24($sp) +/* f072a28: 8c990010 */ lw $t9,0x10($a0) +/* f072a2c: 3c0c8007 */ lui $t4,0x8007 +/* f072a30: 3c013f00 */ lui $at,0x3f00 +/* f072a34: 332b0001 */ andi $t3,$t9,0x1 +/* f072a38: 11600098 */ beqz $t3,.PB0f072c9c +/* f072a3c: 258cb240 */ addiu $t4,$t4,-19904 +/* f072a40: 44816000 */ mtc1 $at,$f12 +/* f072a44: 8d810000 */ lw $at,0x0($t4) +/* f072a48: 27a5007c */ addiu $a1,$sp,0x7c +/* f072a4c: c520004c */ lwc1 $f0,0x4c($t1) +/* f072a50: aca10000 */ sw $at,0x0($a1) +/* f072a54: 8d8e0004 */ lw $t6,0x4($t4) +/* f072a58: 44801000 */ mtc1 $zero,$f2 +/* f072a5c: 240f0001 */ li $t7,0x1 +/* f072a60: acae0004 */ sw $t6,0x4($a1) +/* f072a64: 8d810008 */ lw $at,0x8($t4) +/* f072a68: 44061000 */ mfc1 $a2,$f2 +/* f072a6c: 24070001 */ li $a3,0x1 +/* f072a70: aca10008 */ sw $at,0x8($a1) +/* f072a74: c5460000 */ lwc1 $f6,0x0($t2) +/* f072a78: e7a20080 */ swc1 $f2,0x80($sp) +/* f072a7c: 460c3202 */ mul.s $f8,$f6,$f12 +/* f072a80: 46004283 */ div.s $f10,$f8,$f0 +/* f072a84: e7aa007c */ swc1 $f10,0x7c($sp) +/* f072a88: c5440008 */ lwc1 $f4,0x8($t2) +/* f072a8c: afa20098 */ sw $v0,0x98($sp) +/* f072a90: afa40094 */ sw $a0,0x94($sp) +/* f072a94: 460c2182 */ mul.s $f6,$f4,$f12 +/* f072a98: afaf0010 */ sw $t7,0x10($sp) +/* f072a9c: 46003203 */ div.s $f8,$f6,$f0 +/* f072aa0: 0fc20aef */ jal 0xf082bbc +/* f072aa4: e7a80084 */ swc1 $f8,0x84($sp) +/* f072aa8: 3c077f1b */ lui $a3,0x7f1b +/* f072aac: 24e7bca0 */ addiu $a3,$a3,-17248 +/* f072ab0: 27a40070 */ addiu $a0,$sp,0x70 +/* f072ab4: 27a50064 */ addiu $a1,$sp,0x64 +/* f072ab8: 0c009503 */ jal 0x2540c +/* f072abc: 24061cbc */ li $a2,0x1cbc +/* f072ac0: 27a40058 */ addiu $a0,$sp,0x58 +/* f072ac4: 0c009649 */ jal 0x25924 +/* f072ac8: 27a5004c */ addiu $a1,$sp,0x4c +/* f072acc: 1040000e */ beqz $v0,.PB0f072b08 +/* f072ad0: 8fa80098 */ lw $t0,0x98($sp) +/* f072ad4: c7aa004c */ lwc1 $f10,0x4c($sp) +/* f072ad8: c7a40058 */ lwc1 $f4,0x58($sp) +/* f072adc: c7a80050 */ lwc1 $f8,0x50($sp) +/* f072ae0: 46045181 */ sub.s $f6,$f10,$f4 +/* f072ae4: c7aa005c */ lwc1 $f10,0x5c($sp) +/* f072ae8: 460a4101 */ sub.s $f4,$f8,$f10 +/* f072aec: e7a6004c */ swc1 $f6,0x4c($sp) +/* f072af0: c7a60054 */ lwc1 $f6,0x54($sp) +/* f072af4: c7a80060 */ lwc1 $f8,0x60($sp) +/* f072af8: e7a40050 */ swc1 $f4,0x50($sp) +/* f072afc: 46083281 */ sub.s $f10,$f6,$f8 +/* f072b00: 10000019 */ b .PB0f072b68 +/* f072b04: e7aa0054 */ swc1 $f10,0x54($sp) +.PB0f072b08: +/* f072b08: 8e180014 */ lw $t8,0x14($s0) +/* f072b0c: c7040008 */ lwc1 $f4,0x8($t8) +/* f072b10: e7a40058 */ swc1 $f4,0x58($sp) +/* f072b14: 8e190014 */ lw $t9,0x14($s0) +/* f072b18: c726000c */ lwc1 $f6,0xc($t9) +/* f072b1c: e7a6005c */ swc1 $f6,0x5c($sp) +/* f072b20: 8e0b0014 */ lw $t3,0x14($s0) +/* f072b24: c5680010 */ lwc1 $f8,0x10($t3) +/* f072b28: e7a80060 */ swc1 $f8,0x60($sp) +/* f072b2c: 8e0d0014 */ lw $t5,0x14($s0) +/* f072b30: c50a0008 */ lwc1 $f10,0x8($t0) +/* f072b34: c5a40008 */ lwc1 $f4,0x8($t5) +/* f072b38: 46045181 */ sub.s $f6,$f10,$f4 +/* f072b3c: e7a6004c */ swc1 $f6,0x4c($sp) +/* f072b40: 8e0c0014 */ lw $t4,0x14($s0) +/* f072b44: c508000c */ lwc1 $f8,0xc($t0) +/* f072b48: c58a000c */ lwc1 $f10,0xc($t4) +/* f072b4c: 460a4101 */ sub.s $f4,$f8,$f10 +/* f072b50: e7a40050 */ swc1 $f4,0x50($sp) +/* f072b54: 8e0e0014 */ lw $t6,0x14($s0) +/* f072b58: c5060010 */ lwc1 $f6,0x10($t0) +/* f072b5c: c5c80010 */ lwc1 $f8,0x10($t6) +/* f072b60: 46083281 */ sub.s $f10,$f6,$f8 +/* f072b64: e7aa0054 */ swc1 $f10,0x54($sp) +.PB0f072b68: +/* f072b68: 27af0088 */ addiu $t7,$sp,0x88 +/* f072b6c: afaf0010 */ sw $t7,0x10($sp) +/* f072b70: 27a40070 */ addiu $a0,$sp,0x70 +/* f072b74: 27a50064 */ addiu $a1,$sp,0x64 +/* f072b78: 27a60058 */ addiu $a2,$sp,0x58 +/* f072b7c: 0fc0b92b */ jal 0xf02e4ac +/* f072b80: 27a7004c */ addiu $a3,$sp,0x4c +/* f072b84: 44800000 */ mtc1 $zero,$f0 +/* f072b88: c7a600a8 */ lwc1 $f6,0xa8($sp) +/* f072b8c: 3c013f00 */ lui $at,0x3f00 +/* f072b90: 44812000 */ mtc1 $at,$f4 +/* f072b94: 46003032 */ c.eq.s $f6,$f0 +/* f072b98: c7a80088 */ lwc1 $f8,0x88($sp) +/* f072b9c: e7a4009c */ swc1 $f4,0x9c($sp) +/* f072ba0: c7a40090 */ lwc1 $f4,0x90($sp) +/* f072ba4: 4503003e */ bc1tl .PB0f072ca0 +/* f072ba8: 8fbf0024 */ lw $ra,0x24($sp) +/* f072bac: 8e020014 */ lw $v0,0x14($s0) +/* f072bb0: 3c198007 */ lui $t9,0x8007 +/* f072bb4: 2739b24c */ addiu $t9,$t9,-19892 +/* f072bb8: c44a0008 */ lwc1 $f10,0x8($v0) +/* f072bbc: c4460010 */ lwc1 $f6,0x10($v0) +/* f072bc0: 8f210000 */ lw $at,0x0($t9) +/* f072bc4: 460a4081 */ sub.s $f2,$f8,$f10 +/* f072bc8: 27b80034 */ addiu $t8,$sp,0x34 +/* f072bcc: af010000 */ sw $at,0x0($t8) +/* f072bd0: 46062381 */ sub.s $f14,$f4,$f6 +/* f072bd4: 46021202 */ mul.s $f8,$f2,$f2 +/* f072bd8: 8f210008 */ lw $at,0x8($t9) +/* f072bdc: 8f2d0004 */ lw $t5,0x4($t9) +/* f072be0: 460e7282 */ mul.s $f10,$f14,$f14 +/* f072be4: af010008 */ sw $at,0x8($t8) +/* f072be8: af0d0004 */ sw $t5,0x4($t8) +/* f072bec: e7ae0044 */ swc1 $f14,0x44($sp) +/* f072bf0: e7a20048 */ swc1 $f2,0x48($sp) +/* f072bf4: 0c012ae4 */ jal 0x4ab90 +/* f072bf8: 460a4300 */ add.s $f12,$f8,$f10 +/* f072bfc: 3c014120 */ lui $at,0x4120 +/* f072c00: 44819000 */ mtc1 $at,$f18 +/* f072c04: 3c013f80 */ lui $at,0x3f80 +/* f072c08: 44812000 */ mtc1 $at,$f4 +/* f072c0c: 3c01800a */ lui $at,0x800a +/* f072c10: c428e51c */ lwc1 $f8,-0x1ae4($at) +/* f072c14: 46002303 */ div.s $f12,$f4,$f0 +/* f072c18: c7a600a8 */ lwc1 $f6,0xa8($sp) +/* f072c1c: c7a20048 */ lwc1 $f2,0x48($sp) +/* f072c20: c7ae0044 */ lwc1 $f14,0x44($sp) +/* f072c24: 3c017f1b */ lui $at,0x7f1b +/* f072c28: 240c0001 */ li $t4,0x1 +/* f072c2c: afac0010 */ sw $t4,0x10($sp) +/* f072c30: 8fa40094 */ lw $a0,0x94($sp) +/* f072c34: 27a50034 */ addiu $a1,$sp,0x34 +/* f072c38: 24070001 */ li $a3,0x1 +/* f072c3c: 46083283 */ div.s $f10,$f6,$f8 +/* f072c40: 460c1082 */ mul.s $f2,$f2,$f12 +/* f072c44: 00000000 */ nop +/* f072c48: 460c7382 */ mul.s $f14,$f14,$f12 +/* f072c4c: 46007107 */ neg.s $f4,$f14 +/* f072c50: e7aa00a8 */ swc1 $f10,0xa8($sp) +/* f072c54: 460a2182 */ mul.s $f6,$f4,$f10 +/* f072c58: c7a40034 */ lwc1 $f4,0x34($sp) +/* f072c5c: 46123202 */ mul.s $f8,$f6,$f18 +/* f072c60: 46082180 */ add.s $f6,$f4,$f8 +/* f072c64: 460a1102 */ mul.s $f4,$f2,$f10 +/* f072c68: e7a60034 */ swc1 $f6,0x34($sp) +/* f072c6c: c7a6003c */ lwc1 $f6,0x3c($sp) +/* f072c70: 46122202 */ mul.s $f8,$f4,$f18 +/* f072c74: 46083100 */ add.s $f4,$f6,$f8 +/* f072c78: c426c01c */ lwc1 $f6,-0x3fe4($at) +/* f072c7c: 46065202 */ mul.s $f8,$f10,$f6 +/* f072c80: e7a4003c */ swc1 $f4,0x3c($sp) +/* f072c84: 44802000 */ mtc1 $zero,$f4 +/* f072c88: 00000000 */ nop +/* f072c8c: 46082400 */ add.s $f16,$f4,$f8 +/* f072c90: 44068000 */ mfc1 $a2,$f16 +/* f072c94: 0fc20aef */ jal 0xf082bbc +/* f072c98: 00000000 */ nop +.PB0f072c9c: +/* f072c9c: 8fbf0024 */ lw $ra,0x24($sp) +.PB0f072ca0: +/* f072ca0: c7a0009c */ lwc1 $f0,0x9c($sp) +/* f072ca4: 8fb00020 */ lw $s0,0x20($sp) +/* f072ca8: 03e00008 */ jr $ra +/* f072cac: 27bd00a0 */ addiu $sp,$sp,0xa0 +); #elif VERSION >= VERSION_NTSC_1_0 GLOBAL_ASM( glabel func0f0727d4 @@ -44636,6 +45787,968 @@ glabel var7f1aa5a8 /* f07acc4: 03e00008 */ jr $ra /* f07acc8: 00000000 */ nop ); +#elif VERSION >= VERSION_PAL_BETA +GLOBAL_ASM( +glabel func0f079f1c +.late_rodata +glabel var7f1aa58c +.word 0x3e23d70a +glabel var7f1aa590 +.word 0x461c4000 +glabel var7f1aa594 +.word 0x453b8000 +glabel var7f1aa598 +.word 0x3f19999a +glabel var7f1aa59c +.word 0x3e99999a +glabel var7f1aa5a0 +.word 0xbdcccccd +glabel var7f1aa5a4 +.word 0x453b8000 +glabel var7f1aa5a8 +.word 0x3e4ccccd +.text +/* f07a0bc: 27bdfe68 */ addiu $sp,$sp,-408 +/* f07a0c0: afbf0044 */ sw $ra,0x44($sp) +/* f07a0c4: 0fc5b9b8 */ jal 0xf16e6e0 +/* f07a0c8: afa40198 */ sw $a0,0x198($sp) +/* f07a0cc: 14400363 */ bnez $v0,.PB0f07ae5c +/* f07a0d0: 8fae0198 */ lw $t6,0x198($sp) +/* f07a0d4: 8dc20004 */ lw $v0,0x4($t6) +/* f07a0d8: afa0018c */ sw $zero,0x18c($sp) +/* f07a0dc: afa00188 */ sw $zero,0x188($sp) +/* f07a0e0: 8c4f0018 */ lw $t7,0x18($v0) +/* f07a0e4: afa00174 */ sw $zero,0x174($sp) +/* f07a0e8: afaf0184 */ sw $t7,0x184($sp) +/* f07a0ec: 8058005e */ lb $t8,0x5e($v0) +/* f07a0f0: 53000347 */ beqzl $t8,.PB0f07ae10 +/* f07a0f4: 8fad0184 */ lw $t5,0x184($sp) +/* f07a0f8: 8c590008 */ lw $t9,0x8($v0) +/* f07a0fc: 001940c0 */ sll $t0,$t9,0x3 +/* f07a100: 05020343 */ bltzl $t0,.PB0f07ae10 +/* f07a104: 8fad0184 */ lw $t5,0x184($sp) +/* f07a108: 9049005f */ lbu $t1,0x5f($v0) +/* f07a10c: 24050005 */ li $a1,0x5 +/* f07a110: 252b0001 */ addiu $t3,$t1,0x1 +/* f07a114: a04b005f */ sb $t3,0x5f($v0) +/* f07a118: 8fae0184 */ lw $t6,0x184($sp) +/* f07a11c: 316c0001 */ andi $t4,$t3,0x1 +/* f07a120: 2d8d0001 */ sltiu $t5,$t4,0x1 +/* f07a124: afad018c */ sw $t5,0x18c($sp) +/* f07a128: 8dc40008 */ lw $a0,0x8($t6) +/* f07a12c: afa20194 */ sw $v0,0x194($sp) +/* f07a130: 0c006cdb */ jal 0x1b36c +/* f07a134: afa20190 */ sw $v0,0x190($sp) +/* f07a138: 1040000b */ beqz $v0,.PB0f07a168 +/* f07a13c: 8fa30190 */ lw $v1,0x190($sp) +/* f07a140: 8faf0194 */ lw $t7,0x194($sp) +/* f07a144: 91f8005f */ lbu $t8,0x5f($t7) +/* f07a148: 07010004 */ bgez $t8,.PB0f07a15c +/* f07a14c: 33190001 */ andi $t9,$t8,0x1 +/* f07a150: 13200002 */ beqz $t9,.PB0f07a15c +/* f07a154: 00000000 */ nop +/* f07a158: 2739fffe */ addiu $t9,$t9,-2 +.PB0f07a15c: +/* f07a15c: 3b280001 */ xori $t0,$t9,0x1 +/* f07a160: 2d080001 */ sltiu $t0,$t0,0x1 +/* f07a164: afa80188 */ sw $t0,0x188($sp) +.PB0f07a168: +/* f07a168: 8fa9018c */ lw $t1,0x18c($sp) +/* f07a16c: 8faa0188 */ lw $t2,0x188($sp) +/* f07a170: 55200004 */ bnezl $t1,.PB0f07a184 +/* f07a174: 8fab0194 */ lw $t3,0x194($sp) +/* f07a178: 514002f0 */ beqzl $t2,.PB0f07ad3c +/* f07a17c: 8fa80194 */ lw $t0,0x194($sp) +/* f07a180: 8fab0194 */ lw $t3,0x194($sp) +.PB0f07a184: +/* f07a184: afa00148 */ sw $zero,0x148($sp) +/* f07a188: 3c188007 */ lui $t8,0x8007 +/* f07a18c: 916c005f */ lbu $t4,0x5f($t3) +/* f07a190: 8f18b380 */ lw $t8,-0x4c80($t8) +/* f07a194: 3c09800a */ lui $t1,0x800a +/* f07a198: 318d0003 */ andi $t5,$t4,0x3 +/* f07a19c: 2dae0001 */ sltiu $t6,$t5,0x1 +/* f07a1a0: afae0128 */ sw $t6,0x128($sp) +/* f07a1a4: 8d6f00a4 */ lw $t7,0xa4($t3) +/* f07a1a8: afa0011c */ sw $zero,0x11c($sp) +/* f07a1ac: afa00114 */ sw $zero,0x114($sp) +/* f07a1b0: afa00110 */ sw $zero,0x110($sp) +/* f07a1b4: afb80118 */ sw $t8,0x118($sp) +/* f07a1b8: afaf0124 */ sw $t7,0x124($sp) +/* f07a1bc: 8c640040 */ lw $a0,0x40($v1) +/* f07a1c0: 8d29e7e8 */ lw $t1,-0x1818($t1) +/* f07a1c4: 3c01f000 */ lui $at,0xf000 +/* f07a1c8: 0081c824 */ and $t9,$a0,$at +/* f07a1cc: 11200007 */ beqz $t1,.PB0f07a1ec +/* f07a1d0: 00192702 */ srl $a0,$t9,0x1c +/* f07a1d4: 0fc63b03 */ jal 0xf18ec0c +/* f07a1d8: 00000000 */ nop +/* f07a1dc: 10400003 */ beqz $v0,.PB0f07a1ec +/* f07a1e0: afa20110 */ sw $v0,0x110($sp) +/* f07a1e4: 8c4a001c */ lw $t2,0x1c($v0) +/* f07a1e8: afaa0114 */ sw $t2,0x114($sp) +.PB0f07a1ec: +/* f07a1ec: 8fac0194 */ lw $t4,0x194($sp) +/* f07a1f0: 918d005f */ lbu $t5,0x5f($t4) +/* f07a1f4: 31ae0007 */ andi $t6,$t5,0x7 +/* f07a1f8: 55c00008 */ bnezl $t6,.PB0f07a21c +/* f07a1fc: 8faf0184 */ lw $t7,0x184($sp) +/* f07a200: 8fab0184 */ lw $t3,0x184($sp) +/* f07a204: 24050007 */ li $a1,0x7 +/* f07a208: 0c006cdb */ jal 0x1b36c +/* f07a20c: 8d640008 */ lw $a0,0x8($t3) +/* f07a210: 14400006 */ bnez $v0,.PB0f07a22c +/* f07a214: 00403825 */ move $a3,$v0 +/* f07a218: 8faf0184 */ lw $t7,0x184($sp) +.PB0f07a21c: +/* f07a21c: 24050005 */ li $a1,0x5 +/* f07a220: 0c006cdb */ jal 0x1b36c +/* f07a224: 8de40008 */ lw $a0,0x8($t7) +/* f07a228: 00403825 */ move $a3,$v0 +.PB0f07a22c: +/* f07a22c: 54400009 */ bnezl $v0,.PB0f07a254 +/* f07a230: 8fa40198 */ lw $a0,0x198($sp) +/* f07a234: 8fb80184 */ lw $t8,0x184($sp) +/* f07a238: 24050003 */ li $a1,0x3 +/* f07a23c: 8f040008 */ lw $a0,0x8($t8) +/* f07a240: 0c006cdb */ jal 0x1b36c +/* f07a244: afa70120 */ sw $a3,0x120($sp) +/* f07a248: 8fa70120 */ lw $a3,0x120($sp) +/* f07a24c: afa2011c */ sw $v0,0x11c($sp) +/* f07a250: 8fa40198 */ lw $a0,0x198($sp) +.PB0f07a254: +/* f07a254: 00002825 */ move $a1,$zero +/* f07a258: 0fc190d6 */ jal 0xf064358 +/* f07a25c: afa70120 */ sw $a3,0x120($sp) +/* f07a260: 8fa20198 */ lw $v0,0x198($sp) +/* f07a264: 8fa70120 */ lw $a3,0x120($sp) +/* f07a268: 90590001 */ lbu $t9,0x1($v0) +/* f07a26c: 33280002 */ andi $t0,$t9,0x2 +/* f07a270: 51000042 */ beqzl $t0,.PB0f07a37c +/* f07a274: c44a0008 */ lwc1 $f10,0x8($v0) +/* f07a278: 14e00003 */ bnez $a3,.PB0f07a288 +/* f07a27c: 8fa9011c */ lw $t1,0x11c($sp) +/* f07a280: 5120003e */ beqzl $t1,.PB0f07a37c +/* f07a284: c44a0008 */ lwc1 $f10,0x8($v0) +.PB0f07a288: +/* f07a288: 10e00010 */ beqz $a3,.PB0f07a2cc +/* f07a28c: 8fa40184 */ lw $a0,0x184($sp) +/* f07a290: 8fa40184 */ lw $a0,0x184($sp) +/* f07a294: 00e02825 */ move $a1,$a3 +/* f07a298: 00003025 */ move $a2,$zero +/* f07a29c: 0c006c07 */ jal 0x1b01c +/* f07a2a0: afa70120 */ sw $a3,0x120($sp) +/* f07a2a4: 8fa70120 */ lw $a3,0x120($sp) +/* f07a2a8: 00402825 */ move $a1,$v0 +/* f07a2ac: 8ce30004 */ lw $v1,0x4($a3) +/* f07a2b0: c4640000 */ lwc1 $f4,0x0($v1) +/* f07a2b4: e7a40168 */ swc1 $f4,0x168($sp) +/* f07a2b8: c4660004 */ lwc1 $f6,0x4($v1) +/* f07a2bc: e7a6016c */ swc1 $f6,0x16c($sp) +/* f07a2c0: c4680008 */ lwc1 $f8,0x8($v1) +/* f07a2c4: 1000000b */ b .PB0f07a2f4 +/* f07a2c8: e7a80170 */ swc1 $f8,0x170($sp) +.PB0f07a2cc: +/* f07a2cc: 8fa5011c */ lw $a1,0x11c($sp) +/* f07a2d0: 0c006c07 */ jal 0x1b01c +/* f07a2d4: 00003025 */ move $a2,$zero +/* f07a2d8: 44805000 */ mtc1 $zero,$f10 +/* f07a2dc: 44808000 */ mtc1 $zero,$f16 +/* f07a2e0: 44809000 */ mtc1 $zero,$f18 +/* f07a2e4: 00402825 */ move $a1,$v0 +/* f07a2e8: e7aa0168 */ swc1 $f10,0x168($sp) +/* f07a2ec: e7b0016c */ swc1 $f16,0x16c($sp) +/* f07a2f0: e7b20170 */ swc1 $f18,0x170($sp) +.PB0f07a2f4: +/* f07a2f4: 0fc2d6e2 */ jal 0xf0b5b88 +/* f07a2f8: afa50108 */ sw $a1,0x108($sp) +/* f07a2fc: 8fa50108 */ lw $a1,0x108($sp) +/* f07a300: 00402025 */ move $a0,$v0 +/* f07a304: 0c00598d */ jal 0x16634 +/* f07a308: 27a600c8 */ addiu $a2,$sp,0xc8 +/* f07a30c: 27a400c8 */ addiu $a0,$sp,0xc8 +/* f07a310: 0c00596d */ jal 0x165b4 +/* f07a314: 27a50168 */ addiu $a1,$sp,0x168 +/* f07a318: 8fa20198 */ lw $v0,0x198($sp) +/* f07a31c: 240a0020 */ li $t2,0x20 +/* f07a320: 240c0010 */ li $t4,0x10 +/* f07a324: 24450028 */ addiu $a1,$v0,0x28 +/* f07a328: afa5004c */ sw $a1,0x4c($sp) +/* f07a32c: afac0014 */ sw $t4,0x14($sp) +/* f07a330: afaa0010 */ sw $t2,0x10($sp) +/* f07a334: 27a60168 */ addiu $a2,$sp,0x168 +/* f07a338: 27a70158 */ addiu $a3,$sp,0x158 +/* f07a33c: 0c00b8fd */ jal 0x2e3f4 +/* f07a340: 24440008 */ addiu $a0,$v0,0x8 +/* f07a344: 14400015 */ bnez $v0,.PB0f07a39c +/* f07a348: 8fad0198 */ lw $t5,0x198($sp) +/* f07a34c: c5a40008 */ lwc1 $f4,0x8($t5) +/* f07a350: 8fa4004c */ lw $a0,0x4c($sp) +/* f07a354: 27a50158 */ addiu $a1,$sp,0x158 +/* f07a358: e7a40168 */ swc1 $f4,0x168($sp) +/* f07a35c: c5a6000c */ lwc1 $f6,0xc($t5) +/* f07a360: e7a6016c */ swc1 $f6,0x16c($sp) +/* f07a364: c5a80010 */ lwc1 $f8,0x10($t5) +/* f07a368: 0fc19661 */ jal 0xf065984 +/* f07a36c: e7a80170 */ swc1 $f8,0x170($sp) +/* f07a370: 1000000b */ b .PB0f07a3a0 +/* f07a374: 8fae0194 */ lw $t6,0x194($sp) +/* f07a378: c44a0008 */ lwc1 $f10,0x8($v0) +.PB0f07a37c: +/* f07a37c: 24440028 */ addiu $a0,$v0,0x28 +/* f07a380: 27a50158 */ addiu $a1,$sp,0x158 +/* f07a384: e7aa0168 */ swc1 $f10,0x168($sp) +/* f07a388: c450000c */ lwc1 $f16,0xc($v0) +/* f07a38c: e7b0016c */ swc1 $f16,0x16c($sp) +/* f07a390: c4520010 */ lwc1 $f18,0x10($v0) +/* f07a394: 0fc19661 */ jal 0xf065984 +/* f07a398: e7b20170 */ swc1 $f18,0x170($sp) +.PB0f07a39c: +/* f07a39c: 8fae0194 */ lw $t6,0x194($sp) +.PB0f07a3a0: +/* f07a3a0: 0c006b88 */ jal 0x1ae20 +/* f07a3a4: c5cc0078 */ lwc1 $f12,0x78($t6) +/* f07a3a8: 8fab0194 */ lw $t3,0x194($sp) +/* f07a3ac: e7a00050 */ swc1 $f0,0x50($sp) +/* f07a3b0: 0c006b8b */ jal 0x1ae2c +/* f07a3b4: c56c006c */ lwc1 $f12,0x6c($t3) +/* f07a3b8: c7a40050 */ lwc1 $f4,0x50($sp) +/* f07a3bc: 8faf0194 */ lw $t7,0x194($sp) +/* f07a3c0: 46040182 */ mul.s $f6,$f0,$f4 +/* f07a3c4: e7a6014c */ swc1 $f6,0x14c($sp) +/* f07a3c8: 0c006b8b */ jal 0x1ae2c +/* f07a3cc: c5ec0078 */ lwc1 $f12,0x78($t7) +/* f07a3d0: 8fb80194 */ lw $t8,0x194($sp) +/* f07a3d4: e7a00150 */ swc1 $f0,0x150($sp) +/* f07a3d8: 0c006b88 */ jal 0x1ae20 +/* f07a3dc: c70c0078 */ lwc1 $f12,0x78($t8) +/* f07a3e0: 8fb90194 */ lw $t9,0x194($sp) +/* f07a3e4: e7a00050 */ swc1 $f0,0x50($sp) +/* f07a3e8: 0c006b88 */ jal 0x1ae20 +/* f07a3ec: c72c006c */ lwc1 $f12,0x6c($t9) +/* f07a3f0: c7a80050 */ lwc1 $f8,0x50($sp) +/* f07a3f4: 3c014780 */ lui $at,0x4780 +/* f07a3f8: 44811000 */ mtc1 $at,$f2 +/* f07a3fc: 46080302 */ mul.s $f12,$f0,$f8 +/* f07a400: c7aa014c */ lwc1 $f10,0x14c($sp) +/* f07a404: c7a60150 */ lwc1 $f6,0x150($sp) +/* f07a408: c7b20168 */ lwc1 $f18,0x168($sp) +/* f07a40c: 46025402 */ mul.s $f16,$f10,$f2 +/* f07a410: c7aa016c */ lwc1 $f10,0x16c($sp) +/* f07a414: 3c03800a */ lui $v1,0x800a +/* f07a418: 46023202 */ mul.s $f8,$f6,$f2 +/* f07a41c: 2463e4d0 */ addiu $v1,$v1,-6960 +/* f07a420: 8c680318 */ lw $t0,0x318($v1) +/* f07a424: e7ac0154 */ swc1 $f12,0x154($sp) +/* f07a428: 8fa20124 */ lw $v0,0x124($sp) +/* f07a42c: 46128100 */ add.s $f4,$f16,$f18 +/* f07a430: 46026482 */ mul.s $f18,$f12,$f2 +/* f07a434: 27a40168 */ addiu $a0,$sp,0x168 +/* f07a438: 460a4400 */ add.s $f16,$f8,$f10 +/* f07a43c: e7a4013c */ swc1 $f4,0x13c($sp) +/* f07a440: c7a40170 */ lwc1 $f4,0x170($sp) +/* f07a444: 27a50158 */ addiu $a1,$sp,0x158 +/* f07a448: e7b00140 */ swc1 $f16,0x140($sp) +/* f07a44c: 46049180 */ add.s $f6,$f18,$f4 +/* f07a450: 27a6013c */ addiu $a2,$sp,0x13c +/* f07a454: 2407003f */ li $a3,0x3f +/* f07a458: 1500000f */ bnez $t0,.PB0f07a498 +/* f07a45c: e7a60144 */ swc1 $f6,0x144($sp) +/* f07a460: 50400006 */ beqzl $v0,.PB0f07a47c +/* f07a464: 8c6a029c */ lw $t2,0x29c($v1) +/* f07a468: 90490000 */ lbu $t1,0x0($v0) +/* f07a46c: 24010003 */ li $at,0x3 +/* f07a470: 5121000a */ beql $t1,$at,.PB0f07a49c +/* f07a474: 240e0010 */ li $t6,0x10 +/* f07a478: 8c6a029c */ lw $t2,0x29c($v1) +.PB0f07a47c: +/* f07a47c: 0540007f */ bltz $t2,.PB0f07a67c +/* f07a480: 00000000 */ nop +/* f07a484: 1040007d */ beqz $v0,.PB0f07a67c +/* f07a488: 00000000 */ nop +/* f07a48c: 8c6c02a8 */ lw $t4,0x2a8($v1) +/* f07a490: 8d8d00bc */ lw $t5,0xbc($t4) +/* f07a494: 144d0079 */ bne $v0,$t5,.PB0f07a67c +.PB0f07a498: +/* f07a498: 240e0010 */ li $t6,0x10 +.PB0f07a49c: +/* f07a49c: 0c00b8d4 */ jal 0x2e350 +/* f07a4a0: afae0010 */ sw $t6,0x10($sp) +/* f07a4a4: 14400151 */ bnez $v0,.PB0f07a9ec +/* f07a4a8: 27a4013c */ addiu $a0,$sp,0x13c +/* f07a4ac: 3c067f1b */ lui $a2,0x7f1b +/* f07a4b0: 24c6bd08 */ addiu $a2,$a2,-17144 +/* f07a4b4: 0c00951f */ jal 0x2547c +/* f07a4b8: 24052cd8 */ li $a1,0x2cd8 +/* f07a4bc: 0c00951c */ jal 0x25470 +/* f07a4c0: 00000000 */ nop +/* f07a4c4: 1040006a */ beqz $v0,.PB0f07a670 +/* f07a4c8: afa20178 */ sw $v0,0x178($sp) +/* f07a4cc: 90430000 */ lbu $v1,0x0($v0) +/* f07a4d0: 24010003 */ li $at,0x3 +/* f07a4d4: 3c0b800a */ lui $t3,0x800a +/* f07a4d8: 10610003 */ beq $v1,$at,.PB0f07a4e8 +/* f07a4dc: 24010006 */ li $at,0x6 +/* f07a4e0: 54610064 */ bnel $v1,$at,.PB0f07a674 +/* f07a4e4: 24080001 */ li $t0,0x1 +.PB0f07a4e8: +/* f07a4e8: 8d6be7e8 */ lw $t3,-0x1818($t3) +/* f07a4ec: 8faf0124 */ lw $t7,0x124($sp) +/* f07a4f0: 2418ffff */ li $t8,-1 +/* f07a4f4: 15600003 */ bnez $t3,.PB0f07a504 +/* f07a4f8: 241900c8 */ li $t9,0xc8 +/* f07a4fc: 55e2005d */ bnel $t7,$v0,.PB0f07a674 +/* f07a500: 24080001 */ li $t0,0x1 +.PB0f07a504: +/* f07a504: afa000c0 */ sw $zero,0xc0($sp) +/* f07a508: afa000bc */ sw $zero,0xbc($sp) +/* f07a50c: afb800b8 */ sw $t8,0xb8($sp) +/* f07a510: afb900b4 */ sw $t9,0xb4($sp) +/* f07a514: 0fc2c84e */ jal 0xf0b2138 +/* f07a518: 27a40118 */ addiu $a0,$sp,0x118 +/* f07a51c: 8fa80178 */ lw $t0,0x178($sp) +/* f07a520: 3c09800a */ lui $t1,0x800a +/* f07a524: 8d29e7e8 */ lw $t1,-0x1818($t1) +/* f07a528: e7a000b0 */ swc1 $f0,0xb0($sp) +/* f07a52c: 8d040004 */ lw $a0,0x4($t0) +/* f07a530: 3c013f00 */ lui $at,0x3f00 +/* f07a534: 11200005 */ beqz $t1,.PB0f07a54c +/* f07a538: afa400ac */ sw $a0,0xac($sp) +/* f07a53c: 44814000 */ mtc1 $at,$f8 +/* f07a540: 00000000 */ nop +/* f07a544: 46080282 */ mul.s $f10,$f0,$f8 +/* f07a548: e7aa00b0 */ swc1 $f10,0xb0($sp) +.PB0f07a54c: +/* f07a54c: 8faa0114 */ lw $t2,0x114($sp) +/* f07a550: 8fac0178 */ lw $t4,0x178($sp) +/* f07a554: 8fad0110 */ lw $t5,0x110($sp) +/* f07a558: 514c0007 */ beql $t2,$t4,.PB0f07a578 +/* f07a55c: 240e0001 */ li $t6,0x1 +/* f07a560: 11a00009 */ beqz $t5,.PB0f07a588 +/* f07a564: 01a02825 */ move $a1,$t5 +/* f07a568: 0fc12aec */ jal 0xf04abb0 +/* f07a56c: 24060001 */ li $a2,0x1 +/* f07a570: 10400005 */ beqz $v0,.PB0f07a588 +/* f07a574: 240e0001 */ li $t6,0x1 +.PB0f07a578: +/* f07a578: afa00128 */ sw $zero,0x128($sp) +/* f07a57c: afa0018c */ sw $zero,0x18c($sp) +/* f07a580: afa00188 */ sw $zero,0x188($sp) +/* f07a584: afae0174 */ sw $t6,0x174($sp) +.PB0f07a588: +/* f07a588: 8fab018c */ lw $t3,0x18c($sp) +/* f07a58c: 8faf0188 */ lw $t7,0x188($sp) +/* f07a590: 27a40118 */ addiu $a0,$sp,0x118 +/* f07a594: 15600003 */ bnez $t3,.PB0f07a5a4 +/* f07a598: 8fa50178 */ lw $a1,0x178($sp) +/* f07a59c: 51e00114 */ beqzl $t7,.PB0f07a9f0 +/* f07a5a0: 8fa40198 */ lw $a0,0x198($sp) +.PB0f07a5a4: +/* f07a5a4: 0fc2a04d */ jal 0xf0a8134 +/* f07a5a8: 2406ffff */ li $a2,-1 +/* f07a5ac: 8fa400ac */ lw $a0,0xac($sp) +/* f07a5b0: 8c980020 */ lw $t8,0x20($a0) +/* f07a5b4: 53000012 */ beqzl $t8,.PB0f07a600 +/* f07a5b8: 8fac0110 */ lw $t4,0x110($sp) +/* f07a5bc: 0fc0d025 */ jal 0xf034094 +/* f07a5c0: 00000000 */ nop +/* f07a5c4: 44808000 */ mtc1 $zero,$f16 +/* f07a5c8: 8fa400ac */ lw $a0,0xac($sp) +/* f07a5cc: 27a5013c */ addiu $a1,$sp,0x13c +/* f07a5d0: 4600803c */ c.lt.s $f16,$f0 +/* f07a5d4: 27a6014c */ addiu $a2,$sp,0x14c +/* f07a5d8: 27a700c0 */ addiu $a3,$sp,0xc0 +/* f07a5dc: 27b900b4 */ addiu $t9,$sp,0xb4 +/* f07a5e0: 45000006 */ bc1f .PB0f07a5fc +/* f07a5e4: 27a800bc */ addiu $t0,$sp,0xbc +/* f07a5e8: 27a900b8 */ addiu $t1,$sp,0xb8 +/* f07a5ec: afa90018 */ sw $t1,0x18($sp) +/* f07a5f0: afb90010 */ sw $t9,0x10($sp) +/* f07a5f4: 0fc1000f */ jal 0xf04003c +/* f07a5f8: afa80014 */ sw $t0,0x14($sp) +.PB0f07a5fc: +/* f07a5fc: 8fac0110 */ lw $t4,0x110($sp) +.PB0f07a600: +/* f07a600: 27aa014c */ addiu $t2,$sp,0x14c +/* f07a604: 8fa400ac */ lw $a0,0xac($sp) +/* f07a608: afaa0010 */ sw $t2,0x10($sp) +/* f07a60c: 8fa50178 */ lw $a1,0x178($sp) +/* f07a610: 8fa600b4 */ lw $a2,0xb4($sp) +/* f07a614: 27a7013c */ addiu $a3,$sp,0x13c +/* f07a618: 0fc097dd */ jal 0xf025f74 +/* f07a61c: afac0014 */ sw $t4,0x14($sp) +/* f07a620: 8fad0114 */ lw $t5,0x114($sp) +/* f07a624: 8fab0178 */ lw $t3,0x178($sp) +/* f07a628: 8faf00c0 */ lw $t7,0xc0($sp) +/* f07a62c: 8fb800bc */ lw $t8,0xbc($sp) +/* f07a630: 8fb900b8 */ lw $t9,0xb8($sp) +/* f07a634: 240e00c8 */ li $t6,0xc8 +/* f07a638: afae0014 */ sw $t6,0x14($sp) +/* f07a63c: 8fa400ac */ lw $a0,0xac($sp) +/* f07a640: 8fa500b0 */ lw $a1,0xb0($sp) +/* f07a644: 27a6014c */ addiu $a2,$sp,0x14c +/* f07a648: 27a70118 */ addiu $a3,$sp,0x118 +/* f07a64c: afa00028 */ sw $zero,0x28($sp) +/* f07a650: afad0010 */ sw $t5,0x10($sp) +/* f07a654: afab0018 */ sw $t3,0x18($sp) +/* f07a658: afaf001c */ sw $t7,0x1c($sp) +/* f07a65c: afb80020 */ sw $t8,0x20($sp) +/* f07a660: 0fc0d0b4 */ jal 0xf0342d0 +/* f07a664: afb90024 */ sw $t9,0x24($sp) +/* f07a668: 100000e1 */ b .PB0f07a9f0 +/* f07a66c: 8fa40198 */ lw $a0,0x198($sp) +.PB0f07a670: +/* f07a670: 24080001 */ li $t0,0x1 +.PB0f07a674: +/* f07a674: 100000dd */ b .PB0f07a9ec +/* f07a678: afa80148 */ sw $t0,0x148($sp) +.PB0f07a67c: +/* f07a67c: 10400045 */ beqz $v0,.PB0f07a794 +/* f07a680: 27a40168 */ addiu $a0,$sp,0x168 +/* f07a684: 90490000 */ lbu $t1,0x0($v0) +/* f07a688: 24010001 */ li $at,0x1 +/* f07a68c: 27a50158 */ addiu $a1,$sp,0x158 +/* f07a690: 15210040 */ bne $t1,$at,.PB0f07a794 +/* f07a694: 27a6013c */ addiu $a2,$sp,0x13c +/* f07a698: 240a0010 */ li $t2,0x10 +/* f07a69c: afa000a8 */ sw $zero,0xa8($sp) +/* f07a6a0: afaa0010 */ sw $t2,0x10($sp) +/* f07a6a4: 27a40168 */ addiu $a0,$sp,0x168 +/* f07a6a8: 0c00b8d4 */ jal 0x2e350 +/* f07a6ac: 2407003b */ li $a3,0x3b +/* f07a6b0: 1440000a */ bnez $v0,.PB0f07a6dc +/* f07a6b4: 27a4013c */ addiu $a0,$sp,0x13c +/* f07a6b8: 3c067f1b */ lui $a2,0x7f1b +/* f07a6bc: 24c6bd14 */ addiu $a2,$a2,-17132 +/* f07a6c0: 0c00951f */ jal 0x2547c +/* f07a6c4: 24052d0f */ li $a1,0x2d0f +/* f07a6c8: 0c00951c */ jal 0x25470 +/* f07a6cc: 00000000 */ nop +/* f07a6d0: 240c0001 */ li $t4,0x1 +/* f07a6d4: afac0148 */ sw $t4,0x148($sp) +/* f07a6d8: afa200a8 */ sw $v0,0xa8($sp) +.PB0f07a6dc: +/* f07a6dc: 8fa300a8 */ lw $v1,0xa8($sp) +/* f07a6e0: 506000c3 */ beqzl $v1,.PB0f07a9f0 +/* f07a6e4: 8fa40198 */ lw $a0,0x198($sp) +/* f07a6e8: 906d0000 */ lbu $t5,0x0($v1) +/* f07a6ec: 24010001 */ li $at,0x1 +/* f07a6f0: 55a100bf */ bnel $t5,$at,.PB0f07a9f0 +/* f07a6f4: 8fa40198 */ lw $a0,0x198($sp) +/* f07a6f8: 8c640004 */ lw $a0,0x4($v1) +/* f07a6fc: 2401014c */ li $at,0x14c +/* f07a700: 3c0b8007 */ lui $t3,0x8007 +/* f07a704: 848e0004 */ lh $t6,0x4($a0) +/* f07a708: 27a5013c */ addiu $a1,$sp,0x13c +/* f07a70c: 24060000 */ li $a2,0x0 +/* f07a710: 55c100b7 */ bnel $t6,$at,.PB0f07a9f0 +/* f07a714: 8fa40198 */ lw $a0,0x198($sp) +/* f07a718: 8d6bb384 */ lw $t3,-0x4c7c($t3) +/* f07a71c: afa00148 */ sw $zero,0x148($sp) +/* f07a720: afa300a8 */ sw $v1,0xa8($sp) +/* f07a724: 0fc68a52 */ jal 0xf1a2948 +/* f07a728: afab00a0 */ sw $t3,0xa0($sp) +/* f07a72c: 0fc4fe8e */ jal 0xf13fa38 +/* f07a730: 8fa40110 */ lw $a0,0x110($sp) +/* f07a734: 1040000b */ beqz $v0,.PB0f07a764 +/* f07a738: 8fa500a8 */ lw $a1,0xa8($sp) +/* f07a73c: 8fa500a8 */ lw $a1,0xa8($sp) +/* f07a740: 240f0019 */ li $t7,0x19 +/* f07a744: 27a6013c */ addiu $a2,$sp,0x13c +/* f07a748: 84a40028 */ lh $a0,0x28($a1) +/* f07a74c: afaf0014 */ sw $t7,0x14($sp) +/* f07a750: afa00010 */ sw $zero,0x10($sp) +/* f07a754: 0fc4c3dd */ jal 0xf130f74 +/* f07a758: 00003825 */ move $a3,$zero +/* f07a75c: 10000008 */ b .PB0f07a780 +/* f07a760: 27a400a0 */ addiu $a0,$sp,0xa0 +.PB0f07a764: +/* f07a764: 84a40028 */ lh $a0,0x28($a1) +/* f07a768: afa00014 */ sw $zero,0x14($sp) +/* f07a76c: afa00010 */ sw $zero,0x10($sp) +/* f07a770: 27a6013c */ addiu $a2,$sp,0x13c +/* f07a774: 0fc4c3dd */ jal 0xf130f74 +/* f07a778: 00003825 */ move $a3,$zero +/* f07a77c: 27a400a0 */ addiu $a0,$sp,0xa0 +.PB0f07a780: +/* f07a780: 8fa500a8 */ lw $a1,0xa8($sp) +/* f07a784: 0fc2a04d */ jal 0xf0a8134 +/* f07a788: 240600f2 */ li $a2,0xf2 +/* f07a78c: 10000098 */ b .PB0f07a9f0 +/* f07a790: 8fa40198 */ lw $a0,0x198($sp) +.PB0f07a794: +/* f07a794: 24190010 */ li $t9,0x10 +/* f07a798: afb90010 */ sw $t9,0x10($sp) +/* f07a79c: 27a50158 */ addiu $a1,$sp,0x158 +/* f07a7a0: 27a6013c */ addiu $a2,$sp,0x13c +/* f07a7a4: 0c00b8d4 */ jal 0x2e350 +/* f07a7a8: 24070022 */ li $a3,0x22 +/* f07a7ac: 14400007 */ bnez $v0,.PB0f07a7cc +/* f07a7b0: 27a4013c */ addiu $a0,$sp,0x13c +/* f07a7b4: 3c067f1b */ lui $a2,0x7f1b +/* f07a7b8: 24c6bd20 */ addiu $a2,$a2,-17120 +/* f07a7bc: 0c00951f */ jal 0x2547c +/* f07a7c0: 24052d29 */ li $a1,0x2d29 +/* f07a7c4: 24080001 */ li $t0,0x1 +/* f07a7c8: afa80148 */ sw $t0,0x148($sp) +.PB0f07a7cc: +/* f07a7cc: 8faa0194 */ lw $t2,0x194($sp) +/* f07a7d0: 3c09800a */ lui $t1,0x800a +/* f07a7d4: 8d29e4d8 */ lw $t1,-0x1b28($t1) +/* f07a7d8: 8d4c0094 */ lw $t4,0x94($t2) +/* f07a7dc: 8fa20124 */ lw $v0,0x124($sp) +/* f07a7e0: 552c0083 */ bnel $t1,$t4,.PB0f07a9f0 +/* f07a7e4: 8fa40198 */ lw $a0,0x198($sp) +/* f07a7e8: 50400081 */ beqzl $v0,.PB0f07a9f0 +/* f07a7ec: 8fa40198 */ lw $a0,0x198($sp) +/* f07a7f0: 904d0000 */ lbu $t5,0x0($v0) +/* f07a7f4: 24010006 */ li $at,0x6 +/* f07a7f8: c7a40168 */ lwc1 $f4,0x168($sp) +/* f07a7fc: 55a1007c */ bnel $t5,$at,.PB0f07a9f0 +/* f07a800: 8fa40198 */ lw $a0,0x198($sp) +/* f07a804: c4520008 */ lwc1 $f18,0x8($v0) +/* f07a808: c446000c */ lwc1 $f6,0xc($v0) +/* f07a80c: c7a8016c */ lwc1 $f8,0x16c($sp) +/* f07a810: 46049001 */ sub.s $f0,$f18,$f4 +/* f07a814: c44a0010 */ lwc1 $f10,0x10($v0) +/* f07a818: c7b00170 */ lwc1 $f16,0x170($sp) +/* f07a81c: 46083081 */ sub.s $f2,$f6,$f8 +/* f07a820: 46000482 */ mul.s $f18,$f0,$f0 +/* f07a824: 46105301 */ sub.s $f12,$f10,$f16 +/* f07a828: 46021182 */ mul.s $f6,$f2,$f2 +/* f07a82c: 46069280 */ add.s $f10,$f18,$f6 +/* f07a830: 460c6482 */ mul.s $f18,$f12,$f12 +/* f07a834: c7a6013c */ lwc1 $f6,0x13c($sp) +/* f07a838: 46043001 */ sub.s $f0,$f6,$f4 +/* f07a83c: 46125380 */ add.s $f14,$f10,$f18 +/* f07a840: c7aa0140 */ lwc1 $f10,0x140($sp) +/* f07a844: 46000182 */ mul.s $f6,$f0,$f0 +/* f07a848: c7b20144 */ lwc1 $f18,0x144($sp) +/* f07a84c: 46085081 */ sub.s $f2,$f10,$f8 +/* f07a850: 46109301 */ sub.s $f12,$f18,$f16 +/* f07a854: 46021102 */ mul.s $f4,$f2,$f2 +/* f07a858: 46043280 */ add.s $f10,$f6,$f4 +/* f07a85c: 460c6202 */ mul.s $f8,$f12,$f12 +/* f07a860: 46085480 */ add.s $f18,$f10,$f8 +/* f07a864: 4612703e */ c.le.s $f14,$f18 +/* f07a868: 00000000 */ nop +/* f07a86c: 45020060 */ bc1fl .PB0f07a9f0 +/* f07a870: 8fa40198 */ lw $a0,0x198($sp) +/* f07a874: 0c012ae4 */ jal 0x4ab90 +/* f07a878: 46007306 */ mov.s $f12,$f14 +/* f07a87c: 3c014348 */ lui $at,0x4348 +/* f07a880: 44816000 */ mtc1 $at,$f12 +/* f07a884: 3c017f1b */ lui $at,0x7f1b +/* f07a888: c430c280 */ lwc1 $f16,-0x3d80($at) +/* f07a88c: 3c01800a */ lui $at,0x800a +/* f07a890: c426e51c */ lwc1 $f6,-0x1ae4($at) +/* f07a894: 3c018007 */ lui $at,0x8007 +/* f07a898: 4600603c */ c.lt.s $f12,$f0 +/* f07a89c: 46068102 */ mul.s $f4,$f16,$f6 +/* f07a8a0: c42ab020 */ lwc1 $f10,-0x4fe0($at) +/* f07a8a4: 8fae0194 */ lw $t6,0x194($sp) +/* f07a8a8: 460a2082 */ mul.s $f2,$f4,$f10 +/* f07a8ac: 45020005 */ bc1fl .PB0f07a8c4 +/* f07a8b0: c5d200a0 */ lwc1 $f18,0xa0($t6) +/* f07a8b4: 46006203 */ div.s $f8,$f12,$f0 +/* f07a8b8: 46081082 */ mul.s $f2,$f2,$f8 +/* f07a8bc: 00000000 */ nop +/* f07a8c0: c5d200a0 */ lwc1 $f18,0xa0($t6) +.PB0f07a8c4: +/* f07a8c4: 3c013f80 */ lui $at,0x3f80 +/* f07a8c8: 44813000 */ mtc1 $at,$f6 +/* f07a8cc: 46029400 */ add.s $f16,$f18,$f2 +/* f07a8d0: 4610303e */ c.le.s $f6,$f16 +/* f07a8d4: e5d000a0 */ swc1 $f16,0xa0($t6) +/* f07a8d8: 8fab0124 */ lw $t3,0x124($sp) +/* f07a8dc: 45020044 */ bc1fl .PB0f07a9f0 +/* f07a8e0: 8fa40198 */ lw $a0,0x198($sp) +/* f07a8e4: c5640008 */ lwc1 $f4,0x8($t3) +/* f07a8e8: e7a4013c */ swc1 $f4,0x13c($sp) +/* f07a8ec: c56a000c */ lwc1 $f10,0xc($t3) +/* f07a8f0: e7aa0140 */ swc1 $f10,0x140($sp) +/* f07a8f4: c5680010 */ lwc1 $f8,0x10($t3) +/* f07a8f8: afa00148 */ sw $zero,0x148($sp) +/* f07a8fc: 0c004be0 */ jal 0x12f80 +/* f07a900: e7a80144 */ swc1 $f8,0x144($sp) +/* f07a904: 304f0001 */ andi $t7,$v0,0x1 +/* f07a908: 11e00012 */ beqz $t7,.PB0f07a954 +/* f07a90c: 00000000 */ nop +/* f07a910: 0c004be0 */ jal 0x12f80 +/* f07a914: 00000000 */ nop +/* f07a918: 2401000a */ li $at,0xa +/* f07a91c: 0041001b */ divu $zero,$v0,$at +/* f07a920: 0000c010 */ mfhi $t8 +/* f07a924: 27190002 */ addiu $t9,$t8,0x2 +/* f07a928: 44998000 */ mtc1 $t9,$f16 +/* f07a92c: c7b20140 */ lwc1 $f18,0x140($sp) +/* f07a930: 07210005 */ bgez $t9,.PB0f07a948 +/* f07a934: 468081a0 */ cvt.s.w $f6,$f16 +/* f07a938: 3c014f80 */ lui $at,0x4f80 +/* f07a93c: 44812000 */ mtc1 $at,$f4 +/* f07a940: 00000000 */ nop +/* f07a944: 46043180 */ add.s $f6,$f6,$f4 +.PB0f07a948: +/* f07a948: 46069280 */ add.s $f10,$f18,$f6 +/* f07a94c: 10000011 */ b .PB0f07a994 +/* f07a950: e7aa0140 */ swc1 $f10,0x140($sp) +.PB0f07a954: +/* f07a954: 0c004be0 */ jal 0x12f80 +/* f07a958: 00000000 */ nop +/* f07a95c: 2401000a */ li $at,0xa +/* f07a960: 0041001b */ divu $zero,$v0,$at +/* f07a964: 00004010 */ mfhi $t0 +/* f07a968: 250a0002 */ addiu $t2,$t0,0x2 +/* f07a96c: 448a8000 */ mtc1 $t2,$f16 +/* f07a970: c7a80140 */ lwc1 $f8,0x140($sp) +/* f07a974: 05410005 */ bgez $t2,.PB0f07a98c +/* f07a978: 46808120 */ cvt.s.w $f4,$f16 +/* f07a97c: 3c014f80 */ lui $at,0x4f80 +/* f07a980: 44819000 */ mtc1 $at,$f18 +/* f07a984: 00000000 */ nop +/* f07a988: 46122100 */ add.s $f4,$f4,$f18 +.PB0f07a98c: +/* f07a98c: 46044181 */ sub.s $f6,$f8,$f4 +/* f07a990: e7a60140 */ swc1 $f6,0x140($sp) +.PB0f07a994: +/* f07a994: 27a40118 */ addiu $a0,$sp,0x118 +/* f07a998: 8fa50124 */ lw $a1,0x124($sp) +/* f07a99c: 0fc2a04d */ jal 0xf0a8134 +/* f07a9a0: 2406ffff */ li $a2,-1 +/* f07a9a4: 3c013f00 */ lui $at,0x3f00 +/* f07a9a8: 44815000 */ mtc1 $at,$f10 +/* f07a9ac: 3c018007 */ lui $at,0x8007 +/* f07a9b0: c430b024 */ lwc1 $f16,-0x4fdc($at) +/* f07a9b4: 8fa90124 */ lw $t1,0x124($sp) +/* f07a9b8: 240c00c8 */ li $t4,0xc8 +/* f07a9bc: 46105002 */ mul.s $f0,$f10,$f16 +/* f07a9c0: 8d240004 */ lw $a0,0x4($t1) +/* f07a9c4: afac0014 */ sw $t4,0x14($sp) +/* f07a9c8: afa00010 */ sw $zero,0x10($sp) +/* f07a9cc: 27a6014c */ addiu $a2,$sp,0x14c +/* f07a9d0: 27a70118 */ addiu $a3,$sp,0x118 +/* f07a9d4: 44050000 */ mfc1 $a1,$f0 +/* f07a9d8: 0fc0d109 */ jal 0xf034424 +/* f07a9dc: 00000000 */ nop +/* f07a9e0: 44809000 */ mtc1 $zero,$f18 +/* f07a9e4: 8fad0194 */ lw $t5,0x194($sp) +/* f07a9e8: e5b200a0 */ swc1 $f18,0xa0($t5) +.PB0f07a9ec: +/* f07a9ec: 8fa40198 */ lw $a0,0x198($sp) +.PB0f07a9f0: +/* f07a9f0: 0fc190d6 */ jal 0xf064358 +/* f07a9f4: 24050001 */ li $a1,0x1 +/* f07a9f8: 8fae018c */ lw $t6,0x18c($sp) +/* f07a9fc: 8fab0188 */ lw $t3,0x188($sp) +/* f07aa00: 8faf0194 */ lw $t7,0x194($sp) +/* f07aa04: 15c00003 */ bnez $t6,.PB0f07aa14 +/* f07aa08: 27a40168 */ addiu $a0,$sp,0x168 +/* f07aa0c: 51600009 */ beqzl $t3,.PB0f07aa34 +/* f07aa10: 8fb90148 */ lw $t9,0x148($sp) +.PB0f07aa14: +/* f07aa14: 91e200a9 */ lbu $v0,0xa9($t7) +/* f07aa18: 240100ff */ li $at,0xff +/* f07aa1c: 58400005 */ blezl $v0,.PB0f07aa34 +/* f07aa20: 8fb90148 */ lw $t9,0x148($sp) +/* f07aa24: 10410002 */ beq $v0,$at,.PB0f07aa30 +/* f07aa28: 2458ffff */ addiu $t8,$v0,-1 +/* f07aa2c: a1f800a9 */ sb $t8,0xa9($t7) +.PB0f07aa30: +/* f07aa30: 8fb90148 */ lw $t9,0x148($sp) +.PB0f07aa34: +/* f07aa34: 27a5013c */ addiu $a1,$sp,0x13c +/* f07aa38: 27a60158 */ addiu $a2,$sp,0x158 +/* f07aa3c: 13200024 */ beqz $t9,.PB0f07aad0 +/* f07aa40: 27a7012c */ addiu $a3,$sp,0x12c +/* f07aa44: afa00010 */ sw $zero,0x10($sp) +/* f07aa48: 0c0062e6 */ jal 0x18b98 +/* f07aa4c: afa00014 */ sw $zero,0x14($sp) +/* f07aa50: 0fc4fe8e */ jal 0xf13fa38 +/* f07aa54: 8fa40110 */ lw $a0,0x110($sp) +/* f07aa58: 1040000b */ beqz $v0,.PB0f07aa88 +/* f07aa5c: 8faa0194 */ lw $t2,0x194($sp) +/* f07aa60: 24080019 */ li $t0,0x19 +/* f07aa64: afa80014 */ sw $t0,0x14($sp) +/* f07aa68: 87a4012c */ lh $a0,0x12c($sp) +/* f07aa6c: 00002825 */ move $a1,$zero +/* f07aa70: 27a6013c */ addiu $a2,$sp,0x13c +/* f07aa74: 00003825 */ move $a3,$zero +/* f07aa78: 0fc4c3dd */ jal 0xf130f74 +/* f07aa7c: afa00010 */ sw $zero,0x10($sp) +/* f07aa80: 1000000f */ b .PB0f07aac0 +/* f07aa84: 27a40118 */ addiu $a0,$sp,0x118 +.PB0f07aa88: +/* f07aa88: 85490004 */ lh $t1,0x4($t2) +/* f07aa8c: 24010144 */ li $at,0x144 +/* f07aa90: 87a4012c */ lh $a0,0x12c($sp) +/* f07aa94: 15210003 */ bne $t1,$at,.PB0f07aaa4 +/* f07aa98: 00002825 */ move $a1,$zero +/* f07aa9c: 10000002 */ b .PB0f07aaa8 +/* f07aaa0: 24020017 */ li $v0,0x17 +.PB0f07aaa4: +/* f07aaa4: 00001025 */ move $v0,$zero +.PB0f07aaa8: +/* f07aaa8: 27a6013c */ addiu $a2,$sp,0x13c +/* f07aaac: 00003825 */ move $a3,$zero +/* f07aab0: afa00010 */ sw $zero,0x10($sp) +/* f07aab4: 0fc4c3dd */ jal 0xf130f74 +/* f07aab8: afa20014 */ sw $v0,0x14($sp) +/* f07aabc: 27a40118 */ addiu $a0,$sp,0x118 +.PB0f07aac0: +/* f07aac0: 27a5013c */ addiu $a1,$sp,0x13c +/* f07aac4: 2406ffff */ li $a2,-1 +/* f07aac8: 0fc2a219 */ jal 0xf0a8864 +/* f07aacc: 27a7012c */ addiu $a3,$sp,0x12c +.PB0f07aad0: +/* f07aad0: 8fac0128 */ lw $t4,0x128($sp) +/* f07aad4: c7a8013c */ lwc1 $f8,0x13c($sp) +/* f07aad8: c7a40168 */ lwc1 $f4,0x168($sp) +/* f07aadc: 51800097 */ beqzl $t4,.PB0f07ad3c +/* f07aae0: 8fa80194 */ lw $t0,0x194($sp) +/* f07aae4: 46044181 */ sub.s $f6,$f8,$f4 +/* f07aae8: c7aa0140 */ lwc1 $f10,0x140($sp) +/* f07aaec: c7b0016c */ lwc1 $f16,0x16c($sp) +/* f07aaf0: c7a40170 */ lwc1 $f4,0x170($sp) +/* f07aaf4: c7a80144 */ lwc1 $f8,0x144($sp) +/* f07aaf8: 46105481 */ sub.s $f18,$f10,$f16 +/* f07aafc: 8fad0194 */ lw $t5,0x194($sp) +/* f07ab00: 46063402 */ mul.s $f16,$f6,$f6 +/* f07ab04: 46044281 */ sub.s $f10,$f8,$f4 +/* f07ab08: 8da3009c */ lw $v1,0x9c($t5) +/* f07ab0c: 46129202 */ mul.s $f8,$f18,$f18 +/* f07ab10: e7a60068 */ swc1 $f6,0x68($sp) +/* f07ab14: e7aa0070 */ swc1 $f10,0x70($sp) +/* f07ab18: c7aa0070 */ lwc1 $f10,0x70($sp) +/* f07ab1c: c7a60070 */ lwc1 $f6,0x70($sp) +/* f07ab20: e7b2006c */ swc1 $f18,0x6c($sp) +/* f07ab24: afa30078 */ sw $v1,0x78($sp) +/* f07ab28: 46065482 */ mul.s $f18,$f10,$f6 +/* f07ab2c: 46088100 */ add.s $f4,$f16,$f8 +/* f07ab30: 0c012ae4 */ jal 0x4ab90 +/* f07ab34: 46049300 */ add.s $f12,$f18,$f4 +/* f07ab38: 44808000 */ mtc1 $zero,$f16 +/* f07ab3c: 8fa30078 */ lw $v1,0x78($sp) +/* f07ab40: 46000306 */ mov.s $f12,$f0 +/* f07ab44: 4600803c */ c.lt.s $f16,$f0 +/* f07ab48: 3c017f1b */ lui $at,0x7f1b +/* f07ab4c: c7a80168 */ lwc1 $f8,0x168($sp) +/* f07ab50: 4502007a */ bc1fl .PB0f07ad3c +/* f07ab54: 8fa80194 */ lw $t0,0x194($sp) +/* f07ab58: c42ec284 */ lwc1 $f14,-0x3d7c($at) +/* f07ab5c: e4680004 */ swc1 $f8,0x4($v1) +/* f07ab60: 3c013f80 */ lui $at,0x3f80 +/* f07ab64: 44814000 */ mtc1 $at,$f8 +/* f07ab68: c7aa016c */ lwc1 $f10,0x16c($sp) +/* f07ab6c: 4600703c */ c.lt.s $f14,$f0 +/* f07ab70: 240f002b */ li $t7,0x2b +/* f07ab74: 46004083 */ div.s $f2,$f8,$f0 +/* f07ab78: e46a0008 */ swc1 $f10,0x8($v1) +/* f07ab7c: c7a60170 */ lwc1 $f6,0x170($sp) +/* f07ab80: 2418000c */ li $t8,0xc +/* f07ab84: e466000c */ swc1 $f6,0xc($v1) +/* f07ab88: c7b20068 */ lwc1 $f18,0x68($sp) +/* f07ab8c: e4720010 */ swc1 $f18,0x10($v1) +/* f07ab90: c7a4006c */ lwc1 $f4,0x6c($sp) +/* f07ab94: c46a0010 */ lwc1 $f10,0x10($v1) +/* f07ab98: e4640014 */ swc1 $f4,0x14($v1) +/* f07ab9c: c7b00070 */ lwc1 $f16,0x70($sp) +/* f07aba0: c4720014 */ lwc1 $f18,0x14($v1) +/* f07aba4: e4700018 */ swc1 $f16,0x18($v1) +/* f07aba8: c4700018 */ lwc1 $f16,0x18($v1) +/* f07abac: 46025182 */ mul.s $f6,$f10,$f2 +/* f07abb0: 00000000 */ nop +/* f07abb4: 46029102 */ mul.s $f4,$f18,$f2 +/* f07abb8: 00000000 */ nop +/* f07abbc: 46028202 */ mul.s $f8,$f16,$f2 +/* f07abc0: e4660010 */ swc1 $f6,0x10($v1) +/* f07abc4: e4640014 */ swc1 $f4,0x14($v1) +/* f07abc8: 45000002 */ bc1f .PB0f07abd4 +/* f07abcc: e4680018 */ swc1 $f8,0x18($v1) +/* f07abd0: 46007306 */ mov.s $f12,$f14 +.PB0f07abd4: +/* f07abd4: a0600000 */ sb $zero,0x0($v1) +/* f07abd8: 8fae0194 */ lw $t6,0x194($sp) +/* f07abdc: 24010144 */ li $at,0x144 +/* f07abe0: 85cb0004 */ lh $t3,0x4($t6) +/* f07abe4: 55610004 */ bnel $t3,$at,.PB0f07abf8 +/* f07abe8: a06f0001 */ sb $t7,0x1($v1) +/* f07abec: 10000002 */ b .PB0f07abf8 +/* f07abf0: a0780001 */ sb $t8,0x1($v1) +/* f07abf4: a06f0001 */ sb $t7,0x1($v1) +.PB0f07abf8: +/* f07abf8: 3c0143fa */ lui $at,0x43fa +/* f07abfc: 44810000 */ mtc1 $at,$f0 +/* f07ac00: e46c001c */ swc1 $f12,0x1c($v1) +/* f07ac04: 4600603c */ c.lt.s $f12,$f0 +/* f07ac08: 00000000 */ nop +/* f07ac0c: 45020003 */ bc1fl .PB0f07ac1c +/* f07ac10: 80790001 */ lb $t9,0x1($v1) +/* f07ac14: 46000306 */ mov.s $f12,$f0 +/* f07ac18: 80790001 */ lb $t9,0x1($v1) +.PB0f07ac1c: +/* f07ac1c: 2401001d */ li $at,0x1d +/* f07ac20: 17210026 */ bne $t9,$at,.PB0f07acbc +/* f07ac24: 3c017f1b */ lui $at,0x7f1b +/* f07ac28: c422c288 */ lwc1 $f2,-0x3d78($at) +/* f07ac2c: 3c013e80 */ lui $at,0x3e80 +/* f07ac30: 44815000 */ mtc1 $at,$f10 +/* f07ac34: 3c017f1b */ lui $at,0x7f1b +/* f07ac38: 460c5182 */ mul.s $f6,$f10,$f12 +/* f07ac3c: e4660020 */ swc1 $f6,0x20($v1) +/* f07ac40: c432c28c */ lwc1 $f18,-0x3d74($at) +/* f07ac44: 460c9002 */ mul.s $f0,$f18,$f12 +/* f07ac48: 4600103c */ c.lt.s $f2,$f0 +/* f07ac4c: e4600024 */ swc1 $f0,0x24($v1) +/* f07ac50: 45020003 */ bc1fl .PB0f07ac60 +/* f07ac54: afa30078 */ sw $v1,0x78($sp) +/* f07ac58: e4620024 */ swc1 $f2,0x24($v1) +/* f07ac5c: afa30078 */ sw $v1,0x78($sp) +.PB0f07ac60: +/* f07ac60: 0c004be0 */ jal 0x12f80 +/* f07ac64: e7ac007c */ swc1 $f12,0x7c($sp) +/* f07ac68: 44822000 */ mtc1 $v0,$f4 +/* f07ac6c: 8fa30078 */ lw $v1,0x78($sp) +/* f07ac70: c7ac007c */ lwc1 $f12,0x7c($sp) +/* f07ac74: 04410005 */ bgez $v0,.PB0f07ac8c +/* f07ac78: 46802420 */ cvt.s.w $f16,$f4 +/* f07ac7c: 3c014f80 */ lui $at,0x4f80 +/* f07ac80: 44814000 */ mtc1 $at,$f8 +/* f07ac84: 00000000 */ nop +/* f07ac88: 46088400 */ add.s $f16,$f16,$f8 +.PB0f07ac8c: +/* f07ac8c: 3c012f80 */ lui $at,0x2f80 +/* f07ac90: 44815000 */ mtc1 $at,$f10 +/* f07ac94: 3c017f1b */ lui $at,0x7f1b +/* f07ac98: c432c290 */ lwc1 $f18,-0x3d70($at) +/* f07ac9c: 460a8182 */ mul.s $f6,$f16,$f10 +/* f07aca0: 3c017f1b */ lui $at,0x7f1b +/* f07aca4: c428c294 */ lwc1 $f8,-0x3d6c($at) +/* f07aca8: 46123102 */ mul.s $f4,$f6,$f18 +/* f07acac: 46044401 */ sub.s $f16,$f8,$f4 +/* f07acb0: 460c8282 */ mul.s $f10,$f16,$f12 +/* f07acb4: 10000020 */ b .PB0f07ad38 +/* f07acb8: e46a0028 */ swc1 $f10,0x28($v1) +.PB0f07acbc: +/* f07acbc: 3c017f1b */ lui $at,0x7f1b +/* f07acc0: c422c298 */ lwc1 $f2,-0x3d68($at) +/* f07acc4: 3c017f1b */ lui $at,0x7f1b +/* f07acc8: c426c29c */ lwc1 $f6,-0x3d64($at) +/* f07accc: 460c3002 */ mul.s $f0,$f6,$f12 +/* f07acd0: 4600103c */ c.lt.s $f2,$f0 +/* f07acd4: e4600020 */ swc1 $f0,0x20($v1) +/* f07acd8: e4600024 */ swc1 $f0,0x24($v1) +/* f07acdc: 45000002 */ bc1f .PB0f07ace8 +/* f07ace0: 00000000 */ nop +/* f07ace4: e4620024 */ swc1 $f2,0x24($v1) +.PB0f07ace8: +/* f07ace8: 0c004be0 */ jal 0x12f80 +/* f07acec: afa30078 */ sw $v1,0x78($sp) +/* f07acf0: 44829000 */ mtc1 $v0,$f18 +/* f07acf4: 8fa30078 */ lw $v1,0x78($sp) +/* f07acf8: 04410005 */ bgez $v0,.PB0f07ad10 +/* f07acfc: 46809220 */ cvt.s.w $f8,$f18 +/* f07ad00: 3c014f80 */ lui $at,0x4f80 +/* f07ad04: 44812000 */ mtc1 $at,$f4 +/* f07ad08: 00000000 */ nop +/* f07ad0c: 46044200 */ add.s $f8,$f8,$f4 +.PB0f07ad10: +/* f07ad10: 3c012f80 */ lui $at,0x2f80 +/* f07ad14: 44818000 */ mtc1 $at,$f16 +/* f07ad18: 3c013f80 */ lui $at,0x3f80 +/* f07ad1c: 44813000 */ mtc1 $at,$f6 +/* f07ad20: 46104002 */ mul.s $f0,$f8,$f16 +/* f07ad24: c4640020 */ lwc1 $f4,0x20($v1) +/* f07ad28: 46000280 */ add.s $f10,$f0,$f0 +/* f07ad2c: 46065481 */ sub.s $f18,$f10,$f6 +/* f07ad30: 46049202 */ mul.s $f8,$f18,$f4 +/* f07ad34: e4680028 */ swc1 $f8,0x28($v1) +.PB0f07ad38: +/* f07ad38: 8fa80194 */ lw $t0,0x194($sp) +.PB0f07ad3c: +/* f07ad3c: 3c09800a */ lui $t1,0x800a +/* f07ad40: 8d29e4d8 */ lw $t1,-0x1b28($t1) +/* f07ad44: 8d0a0098 */ lw $t2,0x98($t0) +/* f07ad48: 240c0002 */ li $t4,0x2 +/* f07ad4c: 24050001 */ li $a1,0x1 +/* f07ad50: 0149082a */ slt $at,$t2,$t1 +/* f07ad54: 1020002d */ beqz $at,.PB0f07ae0c +/* f07ad58: 3406ffff */ li $a2,0xffff +/* f07ad5c: afac0064 */ sw $t4,0x64($sp) +/* f07ad60: 0fc24943 */ jal 0xf09250c +/* f07ad64: 8fa40198 */ lw $a0,0x198($sp) +/* f07ad68: 8fad0174 */ lw $t5,0x174($sp) +/* f07ad6c: 8fae0194 */ lw $t6,0x194($sp) +/* f07ad70: 00002025 */ move $a0,$zero +/* f07ad74: 15a0001f */ bnez $t5,.PB0f07adf4 +/* f07ad78: 2407ffff */ li $a3,-1 +/* f07ad7c: 85c30004 */ lh $v1,0x4($t6) +/* f07ad80: 24010144 */ li $at,0x144 +/* f07ad84: 3402806f */ li $v0,0x806f +/* f07ad88: 14610002 */ bne $v1,$at,.PB0f07ad94 +/* f07ad8c: 240fffff */ li $t7,-1 +/* f07ad90: 34028040 */ li $v0,0x8040 +.PB0f07ad94: +/* f07ad94: 24010157 */ li $at,0x157 +/* f07ad98: 14610004 */ bne $v1,$at,.PB0f07adac +/* f07ad9c: 2419ffff */ li $t9,-1 +/* f07ada0: 240b0004 */ li $t3,0x4 +/* f07ada4: 34028044 */ li $v0,0x8044 +/* f07ada8: afab0064 */ sw $t3,0x64($sp) +.PB0f07adac: +/* f07adac: 3c01bf80 */ lui $at,0xbf80 +/* f07adb0: 44810000 */ mtc1 $at,$f0 +/* f07adb4: 00023400 */ sll $a2,$v0,0x10 +/* f07adb8: 0006c403 */ sra $t8,$a2,0x10 +/* f07adbc: 03003025 */ move $a2,$t8 +/* f07adc0: 8fa50198 */ lw $a1,0x198($sp) +/* f07adc4: afaf0010 */ sw $t7,0x10($sp) +/* f07adc8: afa00014 */ sw $zero,0x14($sp) +/* f07adcc: afa00018 */ sw $zero,0x18($sp) +/* f07add0: afa0001c */ sw $zero,0x1c($sp) +/* f07add4: afa00020 */ sw $zero,0x20($sp) +/* f07add8: afa00028 */ sw $zero,0x28($sp) +/* f07addc: afb9002c */ sw $t9,0x2c($sp) +/* f07ade0: e7a00024 */ swc1 $f0,0x24($sp) +/* f07ade4: e7a00030 */ swc1 $f0,0x30($sp) +/* f07ade8: e7a00034 */ swc1 $f0,0x34($sp) +/* f07adec: 0fc24e0e */ jal 0xf093838 +/* f07adf0: e7a00038 */ swc1 $f0,0x38($sp) +.PB0f07adf4: +/* f07adf4: 3c0a800a */ lui $t2,0x800a +/* f07adf8: 8d4ae4d8 */ lw $t2,-0x1b28($t2) +/* f07adfc: 8fa80064 */ lw $t0,0x64($sp) +/* f07ae00: 8fac0194 */ lw $t4,0x194($sp) +/* f07ae04: 010a4821 */ addu $t1,$t0,$t2 +/* f07ae08: ad890098 */ sw $t1,0x98($t4) +.PB0f07ae0c: +/* f07ae0c: 8fad0184 */ lw $t5,0x184($sp) +.PB0f07ae10: +/* f07ae10: 24050005 */ li $a1,0x5 +/* f07ae14: 0c006cdb */ jal 0x1b36c +/* f07ae18: 8da40008 */ lw $a0,0x8($t5) +/* f07ae1c: 10400005 */ beqz $v0,.PB0f07ae34 +/* f07ae20: 00402825 */ move $a1,$v0 +/* f07ae24: 0c006d1b */ jal 0x1b46c +/* f07ae28: 8fa40184 */ lw $a0,0x184($sp) +/* f07ae2c: 8fae018c */ lw $t6,0x18c($sp) +/* f07ae30: a44e0000 */ sh $t6,0x0($v0) +.PB0f07ae34: +/* f07ae34: 8fab0184 */ lw $t3,0x184($sp) +/* f07ae38: 24050007 */ li $a1,0x7 +/* f07ae3c: 0c006cdb */ jal 0x1b36c +/* f07ae40: 8d640008 */ lw $a0,0x8($t3) +/* f07ae44: 10400005 */ beqz $v0,.PB0f07ae5c +/* f07ae48: 00402825 */ move $a1,$v0 +/* f07ae4c: 0c006d1b */ jal 0x1b46c +/* f07ae50: 8fa40184 */ lw $a0,0x184($sp) +/* f07ae54: 8fb80188 */ lw $t8,0x188($sp) +/* f07ae58: a4580000 */ sh $t8,0x0($v0) +.PB0f07ae5c: +/* f07ae5c: 8fbf0044 */ lw $ra,0x44($sp) +/* f07ae60: 27bd0198 */ addiu $sp,$sp,0x198 +/* f07ae64: 03e00008 */ jr $ra +/* f07ae68: 00000000 */ nop +); #elif VERSION >= VERSION_NTSC_1_0 GLOBAL_ASM( glabel func0f079f1c diff --git a/src/game/sight.c b/src/game/sight.c index 3dc128642..7650845e3 100644 --- a/src/game/sight.c +++ b/src/game/sight.c @@ -3387,7 +3387,7 @@ glabel var7f1adde8 ); #endif -#if VERSION >= VERSION_PAL_FINAL +#if VERSION >= VERSION_PAL_BETA GLOBAL_ASM( glabel sightRenderDefault .late_rodata diff --git a/src/game/title.c b/src/game/title.c index d28eba997..899874500 100644 --- a/src/game/title.c +++ b/src/game/title.c @@ -6611,7 +6611,7 @@ void titleInitNintendoLogo(void) g_TitleFastForward = false; if (g_TitleButtonPressed) { - g_TitleTimer = PAL ? 133 : 180; + g_TitleTimer = VERSION >= VERSION_PAL_FINAL ? TICKS(160) : TICKS(180); } else { g_TitleTimer = 0; } @@ -6686,7 +6686,7 @@ Gfx *titleRenderNintendoLogo(Gfx *gdl) s32 i; s32 j; Mtxf sp108; - f32 fracdone = g_TitleTimer / (PAL ? 183.0f : 240.0f); + f32 fracdone = g_TitleTimer / (VERSION >= VERSION_PAL_FINAL ? 183.0f : TICKS(240.0f)); struct coord spf8 = {0, 0, 0}; s32 v0; diff --git a/src/game/training/menus.c b/src/game/training/menus.c index bb6c0dc95..1c113a266 100644 --- a/src/game/training/menus.c +++ b/src/game/training/menus.c @@ -1125,6 +1125,12 @@ s32 ciCharacterProfileMenuDialog(s32 operation, struct menudialogdef *dialogdef, x = -127; } } +#elif VERSION >= VERSION_PAL_BETA + x = -117; + + if (optionsGetScreenRatio() == SCREENRATIO_16_9) { + x = -87; + } #else x = -130; @@ -1192,7 +1198,7 @@ s32 ciCharacterProfileMenuDialog(s32 operation, struct menudialogdef *dialogdef, if (g_Menus[g_MpPlayerNum].unk840.unk578 > 0) { g_Menus[g_MpPlayerNum].unk840.unk578 -= g_Vars.diffframe60; } else { -#if VERSION >= VERSION_PAL_FINAL +#if VERSION >= VERSION_PAL_BETA f32 tmp = g_Menus[g_MpPlayerNum].unk840.unk524 + 0.01f * g_Vars.diffframe60freal; #else f32 tmp = g_Menus[g_MpPlayerNum].unk840.unk524 + 0.01f * g_Vars.diffframe60f; @@ -1376,6 +1382,14 @@ s32 dtTrainingDetailsMenuDialog(s32 operation, struct menudialogdef *dialogdef, g_Menus[g_MpPlayerNum].unk840.unk510 = 84; } } +#elif VERSION >= VERSION_PAL_BETA + if (optionsGetScreenRatio() == SCREENRATIO_16_9) { + g_Menus[g_MpPlayerNum].unk840.unk538 = 64; + g_Menus[g_MpPlayerNum].unk840.unk510 = 64; + } else { + g_Menus[g_MpPlayerNum].unk840.unk538 = 84; + g_Menus[g_MpPlayerNum].unk840.unk510 = 84; + } #else if (optionsGetScreenRatio() == SCREENRATIO_16_9) { g_Menus[g_MpPlayerNum].unk840.unk538 = 70; @@ -1855,7 +1869,7 @@ s32 ciHangarTitleMenuHandler(s32 operation, struct menuitem *item, union handler return 0; } -#if VERSION >= VERSION_PAL_FINAL +#if VERSION >= VERSION_PAL_BETA GLOBAL_ASM( glabel ciHangarHolographMenuDialog .late_rodata diff --git a/src/game/training/training.c b/src/game/training/training.c index 4b0feced5..4ef100bbe 100644 --- a/src/game/training/training.c +++ b/src/game/training/training.c @@ -9610,7 +9610,7 @@ Gfx *frRenderHud(Gfx *gdl) f32 mult; if (viGetViewWidth() > (VERSION >= VERSION_PAL_FINAL ? 330 : 400)) { - mult = PAL ? 1.5f : 2; + mult = VERSION >= VERSION_PAL_FINAL ? 1.5f : 2; } else { mult = 1; } diff --git a/src/game/weather/weather.c b/src/game/weather/weather.c index 50667af0d..ec65166ac 100644 --- a/src/game/weather/weather.c +++ b/src/game/weather/weather.c @@ -379,7 +379,7 @@ void weatherTickRain(struct weatherdata *weather) for (i = 0; i != ARRAYCOUNT(data->particles); i++) { struct weatherparticle *particle = &data->particles[i]; -#if VERSION >= VERSION_PAL_FINAL +#if VERSION >= VERSION_PAL_BETA particle->pos.x += particle->inc.x * g_Vars.lvupdate240freal; particle->pos.y += particle->inc.y * g_Vars.lvupdate240freal; particle->pos.z += particle->inc.z * g_Vars.lvupdate240freal; @@ -475,7 +475,7 @@ void weatherTickSnow(struct weatherdata *weather) data = g_WeatherData->particledata[0]; // 0 - data->unk3ec8[0] += 0.04f * (VERSION >= VERSION_PAL_FINAL ? g_Vars.lvupdate240freal : g_Vars.lvupdate240f); + data->unk3ec8[0] += 0.04f * (VERSION >= VERSION_PAL_BETA ? g_Vars.lvupdate240freal : g_Vars.lvupdate240f); if (data->unk3ec8[0] < 0) { data->unk3ec8[0] += M_TAU; @@ -486,7 +486,7 @@ void weatherTickSnow(struct weatherdata *weather) } // 1 - data->unk3ec8[1] += -0.03f * (VERSION >= VERSION_PAL_FINAL ? g_Vars.lvupdate240freal : g_Vars.lvupdate240f); + data->unk3ec8[1] += -0.03f * (VERSION >= VERSION_PAL_BETA ? g_Vars.lvupdate240freal : g_Vars.lvupdate240f); if (data->unk3ec8[1] < 0) { data->unk3ec8[1] += M_TAU; @@ -497,7 +497,7 @@ void weatherTickSnow(struct weatherdata *weather) } // 2 - data->unk3ec8[2] += 0.04f * (VERSION >= VERSION_PAL_FINAL ? g_Vars.lvupdate240freal : g_Vars.lvupdate240f); + data->unk3ec8[2] += 0.04f * (VERSION >= VERSION_PAL_BETA ? g_Vars.lvupdate240freal : g_Vars.lvupdate240f); if (data->unk3ec8[2] < 0) { data->unk3ec8[2] += M_TAU; @@ -508,7 +508,7 @@ void weatherTickSnow(struct weatherdata *weather) } // 3 - data->unk3ec8[3] += 0.03f * (VERSION >= VERSION_PAL_FINAL ? g_Vars.lvupdate240freal : g_Vars.lvupdate240f); + data->unk3ec8[3] += 0.03f * (VERSION >= VERSION_PAL_BETA ? g_Vars.lvupdate240freal : g_Vars.lvupdate240f); if (data->unk3ec8[3] < 0) { data->unk3ec8[3] += M_TAU; @@ -519,7 +519,7 @@ void weatherTickSnow(struct weatherdata *weather) } // 4 - data->unk3ec8[4] += 0.02f * (VERSION >= VERSION_PAL_FINAL ? g_Vars.lvupdate240freal : g_Vars.lvupdate240f); + data->unk3ec8[4] += 0.02f * (VERSION >= VERSION_PAL_BETA ? g_Vars.lvupdate240freal : g_Vars.lvupdate240f); if (data->unk3ec8[4] < 0) { data->unk3ec8[4] += M_TAU; @@ -530,7 +530,7 @@ void weatherTickSnow(struct weatherdata *weather) } // 5 - data->unk3ec8[5] += 0.01f * (VERSION >= VERSION_PAL_FINAL ? g_Vars.lvupdate240freal : g_Vars.lvupdate240f); + data->unk3ec8[5] += 0.01f * (VERSION >= VERSION_PAL_BETA ? g_Vars.lvupdate240freal : g_Vars.lvupdate240f); if (data->unk3ec8[5] < 0) { data->unk3ec8[5] += M_TAU; @@ -541,7 +541,7 @@ void weatherTickSnow(struct weatherdata *weather) } // 6 - data->unk3ec8[6] += -0.01f * (VERSION >= VERSION_PAL_FINAL ? g_Vars.lvupdate240freal : g_Vars.lvupdate240f); + data->unk3ec8[6] += -0.01f * (VERSION >= VERSION_PAL_BETA ? g_Vars.lvupdate240freal : g_Vars.lvupdate240f); if (data->unk3ec8[6] < 0) { data->unk3ec8[6] += M_TAU; @@ -552,7 +552,7 @@ void weatherTickSnow(struct weatherdata *weather) } // 7 - data->unk3ec8[7] += -0.02f * (VERSION >= VERSION_PAL_FINAL ? g_Vars.lvupdate240freal : g_Vars.lvupdate240f); + data->unk3ec8[7] += -0.02f * (VERSION >= VERSION_PAL_BETA ? g_Vars.lvupdate240freal : g_Vars.lvupdate240f); if (data->unk3ec8[7] < 0) { data->unk3ec8[7] += M_TAU; @@ -565,7 +565,7 @@ void weatherTickSnow(struct weatherdata *weather) for (i = 0; i < ARRAYCOUNT(data->particles); i++) { struct weatherparticle *particle = &data->particles[i]; -#if VERSION >= VERSION_PAL_FINAL +#if VERSION >= VERSION_PAL_BETA particle->pos.x += particle->inc.x * g_Vars.lvupdate240freal; particle->pos.y += particle->inc.y * g_Vars.lvupdate240freal; particle->pos.z += particle->inc.z * g_Vars.lvupdate240freal; diff --git a/src/lib/dma.c b/src/lib/dma.c index fefd40496..042f0914c 100644 --- a/src/lib/dma.c +++ b/src/lib/dma.c @@ -5,8 +5,10 @@ #include "data.h" #include "types.h" -#if VERSION < VERSION_NTSC_1_0 +#if VERSION == VERSION_NTSC_BETA u8 var80097110nb[0x950]; +#elif VERSION == VERSION_PAL_BETA +u8 var80097110nb[0x860]; #endif volatile u32 g_DmaNumSlotsBusy; diff --git a/src/lib/memp.c b/src/lib/memp.c index d2c9f26b3..69fc22adb 100644 --- a/src/lib/memp.c +++ b/src/lib/memp.c @@ -281,7 +281,7 @@ u32 mempGetPoolSize(u8 poolnum, u32 bank) } #endif -#if VERSION <= VERSION_NTSC_1_0 +#if VERSION < VERSION_NTSC_1_0 void *mempAllocFromPackedWord(u32 word) { return mempAlloc(word >> 4, word & 0x0f); diff --git a/src/lib/model.c b/src/lib/model.c index df7ac9da5..773f7ef98 100644 --- a/src/lib/model.c +++ b/src/lib/model.c @@ -30,7 +30,7 @@ bool var8005efbc = false; f32 var8005efc0 = 0; bool (*var8005efc4)(struct model *model, struct modelnode *node) = NULL; -#if VERSION >= VERSION_PAL_FINAL +#if VERSION >= VERSION_PAL_BETA u32 var8005efd8_2 = 0; #endif @@ -3539,10 +3539,6 @@ void model0001e14c(struct model *model, f32 arg1, f32 arg2) } } -#if VERSION == VERSION_PAL_BETA -u32 var80060670pb = 0; -#endif - bool var8005efdc = true; u32 var8005efe0 = 0x00000000; u32 var8005efe4 = 0x00000000; diff --git a/src/lib/ultra/io/conteepread.c b/src/lib/ultra/io/conteepread.c index 300fa9318..7ce1f608f 100644 --- a/src/lib/ultra/io/conteepread.c +++ b/src/lib/ultra/io/conteepread.c @@ -5,7 +5,7 @@ OSPifRam __osEepPifRam; -#if VERSION >= VERSION_PAL_FINAL +#if VERSION >= VERSION_PAL_BETA u32 var8009d010pf[4]; #endif diff --git a/src/lib/ultra/os/initialize2.c b/src/lib/ultra/os/initialize2.c index 4053e11f1..850370cc7 100644 --- a/src/lib/ultra/os/initialize2.c +++ b/src/lib/ultra/os/initialize2.c @@ -2,6 +2,7 @@ #include #include #include +#include "versions.h" /** * Note: This file is included in PAL only. @@ -25,6 +26,7 @@ s32 osViClock = VI_NTSC_CLOCK; u32 var80060fecpf = 0; u32 var80060ff0pf = OS_IM_ALL; +#if VERSION >= VERSION_PAL_FINAL GLOBAL_ASM( glabel osInitialize2 /* 517c0: 27bdffc8 */ addiu $sp,$sp,-56 @@ -208,6 +210,191 @@ glabel osInitialize2 /* 51a60: 03e00008 */ jr $ra /* 51a64: 00000000 */ nop ); +#else +GLOBAL_ASM( +glabel osInitialize2 +/* 52480: 27bdffc8 */ addiu $sp,$sp,-56 +/* 52484: afbf001c */ sw $ra,0x1c($sp) +/* 52488: 240e0001 */ li $t6,0x1 +/* 5248c: 3c018009 */ lui $at,0x8009 +/* 52490: afb00018 */ sw $s0,0x18($sp) +/* 52494: afa00030 */ sw $zero,0x30($sp) +/* 52498: 0c012ca4 */ jal 0x4b290 +/* 5249c: ac2e2f40 */ sw $t6,0x2f40($at) +/* 524a0: 00408025 */ move $s0,$v0 +/* 524a4: 3c012000 */ lui $at,0x2000 +/* 524a8: 0c012ca0 */ jal 0x4b280 +/* 524ac: 02012025 */ or $a0,$s0,$at +/* 524b0: 3c040100 */ lui $a0,0x100 +/* 524b4: 0c0121e8 */ jal 0x487a0 +/* 524b8: 34840800 */ ori $a0,$a0,0x800 +/* 524bc: 3c041fc0 */ lui $a0,0x1fc0 +/* 524c0: 348407fc */ ori $a0,$a0,0x7fc +/* 524c4: 0c012ca8 */ jal 0x4b2a0 +/* 524c8: 27a50034 */ addiu $a1,$sp,0x34 +/* 524cc: 10400007 */ beqz $v0,.PB000524ec +/* 524d0: 00000000 */ nop +.PB000524d4: +/* 524d4: 3c041fc0 */ lui $a0,0x1fc0 +/* 524d8: 348407fc */ ori $a0,$a0,0x7fc +/* 524dc: 0c012ca8 */ jal 0x4b2a0 +/* 524e0: 27a50034 */ addiu $a1,$sp,0x34 +/* 524e4: 1440fffb */ bnez $v0,.PB000524d4 +/* 524e8: 00000000 */ nop +.PB000524ec: +/* 524ec: 8fa50034 */ lw $a1,0x34($sp) +/* 524f0: 3c041fc0 */ lui $a0,0x1fc0 +/* 524f4: 348407fc */ ori $a0,$a0,0x7fc +/* 524f8: 34af0008 */ ori $t7,$a1,0x8 +/* 524fc: 0c012cbc */ jal 0x4b2f0 +/* 52500: 01e02825 */ move $a1,$t7 +/* 52504: 10400009 */ beqz $v0,.PB0005252c +/* 52508: 00000000 */ nop +.PB0005250c: +/* 5250c: 8fa50034 */ lw $a1,0x34($sp) +/* 52510: 3c041fc0 */ lui $a0,0x1fc0 +/* 52514: 348407fc */ ori $a0,$a0,0x7fc +/* 52518: 34b80008 */ ori $t8,$a1,0x8 +/* 5251c: 0c012cbc */ jal 0x4b2f0 +/* 52520: 03002825 */ move $a1,$t8 +/* 52524: 1440fff9 */ bnez $v0,.PB0005250c +/* 52528: 00000000 */ nop +.PB0005252c: +/* 5252c: 3c087000 */ lui $t0,0x7000 +/* 52530: 250834c0 */ addiu $t0,$t0,0x34c0 +/* 52534: 8d010000 */ lw $at,0x0($t0) +/* 52538: 3c198000 */ lui $t9,0x8000 +/* 5253c: 3c0d7000 */ lui $t5,0x7000 +/* 52540: af210000 */ sw $at,0x0($t9) +/* 52544: 8d0b0004 */ lw $t3,0x4($t0) +/* 52548: 25ad34c0 */ addiu $t5,$t5,0x34c0 +/* 5254c: 3c0c8000 */ lui $t4,0x8000 +/* 52550: af2b0004 */ sw $t3,0x4($t9) +/* 52554: 8d010008 */ lw $at,0x8($t0) +/* 52558: 358c0080 */ ori $t4,$t4,0x80 +/* 5255c: 3c097000 */ lui $t1,0x7000 +/* 52560: af210008 */ sw $at,0x8($t9) +/* 52564: 8d0b000c */ lw $t3,0xc($t0) +/* 52568: 252934c0 */ addiu $t1,$t1,0x34c0 +/* 5256c: 3c0a8000 */ lui $t2,0x8000 +/* 52570: af2b000c */ sw $t3,0xc($t9) +/* 52574: 8da10000 */ lw $at,0x0($t5) +/* 52578: 354a0100 */ ori $t2,$t2,0x100 +/* 5257c: 3c0e7000 */ lui $t6,0x7000 +/* 52580: ad810000 */ sw $at,0x0($t4) +/* 52584: 8db80004 */ lw $t8,0x4($t5) +/* 52588: 25ce34c0 */ addiu $t6,$t6,0x34c0 +/* 5258c: 3c0f8000 */ lui $t7,0x8000 +/* 52590: ad980004 */ sw $t8,0x4($t4) +/* 52594: 8da10008 */ lw $at,0x8($t5) +/* 52598: 35ef0180 */ ori $t7,$t7,0x180 +/* 5259c: 3c048000 */ lui $a0,0x8000 +/* 525a0: ad810008 */ sw $at,0x8($t4) +/* 525a4: 8db8000c */ lw $t8,0xc($t5) +/* 525a8: 24050190 */ li $a1,0x190 +/* 525ac: ad98000c */ sw $t8,0xc($t4) +/* 525b0: 8d210000 */ lw $at,0x0($t1) +/* 525b4: ad410000 */ sw $at,0x0($t2) +/* 525b8: 8d2b0004 */ lw $t3,0x4($t1) +/* 525bc: ad4b0004 */ sw $t3,0x4($t2) +/* 525c0: 8d210008 */ lw $at,0x8($t1) +/* 525c4: ad410008 */ sw $at,0x8($t2) +/* 525c8: 8d2b000c */ lw $t3,0xc($t1) +/* 525cc: ad4b000c */ sw $t3,0xc($t2) +/* 525d0: 8dc10000 */ lw $at,0x0($t6) +/* 525d4: ade10000 */ sw $at,0x0($t7) +/* 525d8: 8dd80004 */ lw $t8,0x4($t6) +/* 525dc: adf80004 */ sw $t8,0x4($t7) +/* 525e0: 8dc10008 */ lw $at,0x8($t6) +/* 525e4: ade10008 */ sw $at,0x8($t7) +/* 525e8: 8dd8000c */ lw $t8,0xc($t6) +/* 525ec: 0c012cd0 */ jal 0x4b340 +/* 525f0: adf8000c */ sw $t8,0xc($t7) +/* 525f4: 3c048000 */ lui $a0,0x8000 +/* 525f8: 0c0121c4 */ jal 0x48710 +/* 525fc: 24050190 */ li $a1,0x190 +/* 52600: 0c0149ca */ jal 0x52728 +/* 52604: 00000000 */ nop +/* 52608: 0c014b50 */ jal 0x52d40 +/* 5260c: 00000000 */ nop +/* 52610: 0c000bf0 */ jal 0x2fc0 +/* 52614: 00000000 */ nop +/* 52618: 3c048006 */ lui $a0,0x8006 +/* 5261c: 3c058006 */ lui $a1,0x8006 +/* 52620: 8ca5d904 */ lw $a1,-0x26fc($a1) +/* 52624: 8c84d900 */ lw $a0,-0x2700($a0) +/* 52628: 24060000 */ li $a2,0x0 +/* 5262c: 0c013a0a */ jal 0x4e828 +/* 52630: 24070003 */ li $a3,0x3 +/* 52634: afa20020 */ sw $v0,0x20($sp) +/* 52638: afa30024 */ sw $v1,0x24($sp) +/* 5263c: 8fa50024 */ lw $a1,0x24($sp) +/* 52640: 8fa40020 */ lw $a0,0x20($sp) +/* 52644: 24060000 */ li $a2,0x0 +/* 52648: 0c0139ca */ jal 0x4e728 +/* 5264c: 24070004 */ li $a3,0x4 +/* 52650: 3c088000 */ lui $t0,0x8000 +/* 52654: 8d08030c */ lw $t0,0x30c($t0) +/* 52658: 3c018006 */ lui $at,0x8006 +/* 5265c: ac22d900 */ sw $v0,-0x2700($at) +/* 52660: 15000005 */ bnez $t0,.PB00052678 +/* 52664: ac23d904 */ sw $v1,-0x26fc($at) +/* 52668: 3c048000 */ lui $a0,0x8000 +/* 5266c: 2484031c */ addiu $a0,$a0,0x31c +/* 52670: 0c012cf0 */ jal 0x4b3c0 +/* 52674: 24050040 */ li $a1,0x40 +.PB00052678: +/* 52678: 3c198000 */ lui $t9,0x8000 +/* 5267c: 8f390300 */ lw $t9,0x300($t9) +/* 52680: 17200006 */ bnez $t9,.PB0005269c +/* 52684: 00000000 */ nop +/* 52688: 3c0a02f5 */ lui $t2,0x2f5 +/* 5268c: 354ab2d2 */ ori $t2,$t2,0xb2d2 +/* 52690: 3c018006 */ lui $at,0x8006 +/* 52694: 1000000f */ b .PB000526d4 +/* 52698: ac2a29d8 */ sw $t2,0x29d8($at) +.PB0005269c: +/* 5269c: 3c098000 */ lui $t1,0x8000 +/* 526a0: 8d290300 */ lw $t1,0x300($t1) +/* 526a4: 24010002 */ li $at,0x2 +/* 526a8: 15210006 */ bne $t1,$at,.PB000526c4 +/* 526ac: 00000000 */ nop +/* 526b0: 3c0b02e6 */ lui $t3,0x2e6 +/* 526b4: 356b025c */ ori $t3,$t3,0x25c +/* 526b8: 3c018006 */ lui $at,0x8006 +/* 526bc: 10000005 */ b .PB000526d4 +/* 526c0: ac2b29d8 */ sw $t3,0x29d8($at) +.PB000526c4: +/* 526c4: 3c0d02e6 */ lui $t5,0x2e6 +/* 526c8: 35add354 */ ori $t5,$t5,0xd354 +/* 526cc: 3c018006 */ lui $at,0x8006 +/* 526d0: ac2d29d8 */ sw $t5,0x29d8($at) +.PB000526d4: +/* 526d4: 0c012d18 */ jal 0x4b460 +/* 526d8: 00000000 */ nop +/* 526dc: 304c1000 */ andi $t4,$v0,0x1000 +/* 526e0: 11800003 */ beqz $t4,.PB000526f0 +/* 526e4: 00000000 */ nop +.PB000526e8: +/* 526e8: 1000ffff */ b .PB000526e8 +/* 526ec: 00000000 */ nop +.PB000526f0: +/* 526f0: 240f0001 */ li $t7,0x1 +/* 526f4: 3c0ea450 */ lui $t6,0xa450 +/* 526f8: adcf0008 */ sw $t7,0x8($t6) +/* 526fc: 24183fff */ li $t8,0x3fff +/* 52700: 3c08a450 */ lui $t0,0xa450 +/* 52704: ad180010 */ sw $t8,0x10($t0) +/* 52708: 2419000f */ li $t9,0xf +/* 5270c: 3c0aa450 */ lui $t2,0xa450 +/* 52710: ad590014 */ sw $t9,0x14($t2) +/* 52714: 8fbf001c */ lw $ra,0x1c($sp) +/* 52718: 8fb00018 */ lw $s0,0x18($sp) +/* 5271c: 27bd0038 */ addiu $sp,$sp,0x38 +/* 52720: 03e00008 */ jr $ra +/* 52724: 00000000 */ nop +); +#endif OSPiHandle *osCartRomInit2(void); diff --git a/src/lib/vi.c b/src/lib/vi.c index 4ac78f427..ce5cf1a5f 100644 --- a/src/lib/vi.c +++ b/src/lib/vi.c @@ -295,7 +295,7 @@ void vi00009ed4(void) osViSetSpecialFeatures(OS_VI_GAMMA_OFF | OS_VI_DITHER_FILTER_ON); } -#if VERSION >= VERSION_PAL_BETA +#if VERSION >= VERSION_PAL_FINAL GLOBAL_ASM( glabel viUpdateMode /* 9f64: 3c098006 */ lui $t1,0x8006 @@ -870,6 +870,581 @@ glabel viUpdateMode /* a78c: 03e00008 */ jr $ra /* a790: 00000000 */ nop ); +#elif VERSION >= VERSION_PAL_BETA +GLOBAL_ASM( +glabel viUpdateMode +/* 9f4c: 3c098006 */ lui $t1,0x8006 +/* 9f50: 3c0e8006 */ lui $t6,0x8006 +/* 9f54: 8dcedf20 */ lw $t6,-0x20e0($t6) +/* 9f58: 8d29df24 */ lw $t1,-0x20dc($t1) +/* 9f5c: 27bdffe8 */ addiu $sp,$sp,-24 +/* 9f60: afbf0014 */ sw $ra,0x14($sp) +/* 9f64: 91cf0000 */ lbu $t7,0x0($t6) +/* 9f68: 91220000 */ lbu $v0,0x0($t1) +/* 9f6c: 504f0014 */ beql $v0,$t7,.PB00009fc0 +/* 9f70: 85380004 */ lh $t8,0x4($t1) +/* 9f74: 10400008 */ beqz $v0,.PB00009f98 +/* 9f78: 00401825 */ move $v1,$v0 +/* 9f7c: 241f0001 */ li $ra,0x1 +/* 9f80: 105f000e */ beq $v0,$ra,.PB00009fbc +/* 9f84: 24010002 */ li $at,0x2 +/* 9f88: 5061000d */ beql $v1,$at,.PB00009fc0 +/* 9f8c: 85380004 */ lh $t8,0x4($t1) +/* 9f90: 1000000b */ b .PB00009fc0 +/* 9f94: 85380004 */ lh $t8,0x4($t1) +.PB00009f98: +/* 9f98: 3c013f80 */ lui $at,0x3f80 +/* 9f9c: 44816000 */ mtc1 $at,$f12 +/* 9fa0: 0c01252c */ jal 0x494b0 +/* 9fa4: 00000000 */ nop +/* 9fa8: 0c0124a8 */ jal 0x492a0 +/* 9fac: 24040001 */ li $a0,0x1 +/* 9fb0: 3c098006 */ lui $t1,0x8006 +/* 9fb4: 8d29df24 */ lw $t1,-0x20dc($t1) +/* 9fb8: 91220000 */ lbu $v0,0x0($t1) +.PB00009fbc: +/* 9fbc: 85380004 */ lh $t8,0x4($t1) +.PB00009fc0: +/* 9fc0: 85390018 */ lh $t9,0x18($t1) +/* 9fc4: 852e0006 */ lh $t6,0x6($t1) +/* 9fc8: 44982000 */ mtc1 $t8,$f4 +/* 9fcc: 852f001a */ lh $t7,0x1a($t1) +/* 9fd0: 44994000 */ mtc1 $t9,$f8 +/* 9fd4: 468021a0 */ cvt.s.w $f6,$f4 +/* 9fd8: 448e8000 */ mtc1 $t6,$f16 +/* 9fdc: 448f2000 */ mtc1 $t7,$f4 +/* 9fe0: 3c0d8009 */ lui $t5,0x8009 +/* 9fe4: 241f0001 */ li $ra,0x1 +/* 9fe8: 468042a0 */ cvt.s.w $f10,$f8 +/* 9fec: 3c0c8006 */ lui $t4,0x8006 +/* 9ff0: 3c013f80 */ lui $at,0x3f80 +/* 9ff4: 25ad02ec */ addiu $t5,$t5,0x2ec +/* 9ff8: 468084a0 */ cvt.s.w $f18,$f16 +/* 9ffc: 46802220 */ cvt.s.w $f8,$f4 +/* a000: 460a3083 */ div.s $f2,$f6,$f10 +/* a004: 14400003 */ bnez $v0,.PB0000a014 +/* a008: 46089003 */ div.s $f0,$f18,$f8 +/* a00c: 44810000 */ mtc1 $at,$f0 +/* a010: 00000000 */ nop +.PB0000a014: +/* a014: 8d8cdf30 */ lw $t4,-0x20d0($t4) +/* a018: 3c018006 */ lui $at,0x8006 +/* a01c: 000c5880 */ sll $t3,$t4,0x2 +/* a020: 002b0821 */ addu $at,$at,$t3 +/* a024: e422d818 */ swc1 $f2,-0x27e8($at) +/* a028: 3c018006 */ lui $at,0x8006 +/* a02c: 002b0821 */ addu $at,$at,$t3 +/* a030: e420d820 */ swc1 $f0,-0x27e0($at) +/* a034: 91220000 */ lbu $v0,0x0($t1) +/* a038: 57e200a3 */ bnel $ra,$v0,.PB0000a2c8 +/* a03c: 24010002 */ li $at,0x2 +/* a040: 3c0a8006 */ lui $t2,0x8006 +/* a044: 8d4adf28 */ lw $t2,-0x20d8($t2) +/* a048: 3c1f8009 */ lui $ra,0x8009 +/* a04c: 000c7880 */ sll $t7,$t4,0x2 +/* a050: 11400019 */ beqz $t2,.PB0000a0b8 +/* a054: 27ff02f0 */ addiu $ra,$ra,0x2f0 +/* a058: 000cc080 */ sll $t8,$t4,0x2 +/* a05c: 030cc021 */ addu $t8,$t8,$t4 +/* a060: 3c198009 */ lui $t9,0x8009 +/* a064: 273901a0 */ addiu $t9,$t9,0x1a0 +/* a068: 0018c100 */ sll $t8,$t8,0x4 +/* a06c: 03191021 */ addu $v0,$t8,$t9 +/* a070: 3c0e8006 */ lui $t6,0x8006 +/* a074: 25ce12b0 */ addiu $t6,$t6,0x12b0 +/* a078: 25d80048 */ addiu $t8,$t6,0x48 +/* a07c: 0040c825 */ move $t9,$v0 +.PB0000a080: +/* a080: 8dc10000 */ lw $at,0x0($t6) +/* a084: 25ce000c */ addiu $t6,$t6,0xc +/* a088: 2739000c */ addiu $t9,$t9,0xc +/* a08c: af21fff4 */ sw $at,-0xc($t9) +/* a090: 8dc1fff8 */ lw $at,-0x8($t6) +/* a094: af21fff8 */ sw $at,-0x8($t9) +/* a098: 8dc1fffc */ lw $at,-0x4($t6) +/* a09c: 15d8fff8 */ bne $t6,$t8,.PB0000a080 +/* a0a0: af21fffc */ sw $at,-0x4($t9) +/* a0a4: 8dc10000 */ lw $at,0x0($t6) +/* a0a8: af210000 */ sw $at,0x0($t9) +/* a0ac: 8dd80004 */ lw $t8,0x4($t6) +/* a0b0: 10000017 */ b .PB0000a110 +/* a0b4: af380004 */ sw $t8,0x4($t9) +.PB0000a0b8: +/* a0b8: 01ec7821 */ addu $t7,$t7,$t4 +/* a0bc: 3c188009 */ lui $t8,0x8009 +/* a0c0: 271801a0 */ addiu $t8,$t8,0x1a0 +/* a0c4: 000f7900 */ sll $t7,$t7,0x4 +/* a0c8: 01f81021 */ addu $v0,$t7,$t8 +/* a0cc: 3c0e8006 */ lui $t6,0x8006 +/* a0d0: 25ce13f0 */ addiu $t6,$t6,0x13f0 +/* a0d4: 25cf0048 */ addiu $t7,$t6,0x48 +/* a0d8: 0040c025 */ move $t8,$v0 +.PB0000a0dc: +/* a0dc: 8dc10000 */ lw $at,0x0($t6) +/* a0e0: 25ce000c */ addiu $t6,$t6,0xc +/* a0e4: 2718000c */ addiu $t8,$t8,0xc +/* a0e8: af01fff4 */ sw $at,-0xc($t8) +/* a0ec: 8dc1fff8 */ lw $at,-0x8($t6) +/* a0f0: af01fff8 */ sw $at,-0x8($t8) +/* a0f4: 8dc1fffc */ lw $at,-0x4($t6) +/* a0f8: 15cffff8 */ bne $t6,$t7,.PB0000a0dc +/* a0fc: af01fffc */ sw $at,-0x4($t8) +/* a100: 8dc10000 */ lw $at,0x0($t6) +/* a104: af010000 */ sw $at,0x0($t8) +/* a108: 8dcf0004 */ lw $t7,0x4($t6) +/* a10c: af0f0004 */ sw $t7,0x4($t8) +.PB0000a110: +/* a110: 85390018 */ lh $t9,0x18($t1) +/* a114: 24010280 */ li $at,0x280 +/* a118: 24080400 */ li $t0,0x400 +/* a11c: ac590008 */ sw $t9,0x8($v0) +/* a120: 852f0018 */ lh $t7,0x18($t1) +/* a124: 8c44001c */ lw $a0,0x1c($v0) +/* a128: 3c078006 */ lui $a3,0x8006 +/* a12c: 000f7280 */ sll $t6,$t7,0xa +/* a130: 01c1001a */ div $zero,$t6,$at +/* a134: 0000c012 */ mflo $t8 +/* a138: ac580020 */ sw $t8,0x20($v0) +/* a13c: 85390018 */ lh $t9,0x18($t1) +/* a140: 3406ffff */ li $a2,0xffff +/* a144: 00197840 */ sll $t7,$t9,0x1 +/* a148: ac4f0028 */ sw $t7,0x28($v0) +/* a14c: 852e0018 */ lh $t6,0x18($t1) +/* a150: ac48002c */ sw $t0,0x2c($v0) +/* a154: ac480040 */ sw $t0,0x40($v0) +/* a158: 000ec040 */ sll $t8,$t6,0x1 +/* a15c: ac58003c */ sw $t8,0x3c($v0) +/* a160: 8ce7df18 */ lw $a3,-0x20e8($a3) +/* a164: 0004cc03 */ sra $t9,$a0,0x10 +/* a168: 332fffff */ andi $t7,$t9,0xffff +/* a16c: 01e77021 */ addu $t6,$t7,$a3 +/* a170: 01c6001a */ div $zero,$t6,$a2 +/* a174: 14c00002 */ bnez $a2,.PB0000a180 +/* a178: 00000000 */ nop +/* a17c: 0007000d */ break 0x7 +.PB0000a180: +/* a180: 2401ffff */ li $at,-1 +/* a184: 14c10004 */ bne $a2,$at,.PB0000a198 +/* a188: 3c018000 */ lui $at,0x8000 +/* a18c: 15c10002 */ bne $t6,$at,.PB0000a198 +/* a190: 00000000 */ nop +/* a194: 0006000d */ break 0x6 +.PB0000a198: +/* a198: 308fffff */ andi $t7,$a0,0xffff +/* a19c: 0000c010 */ mfhi $t8 +/* a1a0: 01e77021 */ addu $t6,$t7,$a3 +/* a1a4: 0018cc00 */ sll $t9,$t8,0x10 +/* a1a8: 01c6001a */ div $zero,$t6,$a2 +/* a1ac: 14c00002 */ bnez $a2,.PB0000a1b8 +/* a1b0: 00000000 */ nop +/* a1b4: 0007000d */ break 0x7 +.PB0000a1b8: +/* a1b8: 2401ffff */ li $at,-1 +/* a1bc: 14c10004 */ bne $a2,$at,.PB0000a1d0 +/* a1c0: 3c018000 */ lui $at,0x8000 +/* a1c4: 15c10002 */ bne $t6,$at,.PB0000a1d0 +/* a1c8: 00000000 */ nop +/* a1cc: 0006000d */ break 0x6 +.PB0000a1d0: +/* a1d0: 0000c010 */ mfhi $t8 +/* a1d4: 03381825 */ or $v1,$t9,$t8 +/* a1d8: ac43001c */ sw $v1,0x1c($v0) +/* a1dc: 3c018009 */ lui $at,0x8009 +/* a1e0: ac2302e8 */ sw $v1,0x2e8($at) +/* a1e4: 8525001a */ lh $a1,0x1a($t1) +/* a1e8: 24180140 */ li $t8,0x140 +/* a1ec: 3c048006 */ lui $a0,0x8006 +/* a1f0: 00057a80 */ sll $t7,$a1,0xa +/* a1f4: 000f7282 */ srl $t6,$t7,0xa +/* a1f8: 29c1012d */ slti $at,$t6,0x12d +/* a1fc: 14200002 */ bnez $at,.PB0000a208 +/* a200: 01c02825 */ move $a1,$t6 +/* a204: 000e2843 */ sra $a1,$t6,0x1 +.PB0000a208: +/* a208: 03053823 */ subu $a3,$t8,$a1 +/* a20c: 24ef0002 */ addiu $t7,$a3,0x2 +/* a210: 24b9fffe */ addiu $t9,$a1,-2 +/* a214: 0019c040 */ sll $t8,$t9,0x1 +/* a218: 000f7400 */ sll $t6,$t7,0x10 +/* a21c: 00f87821 */ addu $t7,$a3,$t8 +/* a220: 25f90002 */ addiu $t9,$t7,0x2 +/* a224: 8c84df1c */ lw $a0,-0x20e4($a0) +/* a228: 01d94025 */ or $t0,$t6,$t9 +/* a22c: 0008c403 */ sra $t8,$t0,0x10 +/* a230: 330fffff */ andi $t7,$t8,0xffff +/* a234: 01e47021 */ addu $t6,$t7,$a0 +/* a238: 01c6001a */ div $zero,$t6,$a2 +/* a23c: 14c00002 */ bnez $a2,.PB0000a248 +/* a240: 00000000 */ nop +/* a244: 0007000d */ break 0x7 +.PB0000a248: +/* a248: 2401ffff */ li $at,-1 +/* a24c: 14c10004 */ bne $a2,$at,.PB0000a260 +/* a250: 3c018000 */ lui $at,0x8000 +/* a254: 15c10002 */ bne $t6,$at,.PB0000a260 +/* a258: 00000000 */ nop +/* a25c: 0006000d */ break 0x6 +.PB0000a260: +/* a260: 310fffff */ andi $t7,$t0,0xffff +/* a264: 01e47021 */ addu $t6,$t7,$a0 +/* a268: 0000c810 */ mfhi $t9 +/* a26c: 0019c400 */ sll $t8,$t9,0x10 +/* a270: 240f0001 */ li $t7,0x1 +/* a274: 01c6001a */ div $zero,$t6,$a2 +/* a278: 14c00002 */ bnez $a2,.PB0000a284 +/* a27c: 00000000 */ nop +/* a280: 0007000d */ break 0x7 +.PB0000a284: +/* a284: 2401ffff */ li $at,-1 +/* a288: 14c10004 */ bne $a2,$at,.PB0000a29c +/* a28c: 3c018000 */ lui $at,0x8000 +/* a290: 15c10002 */ bne $t6,$at,.PB0000a29c +/* a294: 00000000 */ nop +/* a298: 0006000d */ break 0x6 +.PB0000a29c: +/* a29c: 0000c810 */ mfhi $t9 +/* a2a0: 03191825 */ or $v1,$t8,$t9 +/* a2a4: 3c018006 */ lui $at,0x8006 +/* a2a8: ac430030 */ sw $v1,0x30($v0) +/* a2ac: ada30000 */ sw $v1,0x0($t5) +/* a2b0: ac430044 */ sw $v1,0x44($v0) +/* a2b4: afe30000 */ sw $v1,0x0($ra) +/* a2b8: 002b0821 */ addu $at,$at,$t3 +/* a2bc: 100000dd */ b .PB0000a634 +/* a2c0: ac2fd828 */ sw $t7,-0x27d8($at) +/* a2c4: 24010002 */ li $at,0x2 +.PB0000a2c8: +/* a2c8: 144100d5 */ bne $v0,$at,.PB0000a620 +/* a2cc: 000c7080 */ sll $t6,$t4,0x2 +/* a2d0: 01cc7021 */ addu $t6,$t6,$t4 +/* a2d4: 3c188009 */ lui $t8,0x8009 +/* a2d8: 271801a0 */ addiu $t8,$t8,0x1a0 +/* a2dc: 000e7100 */ sll $t6,$t6,0x4 +/* a2e0: 01d81021 */ addu $v0,$t6,$t8 +/* a2e4: 3c198006 */ lui $t9,0x8006 +/* a2e8: 3c0d8009 */ lui $t5,0x8009 +/* a2ec: 27391580 */ addiu $t9,$t9,0x1580 +/* a2f0: 25ad02ec */ addiu $t5,$t5,0x2ec +/* a2f4: 3406ffff */ li $a2,0xffff +/* a2f8: 24080800 */ li $t0,0x800 +/* a2fc: 272e0048 */ addiu $t6,$t9,0x48 +/* a300: 0040c025 */ move $t8,$v0 +.PB0000a304: +/* a304: 8f210000 */ lw $at,0x0($t9) +/* a308: 2739000c */ addiu $t9,$t9,0xc +/* a30c: 2718000c */ addiu $t8,$t8,0xc +/* a310: af01fff4 */ sw $at,-0xc($t8) +/* a314: 8f21fff8 */ lw $at,-0x8($t9) +/* a318: af01fff8 */ sw $at,-0x8($t8) +/* a31c: 8f21fffc */ lw $at,-0x4($t9) +/* a320: 172efff8 */ bne $t9,$t6,.PB0000a304 +/* a324: af01fffc */ sw $at,-0x4($t8) +/* a328: 8f210000 */ lw $at,0x0($t9) +/* a32c: 3c078006 */ lui $a3,0x8006 +/* a330: 3c048006 */ lui $a0,0x8006 +/* a334: af010000 */ sw $at,0x0($t8) +/* a338: 8f2e0004 */ lw $t6,0x4($t9) +/* a33c: 24010280 */ li $at,0x280 +/* a340: 3c1f8009 */ lui $ra,0x8009 +/* a344: af0e0004 */ sw $t6,0x4($t8) +/* a348: 852f0018 */ lh $t7,0x18($t1) +/* a34c: 8c45001c */ lw $a1,0x1c($v0) +/* a350: 27ff02f0 */ addiu $ra,$ra,0x2f0 +/* a354: ac4f0008 */ sw $t7,0x8($v0) +/* a358: 852e0018 */ lh $t6,0x18($t1) +/* a35c: ac48002c */ sw $t0,0x2c($v0) +/* a360: ac480040 */ sw $t0,0x40($v0) +/* a364: 000eca80 */ sll $t9,$t6,0xa +/* a368: 0321001a */ div $zero,$t9,$at +/* a36c: 0000c012 */ mflo $t8 +/* a370: ac580020 */ sw $t8,0x20($v0) +/* a374: 852f0018 */ lh $t7,0x18($t1) +/* a378: 3c0a8006 */ lui $t2,0x8006 +/* a37c: 000f7040 */ sll $t6,$t7,0x1 +/* a380: ac4e0028 */ sw $t6,0x28($v0) +/* a384: 85390018 */ lh $t9,0x18($t1) +/* a388: 00057c03 */ sra $t7,$a1,0x10 +/* a38c: 31eeffff */ andi $t6,$t7,0xffff +/* a390: 0019c080 */ sll $t8,$t9,0x2 +/* a394: ac58003c */ sw $t8,0x3c($v0) +/* a398: 8ce7df18 */ lw $a3,-0x20e8($a3) +/* a39c: 01c7c821 */ addu $t9,$t6,$a3 +/* a3a0: 0326001a */ div $zero,$t9,$a2 +/* a3a4: 14c00002 */ bnez $a2,.PB0000a3b0 +/* a3a8: 00000000 */ nop +/* a3ac: 0007000d */ break 0x7 +.PB0000a3b0: +/* a3b0: 2401ffff */ li $at,-1 +/* a3b4: 14c10004 */ bne $a2,$at,.PB0000a3c8 +/* a3b8: 3c018000 */ lui $at,0x8000 +/* a3bc: 17210002 */ bne $t9,$at,.PB0000a3c8 +/* a3c0: 00000000 */ nop +/* a3c4: 0006000d */ break 0x6 +.PB0000a3c8: +/* a3c8: 30aeffff */ andi $t6,$a1,0xffff +/* a3cc: 0000c010 */ mfhi $t8 +/* a3d0: 01c7c821 */ addu $t9,$t6,$a3 +/* a3d4: 00187c00 */ sll $t7,$t8,0x10 +/* a3d8: 0326001a */ div $zero,$t9,$a2 +/* a3dc: 14c00002 */ bnez $a2,.PB0000a3e8 +/* a3e0: 00000000 */ nop +/* a3e4: 0007000d */ break 0x7 +.PB0000a3e8: +/* a3e8: 2401ffff */ li $at,-1 +/* a3ec: 14c10004 */ bne $a2,$at,.PB0000a400 +/* a3f0: 3c018000 */ lui $at,0x8000 +/* a3f4: 17210002 */ bne $t9,$at,.PB0000a400 +/* a3f8: 00000000 */ nop +/* a3fc: 0006000d */ break 0x6 +.PB0000a400: +/* a400: 0000c010 */ mfhi $t8 +/* a404: 01f81825 */ or $v1,$t7,$t8 +/* a408: ac43001c */ sw $v1,0x1c($v0) +/* a40c: 3c018009 */ lui $at,0x8009 +/* a410: ac2302e8 */ sw $v1,0x2e8($at) +/* a414: 8c450030 */ lw $a1,0x30($v0) +/* a418: 8c84df1c */ lw $a0,-0x20e4($a0) +/* a41c: 00057403 */ sra $t6,$a1,0x10 +/* a420: 31d9ffff */ andi $t9,$t6,0xffff +/* a424: 03247821 */ addu $t7,$t9,$a0 +/* a428: 01e6001a */ div $zero,$t7,$a2 +/* a42c: 14c00002 */ bnez $a2,.PB0000a438 +/* a430: 00000000 */ nop +/* a434: 0007000d */ break 0x7 +.PB0000a438: +/* a438: 2401ffff */ li $at,-1 +/* a43c: 14c10004 */ bne $a2,$at,.PB0000a450 +/* a440: 3c018000 */ lui $at,0x8000 +/* a444: 15e10002 */ bne $t7,$at,.PB0000a450 +/* a448: 00000000 */ nop +/* a44c: 0006000d */ break 0x6 +.PB0000a450: +/* a450: 30b9ffff */ andi $t9,$a1,0xffff +/* a454: 03247821 */ addu $t7,$t9,$a0 +/* a458: 0000c010 */ mfhi $t8 +/* a45c: 8c450044 */ lw $a1,0x44($v0) +/* a460: 00187400 */ sll $t6,$t8,0x10 +/* a464: 01e6001a */ div $zero,$t7,$a2 +/* a468: 14c00002 */ bnez $a2,.PB0000a474 +/* a46c: 00000000 */ nop +/* a470: 0007000d */ break 0x7 +.PB0000a474: +/* a474: 2401ffff */ li $at,-1 +/* a478: 14c10004 */ bne $a2,$at,.PB0000a48c +/* a47c: 3c018000 */ lui $at,0x8000 +/* a480: 15e10002 */ bne $t7,$at,.PB0000a48c +/* a484: 00000000 */ nop +/* a488: 0006000d */ break 0x6 +.PB0000a48c: +/* a48c: 0000c010 */ mfhi $t8 +/* a490: 0005cc03 */ sra $t9,$a1,0x10 +/* a494: 01d81825 */ or $v1,$t6,$t8 +/* a498: 332fffff */ andi $t7,$t9,0xffff +/* a49c: 01e47021 */ addu $t6,$t7,$a0 +/* a4a0: 01c6001a */ div $zero,$t6,$a2 +/* a4a4: 30afffff */ andi $t7,$a1,0xffff +/* a4a8: 0000c010 */ mfhi $t8 +/* a4ac: 0018cc00 */ sll $t9,$t8,0x10 +/* a4b0: ac430030 */ sw $v1,0x30($v0) +/* a4b4: ada30000 */ sw $v1,0x0($t5) +/* a4b8: 14c00002 */ bnez $a2,.PB0000a4c4 +/* a4bc: 00000000 */ nop +/* a4c0: 0007000d */ break 0x7 +.PB0000a4c4: +/* a4c4: 2401ffff */ li $at,-1 +/* a4c8: 14c10004 */ bne $a2,$at,.PB0000a4dc +/* a4cc: 3c018000 */ lui $at,0x8000 +/* a4d0: 15c10002 */ bne $t6,$at,.PB0000a4dc +/* a4d4: 00000000 */ nop +/* a4d8: 0006000d */ break 0x6 +.PB0000a4dc: +/* a4dc: 01e47021 */ addu $t6,$t7,$a0 +/* a4e0: 01c6001a */ div $zero,$t6,$a2 +/* a4e4: 0000c010 */ mfhi $t8 +/* a4e8: 03381825 */ or $v1,$t9,$t8 +/* a4ec: ac430044 */ sw $v1,0x44($v0) +/* a4f0: afe30000 */ sw $v1,0x0($ra) +/* a4f4: 3c0f8006 */ lui $t7,0x8006 +/* a4f8: 8defe828 */ lw $t7,-0x17d8($t7) +/* a4fc: 14c00002 */ bnez $a2,.PB0000a508 +/* a500: 00000000 */ nop +/* a504: 0007000d */ break 0x7 +.PB0000a508: +/* a508: 2401ffff */ li $at,-1 +/* a50c: 14c10004 */ bne $a2,$at,.PB0000a520 +/* a510: 3c018000 */ lui $at,0x8000 +/* a514: 15c10002 */ bne $t6,$at,.PB0000a520 +/* a518: 00000000 */ nop +/* a51c: 0006000d */ break 0x6 +.PB0000a520: +/* a520: 248e01fa */ addiu $t6,$a0,0x1fa +/* a524: 11e00038 */ beqz $t7,.PB0000a608 +/* a528: 00000000 */ nop +/* a52c: 01c6001a */ div $zero,$t6,$a2 +/* a530: 0000c810 */ mfhi $t9 +/* a534: 248f0086 */ addiu $t7,$a0,0x86 +/* a538: 14c00002 */ bnez $a2,.PB0000a544 +/* a53c: 00000000 */ nop +/* a540: 0007000d */ break 0x7 +.PB0000a544: +/* a544: 2401ffff */ li $at,-1 +/* a548: 14c10004 */ bne $a2,$at,.PB0000a55c +/* a54c: 3c018000 */ lui $at,0x8000 +/* a550: 15c10002 */ bne $t6,$at,.PB0000a55c +/* a554: 00000000 */ nop +/* a558: 0006000d */ break 0x6 +.PB0000a55c: +/* a55c: 01e6001a */ div $zero,$t7,$a2 +/* a560: 00007010 */ mfhi $t6 +/* a564: 0019c400 */ sll $t8,$t9,0x10 +/* a568: 249901fc */ addiu $t9,$a0,0x1fc +/* a56c: 0326001a */ div $zero,$t9,$a2 +/* a570: 030e1825 */ or $v1,$t8,$t6 +/* a574: 248e0084 */ addiu $t6,$a0,0x84 +/* a578: 14c00002 */ bnez $a2,.PB0000a584 +/* a57c: 00000000 */ nop +/* a580: 0007000d */ break 0x7 +.PB0000a584: +/* a584: 2401ffff */ li $at,-1 +/* a588: 14c10004 */ bne $a2,$at,.PB0000a59c +/* a58c: 3c018000 */ lui $at,0x8000 +/* a590: 15e10002 */ bne $t7,$at,.PB0000a59c +/* a594: 00000000 */ nop +/* a598: 0006000d */ break 0x6 +.PB0000a59c: +/* a59c: 00007810 */ mfhi $t7 +/* a5a0: ac430030 */ sw $v1,0x30($v0) +/* a5a4: ada30000 */ sw $v1,0x0($t5) +/* a5a8: 01c6001a */ div $zero,$t6,$a2 +/* a5ac: 14c00002 */ bnez $a2,.PB0000a5b8 +/* a5b0: 00000000 */ nop +/* a5b4: 0007000d */ break 0x7 +.PB0000a5b8: +/* a5b8: 2401ffff */ li $at,-1 +/* a5bc: 14c10004 */ bne $a2,$at,.PB0000a5d0 +/* a5c0: 3c018000 */ lui $at,0x8000 +/* a5c4: 17210002 */ bne $t9,$at,.PB0000a5d0 +/* a5c8: 00000000 */ nop +/* a5cc: 0006000d */ break 0x6 +.PB0000a5d0: +/* a5d0: 0000c810 */ mfhi $t9 +/* a5d4: 000fc400 */ sll $t8,$t7,0x10 +/* a5d8: 03191825 */ or $v1,$t8,$t9 +/* a5dc: ac430044 */ sw $v1,0x44($v0) +/* a5e0: afe30000 */ sw $v1,0x0($ra) +/* a5e4: 14c00002 */ bnez $a2,.PB0000a5f0 +/* a5e8: 00000000 */ nop +/* a5ec: 0007000d */ break 0x7 +.PB0000a5f0: +/* a5f0: 2401ffff */ li $at,-1 +/* a5f4: 14c10004 */ bne $a2,$at,.PB0000a608 +/* a5f8: 3c018000 */ lui $at,0x8000 +/* a5fc: 15c10002 */ bne $t6,$at,.PB0000a608 +/* a600: 00000000 */ nop +/* a604: 0006000d */ break 0x6 +.PB0000a608: +/* a608: 3c018006 */ lui $at,0x8006 +/* a60c: 002b0821 */ addu $at,$at,$t3 +/* a610: 240f0001 */ li $t7,0x1 +/* a614: ac2fd828 */ sw $t7,-0x27d8($at) +/* a618: 10000006 */ b .PB0000a634 +/* a61c: 8d4adf28 */ lw $t2,-0x20d8($t2) +.PB0000a620: +/* a620: 3c018006 */ lui $at,0x8006 +/* a624: 002b0821 */ addu $at,$at,$t3 +/* a628: 3c0a8006 */ lui $t2,0x8006 +/* a62c: 8d4adf28 */ lw $t2,-0x20d8($t2) +/* a630: ac20d828 */ sw $zero,-0x27d8($at) +.PB0000a634: +/* a634: 258c0001 */ addiu $t4,$t4,0x1 +/* a638: 05810004 */ bgez $t4,.PB0000a64c +/* a63c: 318e0001 */ andi $t6,$t4,0x1 +/* a640: 11c00002 */ beqz $t6,.PB0000a64c +/* a644: 00000000 */ nop +/* a648: 25cefffe */ addiu $t6,$t6,-2 +.PB0000a64c: +/* a64c: 3c018006 */ lui $at,0x8006 +/* a650: 11400006 */ beqz $t2,.PB0000a66c +/* a654: ac2edf30 */ sw $t6,-0x20d0($at) +/* a658: 3c198006 */ lui $t9,0x8006 +/* a65c: 8f3907a8 */ lw $t9,0x7a8($t9) +/* a660: 8d380028 */ lw $t8,0x28($t1) +/* a664: 10000006 */ b .PB0000a680 +/* a668: af380058 */ sw $t8,0x58($t9) +.PB0000a66c: +/* a66c: 3c0f800a */ lui $t7,0x800a +/* a670: 3c0e8006 */ lui $t6,0x8006 +/* a674: 8dce07a8 */ lw $t6,0x7a8($t6) +/* a678: 8def0fe0 */ lw $t7,0xfe0($t7) +/* a67c: adcf0058 */ sw $t7,0x58($t6) +.PB0000a680: +/* a680: 3c028009 */ lui $v0,0x8009 +/* a684: 24424d56 */ addiu $v0,$v0,0x4d56 +/* a688: 90580000 */ lbu $t8,0x0($v0) +/* a68c: 3c048006 */ lui $a0,0x8006 +/* a690: 8c84df24 */ lw $a0,-0x20dc($a0) +/* a694: 27190001 */ addiu $t9,$t8,0x1 +/* a698: 3c038009 */ lui $v1,0x8009 +/* a69c: 2408002c */ li $t0,0x2c +/* a6a0: 24634d57 */ addiu $v1,$v1,0x4d57 +/* a6a4: 906e0000 */ lbu $t6,0x0($v1) +/* a6a8: 3c078006 */ lui $a3,0x8006 +/* a6ac: 24e7dec0 */ addiu $a3,$a3,-8512 +/* a6b0: 07210004 */ bgez $t9,.PB0000a6c4 +/* a6b4: 332f0001 */ andi $t7,$t9,0x1 +/* a6b8: 11e00002 */ beqz $t7,.PB0000a6c4 +/* a6bc: 00000000 */ nop +/* a6c0: 25effffe */ addiu $t7,$t7,-2 +.PB0000a6c4: +/* a6c4: a04f0000 */ sb $t7,0x0($v0) +/* a6c8: 904f0000 */ lbu $t7,0x0($v0) +/* a6cc: 25d80001 */ addiu $t8,$t6,0x1 +/* a6d0: 07010004 */ bgez $t8,.PB0000a6e4 +/* a6d4: 33190001 */ andi $t9,$t8,0x1 +/* a6d8: 13200002 */ beqz $t9,.PB0000a6e4 +/* a6dc: 00000000 */ nop +/* a6e0: 2739fffe */ addiu $t9,$t9,-2 +.PB0000a6e4: +/* a6e4: 01e80019 */ multu $t7,$t0 +/* a6e8: a0790000 */ sb $t9,0x0($v1) +/* a6ec: 3c018006 */ lui $at,0x8006 +/* a6f0: 3c058006 */ lui $a1,0x8006 +/* a6f4: 2406002c */ li $a2,0x2c +/* a6f8: 00007012 */ mflo $t6 +/* a6fc: 00eec021 */ addu $t8,$a3,$t6 +/* a700: ac38df20 */ sw $t8,-0x20e0($at) +/* a704: 90790000 */ lbu $t9,0x0($v1) +/* a708: 3c018006 */ lui $at,0x8006 +/* a70c: 03280019 */ multu $t9,$t0 +/* a710: 00007812 */ mflo $t7 +/* a714: 00ef7021 */ addu $t6,$a3,$t7 +/* a718: ac2edf24 */ sw $t6,-0x20dc($at) +/* a71c: 0c012d1c */ jal 0x4b470 +/* a720: 8ca5df24 */ lw $a1,-0x20dc($a1) +/* a724: 3c038009 */ lui $v1,0x8009 +/* a728: 24634d57 */ addiu $v1,$v1,0x4d57 +/* a72c: 90780000 */ lbu $t8,0x0($v1) +/* a730: 3c0f800a */ lui $t7,0x800a +/* a734: 3c0e8006 */ lui $t6,0x8006 +/* a738: 0018c880 */ sll $t9,$t8,0x2 +/* a73c: 01f97821 */ addu $t7,$t7,$t9 +/* a740: 8def0fe0 */ lw $t7,0xfe0($t7) +/* a744: 8dcedf24 */ lw $t6,-0x20dc($t6) +/* a748: 3c028006 */ lui $v0,0x8006 +/* a74c: 2442df2c */ addiu $v0,$v0,-8404 +/* a750: adcf0028 */ sw $t7,0x28($t6) +/* a754: 8c580000 */ lw $t8,0x0($v0) +/* a758: 53000005 */ beqzl $t8,.PB0000a770 +/* a75c: 8fbf0014 */ lw $ra,0x14($sp) +/* a760: ac400000 */ sw $zero,0x0($v0) +/* a764: 0c002773 */ jal 0x9dcc +/* a768: 00002025 */ move $a0,$zero +/* a76c: 8fbf0014 */ lw $ra,0x14($sp) +.PB0000a770: +/* a770: 27bd0018 */ addiu $sp,$sp,0x18 +/* a774: 03e00008 */ jr $ra +/* a778: 00000000 */ nop +); #else GLOBAL_ASM( glabel viUpdateMode diff --git a/src/lib/vm.c b/src/lib/vm.c index 995f381ea..565c62acf 100644 --- a/src/lib/vm.c +++ b/src/lib/vm.c @@ -74,15 +74,22 @@ u32 g_VmMarker; u32 g_VmRamEnd; u32 g_VmStateTableEnd; -#if VERSION == VERSION_NTSC_BETA -u8 g_VmShowStats = false; -u32 fillnb[2] = {0}; -#elif VERSION == VERSION_PAL_BETA +#if VERSION == VERSION_NTSC_BETA || VERSION == VERSION_PAL_BETA u8 g_VmShowStats = false; #endif +#if VERSION == VERSION_NTSC_BETA +u32 fillnb[2] = {0}; +#endif + +#if VERSION == VERSION_PAL_BETA +s32 g_VmNumPages = 0; +u32 var8005cf80 = 0; +#else u32 var8005cf80 = 0; s32 g_VmNumPages = 0; +#endif + u32 var8005cf88 = 0; extern u8 _gameSegmentStart; diff --git a/tools/mkrom/main.c b/tools/mkrom/main.c index 6d7e265a4..291e9572e 100644 --- a/tools/mkrom/main.c +++ b/tools/mkrom/main.c @@ -28,19 +28,25 @@ struct state state; * piracy checks. * * - * This is a two byte value which is used when zipping the game segments. + * This is a two byte hex value which is used when zipping the game segments. * The original code was influenced by uninitialised data. These two bytes are * just setting that uninitialised data. * + * + * This is used for copying some redundant data at the end of the gamezips + * segment. The value is the number of bytes to copy. Copying this data makes + * no functional difference but is required for a match. This parameter can be + * removed if a formula is found for calculating the copy amount. + * * * The file to write the final ROM file to. * - * eg. mkrom stage1.bin pd.map 1 0x1234 pd.z64 + * eg. mkrom stage1.bin pd.map 1 0x1234 2 pd.z64 */ int main(int argc, char **argv) { - if (argc < 6) { - fprintf(stderr, "Usage: mkrom \n"); + if (argc < 7) { + fprintf(stderr, "Usage: mkrom \n"); exit(1); } @@ -49,6 +55,7 @@ int main(int argc, char **argv) state.piracychecks = atoi(argv[3]); state.zipmagic = strtol(argv[4], NULL, 16); + state.copylen = atoi(argv[5]); // Compute piracy checksums if requested if (state.piracychecks) { @@ -66,7 +73,7 @@ int main(int argc, char **argv) rom_update_crc(); - rom_write(argv[5]); + rom_write(argv[6]); return 0; } diff --git a/tools/mkrom/mkrom.h b/tools/mkrom/mkrom.h index e6c6657ab..42b542e90 100644 --- a/tools/mkrom/mkrom.h +++ b/tools/mkrom/mkrom.h @@ -28,6 +28,11 @@ struct state { */ unsigned short zipmagic; + /** + * Number of bytes to copy after building gamezips. + */ + unsigned char copylen; + /** * File descriptor for the linker map. */ diff --git a/tools/mkrom/pack.c b/tools/mkrom/pack.c index e2fb441b6..ae0df0a09 100644 --- a/tools/mkrom/pack.c +++ b/tools/mkrom/pack.c @@ -83,9 +83,10 @@ void pack_game(void) memcpy(&state.rom[gamezipstart + state.gamezipslen], state.gamezips, truncatedlen); // The final two bytes from the real segment are duplicated into - // the first two bytes of the second segment's offset table - state.rom[gamezipstart + state.gamezipslen + 0] = state.rom[gamezipstart + state.gamezipslen - 2]; - state.rom[gamezipstart + state.gamezipslen + 1] = state.rom[gamezipstart + state.gamezipslen - 1]; + // the first two bytes of the second segment's offset table... + // though for some versions the copy length can vary for unknown reasons + // so we take the copy length as an argument to mkrom. + memcpy(&state.rom[gamezipstart + state.gamezipslen], &state.rom[gamezipstart + state.gamezipslen - state.copylen], state.copylen); } }