From bbd44a9953c0afd692019d5836dc7a1905a5c161 Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Mon, 21 Dec 2020 17:48:01 +1000 Subject: [PATCH] ntsc-beta: Make boot segment nearly the correct size --- Makefile | 2 +- src/boot/boot.c | 824 +++++++++++++++++++++++++++++++++++++++++- tools/patchpiracysums | 4 +- 3 files changed, 813 insertions(+), 17 deletions(-) diff --git a/Makefile b/Makefile index dff43fd07..3b3141986 100644 --- a/Makefile +++ b/Makefile @@ -164,7 +164,7 @@ $(B_DIR)/stage3.bin: $(B_DIR)/stage2.bin $(B_DIR)/segments/gamezips.bin # Stage2 takes stage1 and calculates the piracy checksums. $(B_DIR)/stage2.bin: $(B_DIR)/stage1.bin @cp $< $@.tmp - PIRACYCHECKS=$(PIRACYCHECKS) tools/patchpiracysums $@.tmp $(B_DIR)/pd.map && mv $@.tmp $@ + ROMID=$(ROMID) PIRACYCHECKS=$(PIRACYCHECKS) tools/patchpiracysums $@.tmp $(B_DIR)/pd.map && mv $@.tmp $@ $(B_DIR)/stage1.bin: $(B_DIR)/stage1.elf $(TOOLCHAIN)-objcopy $< $@ -O binary diff --git a/src/boot/boot.c b/src/boot/boot.c index 3bb1fca01..080e9633f 100644 --- a/src/boot/boot.c +++ b/src/boot/boot.c @@ -152,6 +152,7 @@ glabel func0000113c /* 117c: 00000000 */ nop ); +#if VERSION >= VERSION_NTSC_1_0 GLOBAL_ASM( glabel func00001180 /* 1180: 40082000 */ mfc0 $t0,$4 @@ -426,10 +427,7 @@ glabel func00001180 .L00001568: /* 1568: 03e00008 */ jr $ra /* 156c: 00000000 */ nop -); - -GLOBAL_ASM( -glabel func00001570 +.L00001570: /* 1570: 3c148009 */ lui $s4,%hi(var8008ae24) /* 1574: 8e94ae24 */ lw $s4,%lo(var8008ae24)($s4) /* 1578: 3c1c8009 */ lui $gp,%hi(var80090b08) @@ -485,6 +483,352 @@ glabel func00001570 /* 162c: 08000ea2 */ j 0x3a88 /* 1630: 00000000 */ nop ); +#else +GLOBAL_ASM( +glabel func00001180 +/* 1180: 40082000 */ mfc0 $t0,$4 +/* 1184: 0008aa40 */ sll $s5,$t0,0x9 +/* 1188: 3c097f00 */ lui $t1,0x7f00 +/* 118c: 02a94022 */ sub $t0,$s5,$t1 +/* 1190: 00084302 */ srl $t0,$t0,0xc +/* 1194: 000840c0 */ sll $t0,$t0,0x3 +/* 1198: 3c098009 */ lui $t1,0x8009 +/* 119c: 8d29d454 */ lw $t1,-0x2bac($t1) +/* 11a0: 01098021 */ addu $s0,$t0,$t1 +/* 11a4: 3c1e7f00 */ lui $s8,0x7f00 +/* 11a8: 02be082a */ slt $at,$s5,$s8 +/* 11ac: 1420012e */ bnez $at,.L00001668 +/* 11b0: 00000000 */ nop +/* 11b4: 3c098009 */ lui $t1,0x8009 +/* 11b8: 8d2930f4 */ lw $t1,0x30f4($t1) +/* 11bc: 02a9082a */ slt $at,$s5,$t1 +/* 11c0: 10200129 */ beqz $at,.L00001668 +/* 11c4: 00000000 */ nop +/* 11c8: 3c0a8009 */ lui $t2,0x8009 +/* 11cc: 254a30e4 */ addiu $t2,$t2,0x30e4 +/* 11d0: 8d4e0000 */ lw $t6,0x0($t2) +/* 11d4: 25ce0001 */ addiu $t6,$t6,0x1 +/* 11d8: ad4e0000 */ sw $t6,0x0($t2) +/* 11dc: 40194000 */ mfc0 $t9,$8 +/* 11e0: 0019cb02 */ srl $t9,$t9,0xc +/* 11e4: 33390001 */ andi $t9,$t9,0x1 +/* 11e8: 53200002 */ beqzl $t9,.L000011f4 +/* 11ec: 8e110000 */ lw $s1,0x0($s0) +/* 11f0: 8e110008 */ lw $s1,0x8($s0) +.L000011f4: +/* 11f4: 562000bd */ bnezl $s1,.L000014ec +/* 11f8: 240d0001 */ li $t5,0x1 +/* 11fc: 240d0000 */ li $t5,0x0 +/* 1200: 3c098009 */ lui $t1,0x8009 +/* 1204: 8d29f88c */ lw $t1,-0x774($t1) +/* 1208: 3c0a8009 */ lui $t2,0x8009 +/* 120c: 8d4af890 */ lw $t2,-0x770($t2) +.L00001210: +/* 1210: 91280000 */ lbu $t0,0x0($t1) +/* 1214: 1100000a */ beqz $t0,.L00001240 +/* 1218: 00000000 */ nop +/* 121c: 240e0000 */ li $t6,0x0 +/* 1220: 240f0001 */ li $t7,0x1 +.L00001224: +/* 1224: 010fc024 */ and $t8,$t0,$t7 +/* 1228: 17000009 */ bnez $t8,.L00001250 +/* 122c: 00000000 */ nop +/* 1230: 25ce0001 */ addiu $t6,$t6,0x1 +/* 1234: 24010008 */ li $at,0x8 +/* 1238: 15c1fffa */ bne $t6,$at,.L00001224 +/* 123c: 000f7840 */ sll $t7,$t7,0x1 +.L00001240: +/* 1240: 152afff3 */ bne $t1,$t2,.L00001210 +/* 1244: 25290001 */ addiu $t1,$t1,0x1 +/* 1248: 08000566 */ j 0x1598 +/* 124c: 00000000 */ nop +.L00001250: +/* 1250: 010f4026 */ xor $t0,$t0,$t7 +/* 1254: a1280000 */ sb $t0,0x0($t1) +/* 1258: 3c0a8009 */ lui $t2,0x8009 +/* 125c: 8d4af88c */ lw $t2,-0x774($t2) +/* 1260: 3c118009 */ lui $s1,0x8009 +/* 1264: 8e31f898 */ lw $s1,-0x768($s1) +/* 1268: 012a4823 */ subu $t1,$t1,$t2 +/* 126c: 000948c0 */ sll $t1,$t1,0x3 +/* 1270: 01c94021 */ addu $t0,$t6,$t1 +/* 1274: 00084300 */ sll $t0,$t0,0xc +/* 1278: 02288821 */ addu $s1,$s1,$t0 +/* 127c: 3c0a8009 */ lui $t2,0x8009 +/* 1280: 254a30e8 */ addiu $t2,$t2,0x30e8 +/* 1284: 8d480000 */ lw $t0,0x0($t2) +/* 1288: 25080001 */ addiu $t0,$t0,0x1 +/* 128c: ad480000 */ sw $t0,0x0($t2) +/* 1290: 400a4000 */ mfc0 $t2,$8 +/* 1294: 3c0800ff */ lui $t0,0xff +/* 1298: 3508f000 */ ori $t0,$t0,0xf000 +/* 129c: 01485024 */ and $t2,$t2,$t0 +/* 12a0: 000a5282 */ srl $t2,$t2,0xa +/* 12a4: 3c088009 */ lui $t0,0x8009 +/* 12a8: 8d08d460 */ lw $t0,-0x2ba0($t0) +/* 12ac: 010a4021 */ addu $t0,$t0,$t2 +/* 12b0: 8d0a0000 */ lw $t2,0x0($t0) +/* 12b4: 8d080004 */ lw $t0,0x4($t0) +/* 12b8: 010a4023 */ subu $t0,$t0,$t2 +/* 12bc: 2409fff0 */ li $t1,-16 +/* 12c0: 2508000f */ addiu $t0,$t0,0xf +/* 12c4: 01097024 */ and $t6,$t0,$t1 +/* 12c8: 3c08a460 */ lui $t0,0xa460 +/* 12cc: 35080010 */ ori $t0,$t0,0x10 +.L000012d0: +/* 12d0: 8d090000 */ lw $t1,0x0($t0) +/* 12d4: 31290003 */ andi $t1,$t1,0x3 +/* 12d8: 1520fffd */ bnez $t1,.L000012d0 +/* 12dc: 00000000 */ nop +/* 12e0: 3c16a430 */ lui $s6,0xa430 +/* 12e4: 8ed60008 */ lw $s6,0x8($s6) +/* 12e8: 32d60010 */ andi $s6,$s6,0x10 +/* 12ec: 3c08a460 */ lui $t0,0xa460 +/* 12f0: 3c098009 */ lui $t1,0x8009 +/* 12f4: 8d29d45c */ lw $t1,-0x2ba4($t1) +/* 12f8: 3c0f0fff */ lui $t7,0xfff +/* 12fc: 35efffff */ ori $t7,$t7,0xffff +/* 1300: 012f4824 */ and $t1,$t1,$t7 +/* 1304: ad090000 */ sw $t1,0x0($t0) +/* 1308: 3c08a460 */ lui $t0,0xa460 +/* 130c: 35080004 */ ori $t0,$t0,0x4 +/* 1310: 3c098000 */ lui $t1,0x8000 +/* 1314: 8d290308 */ lw $t1,0x308($t1) +/* 1318: 012a4825 */ or $t1,$t1,$t2 +/* 131c: 3c0a1fff */ lui $t2,0x1fff +/* 1320: 354affff */ ori $t2,$t2,0xffff +/* 1324: 012a4824 */ and $t1,$t1,$t2 +/* 1328: ad090000 */ sw $t1,0x0($t0) +/* 132c: 3c08a460 */ lui $t0,0xa460 +/* 1330: 3508000c */ ori $t0,$t0,0xc +/* 1334: 25ceffff */ addiu $t6,$t6,-1 +/* 1338: ad0e0000 */ sw $t6,0x0($t0) +/* 133c: 53200003 */ beqzl $t9,.L0000134c +/* 1340: 00000000 */ nop +/* 1344: 50000002 */ beqzl $zero,.L00001350 +/* 1348: ae110008 */ sw $s1,0x8($s0) +.L0000134c: +/* 134c: ae110000 */ sw $s1,0x0($s0) +.L00001350: +/* 1350: 3c08a460 */ lui $t0,0xa460 +/* 1354: 35080010 */ ori $t0,$t0,0x10 +.L00001358: +/* 1358: 8d090000 */ lw $t1,0x0($t0) +/* 135c: 31290003 */ andi $t1,$t1,0x3 +/* 1360: 1520fffd */ bnez $t1,.L00001358 +/* 1364: 00000000 */ nop +/* 1368: 3c088009 */ lui $t0,0x8009 +/* 136c: 8d08d45c */ lw $t0,-0x2ba4($t0) +/* 1370: 25091000 */ addiu $t1,$t0,0x1000 +.L00001374: +/* 1374: bd150000 */ cache 0x15,0x0($t0) +/* 1378: 0109082b */ sltu $at,$t0,$t1 +/* 137c: 1420fffd */ bnez $at,.L00001374 +/* 1380: 25080010 */ addiu $t0,$t0,0x10 +/* 1384: 16c00004 */ bnez $s6,.L00001398 +/* 1388: 00000000 */ nop +/* 138c: 24080002 */ li $t0,0x2 +/* 1390: 3c01a460 */ lui $at,0xa460 +/* 1394: ac280010 */ sw $t0,0x10($at) +.L00001398: +/* 1398: 3c048009 */ lui $a0,0x8009 +/* 139c: 2484d468 */ addiu $a0,$a0,-11160 +/* 13a0: 24840ff8 */ addiu $a0,$a0,0xff8 +/* 13a4: ac9d0000 */ sw $sp,0x0($a0) +/* 13a8: 249d0000 */ addiu $sp,$a0,0x0 +/* 13ac: 3c048009 */ lui $a0,0x8009 +/* 13b0: 8c84d45c */ lw $a0,-0x2ba4($a0) +/* 13b4: 24840002 */ addiu $a0,$a0,0x2 +/* 13b8: 3c088000 */ lui $t0,0x8000 +/* 13bc: 02282825 */ or $a1,$s1,$t0 +/* 13c0: 3c068009 */ lui $a2,0x8009 +/* 13c4: 24c6e468 */ addiu $a2,$a2,-7064 +/* 13c8: 27bdff80 */ addiu $sp,$sp,-128 +/* 13cc: afbf0000 */ sw $ra,0x0($sp) +/* 13d0: afa10004 */ sw $at,0x4($sp) +/* 13d4: afa20008 */ sw $v0,0x8($sp) +/* 13d8: afa3000c */ sw $v1,0xc($sp) +/* 13dc: afa40010 */ sw $a0,0x10($sp) +/* 13e0: afa50014 */ sw $a1,0x14($sp) +/* 13e4: afa60018 */ sw $a2,0x18($sp) +/* 13e8: afa7001c */ sw $a3,0x1c($sp) +/* 13ec: afa80020 */ sw $t0,0x20($sp) +/* 13f0: afa90024 */ sw $t1,0x24($sp) +/* 13f4: afaa0028 */ sw $t2,0x28($sp) +/* 13f8: afab002c */ sw $t3,0x2c($sp) +/* 13fc: afac0030 */ sw $t4,0x30($sp) +/* 1400: afad0034 */ sw $t5,0x34($sp) +/* 1404: afae0038 */ sw $t6,0x38($sp) +/* 1408: afaf003c */ sw $t7,0x3c($sp) +/* 140c: afb00040 */ sw $s0,0x40($sp) +/* 1410: afb10044 */ sw $s1,0x44($sp) +/* 1414: afb20048 */ sw $s2,0x48($sp) +/* 1418: afb3004c */ sw $s3,0x4c($sp) +/* 141c: afb40050 */ sw $s4,0x50($sp) +/* 1420: afb50054 */ sw $s5,0x54($sp) +/* 1424: afb60058 */ sw $s6,0x58($sp) +/* 1428: afb7005c */ sw $s7,0x5c($sp) +/* 142c: afb80060 */ sw $t8,0x60($sp) +/* 1430: afb90064 */ sw $t9,0x64($sp) +/* 1434: afbc0070 */ sw $gp,0x70($sp) +/* 1438: afbd0074 */ sw $sp,0x74($sp) +/* 143c: afbe0078 */ sw $s8,0x78($sp) +/* 1440: 0c001da4 */ jal 0x7690 +/* 1444: 00000000 */ nop +/* 1448: 8fbf0000 */ lw $ra,0x0($sp) +/* 144c: 8fa10004 */ lw $at,0x4($sp) +/* 1450: 8fa20008 */ lw $v0,0x8($sp) +/* 1454: 8fa3000c */ lw $v1,0xc($sp) +/* 1458: 8fa40010 */ lw $a0,0x10($sp) +/* 145c: 8fa50014 */ lw $a1,0x14($sp) +/* 1460: 8fa60018 */ lw $a2,0x18($sp) +/* 1464: 8fa7001c */ lw $a3,0x1c($sp) +/* 1468: 8fa80020 */ lw $t0,0x20($sp) +/* 146c: 8fa90024 */ lw $t1,0x24($sp) +/* 1470: 8faa0028 */ lw $t2,0x28($sp) +/* 1474: 8fab002c */ lw $t3,0x2c($sp) +/* 1478: 8fac0030 */ lw $t4,0x30($sp) +/* 147c: 8fad0034 */ lw $t5,0x34($sp) +/* 1480: 8fae0038 */ lw $t6,0x38($sp) +/* 1484: 8faf003c */ lw $t7,0x3c($sp) +/* 1488: 8fb00040 */ lw $s0,0x40($sp) +/* 148c: 8fb10044 */ lw $s1,0x44($sp) +/* 1490: 8fb20048 */ lw $s2,0x48($sp) +/* 1494: 8fb3004c */ lw $s3,0x4c($sp) +/* 1498: 8fb40050 */ lw $s4,0x50($sp) +/* 149c: 8fb50054 */ lw $s5,0x54($sp) +/* 14a0: 8fb60058 */ lw $s6,0x58($sp) +/* 14a4: 8fb7005c */ lw $s7,0x5c($sp) +/* 14a8: 8fb80060 */ lw $t8,0x60($sp) +/* 14ac: 8fb90064 */ lw $t9,0x64($sp) +/* 14b0: 8fbc0070 */ lw $gp,0x70($sp) +/* 14b4: 8fbd0074 */ lw $sp,0x74($sp) +/* 14b8: 8fbe0078 */ lw $s8,0x78($sp) +/* 14bc: 27bd0080 */ addiu $sp,$sp,0x80 +/* 14c0: 3c048009 */ lui $a0,0x8009 +/* 14c4: 2484d468 */ addiu $a0,$a0,-11160 +/* 14c8: 24840ff8 */ addiu $a0,$a0,0xff8 +/* 14cc: 8c9d0000 */ lw $sp,0x0($a0) +/* 14d0: 3c088000 */ lui $t0,0x8000 +/* 14d4: 02284025 */ or $t0,$s1,$t0 +/* 14d8: 25090ff0 */ addiu $t1,$t0,0xff0 +.L000014dc: +/* 14dc: bd190000 */ cache 0x19,0x0($t0) +/* 14e0: 0109082b */ sltu $at,$t0,$t1 +/* 14e4: 1420fffd */ bnez $at,.L000014dc +/* 14e8: 25080010 */ addiu $t0,$t0,0x10 +.L000014ec: +/* 14ec: 24080000 */ li $t0,0x0 +/* 14f0: 40882800 */ mtc0 $t0,$5 +/* 14f4: 40955000 */ mtc0 $s5,$10 +/* 14f8: 00000000 */ nop +/* 14fc: 00000000 */ nop +/* 1500: 00000000 */ nop +/* 1504: 42000008 */ tlbp +/* 1508: 00000000 */ nop +/* 150c: 00000000 */ nop +/* 1510: 40090000 */ mfc0 $t1,$0 +/* 1514: 40882800 */ mtc0 $t0,$5 +/* 1518: 40955000 */ mtc0 $s5,$10 +/* 151c: 8e080000 */ lw $t0,0x0($s0) +/* 1520: 00084302 */ srl $t0,$t0,0xc +/* 1524: 00084180 */ sll $t0,$t0,0x6 +/* 1528: 55000001 */ bnezl $t0,.L00001530 +/* 152c: 3508001e */ ori $t0,$t0,0x1e +.L00001530: +/* 1530: 40881000 */ mtc0 $t0,$2 +/* 1534: 8e080008 */ lw $t0,0x8($s0) +/* 1538: 00084302 */ srl $t0,$t0,0xc +/* 153c: 00084180 */ sll $t0,$t0,0x6 +/* 1540: 55000001 */ bnezl $t0,.L00001548 +/* 1544: 3508001e */ ori $t0,$t0,0x1e +.L00001548: +/* 1548: 40881800 */ mtc0 $t0,$3 +/* 154c: 05220003 */ bltzl $t1,.L0000155c +/* 1550: 00000000 */ nop +/* 1554: 10000002 */ b .L00001560 +/* 1558: 42000002 */ tlbwi +.L0000155c: +/* 155c: 42000006 */ tlbwr +.L00001560: +/* 1560: 15a0000b */ bnez $t5,.L00001590 +/* 1564: 00000000 */ nop +/* 1568: 02a04025 */ move $t0,$s5 +/* 156c: 57200001 */ bnezl $t9,.L00001574 +/* 1570: 25081000 */ addiu $t0,$t0,0x1000 +.L00001574: +/* 1574: 25090fe0 */ addiu $t1,$t0,0xfe0 +/* 1578: 310a001f */ andi $t2,$t0,0x1f +/* 157c: 010a4023 */ subu $t0,$t0,$t2 +.L00001580: +/* 1580: bd100000 */ cache 0x10,0x0($t0) +/* 1584: 0109082b */ sltu $at,$t0,$t1 +/* 1588: 1420fffd */ bnez $at,.L00001580 +/* 158c: 25080020 */ addiu $t0,$t0,0x20 +.L00001590: +/* 1590: 03e00008 */ jr $ra +/* 1594: 00000000 */ nop +/* 1598: 3c088009 */ lui $t0,0x8009 +/* 159c: 250830ec */ addiu $t0,$t0,0x30ec +/* 15a0: 8d090000 */ lw $t1,0x0($t0) +/* 15a4: 25290001 */ addiu $t1,$t1,0x1 +/* 15a8: ad090000 */ sw $t1,0x0($t0) +/* 15ac: 3c148009 */ lui $s4,0x8009 +/* 15b0: 8e94d454 */ lw $s4,-0x2bac($s4) +/* 15b4: 3c1c8009 */ lui $gp,0x8009 +/* 15b8: 8f9c30f8 */ lw $gp,0x30f8($gp) +/* 15bc: 40084800 */ mfc0 $t0,$9 +/* 15c0: 3c098009 */ lui $t1,0x8009 +/* 15c4: 9529f896 */ lhu $t1,-0x76a($t1) +/* 15c8: 3c0a8006 */ lui $t2,0x8006 +/* 15cc: 8d4ae720 */ lw $t2,-0x18e0($t2) +/* 15d0: 01094024 */ and $t0,$t0,$t1 +/* 15d4: 010a082a */ slt $at,$t0,$t2 +/* 15d8: 50200001 */ beqzl $at,.L000015e0 +/* 15dc: 010a4023 */ subu $t0,$t0,$t2 +.L000015e0: +/* 15e0: 000848c0 */ sll $t1,$t0,0x3 +/* 15e4: 01344821 */ addu $t1,$t1,$s4 +.L000015e8: +/* 15e8: 8d310000 */ lw $s1,0x0($t1) +/* 15ec: 16200006 */ bnez $s1,.L00001608 +/* 15f0: 00000000 */ nop +/* 15f4: 25290008 */ addiu $t1,$t1,0x8 +/* 15f8: 153cfffb */ bne $t1,$gp,.L000015e8 +/* 15fc: 00000000 */ nop +/* 1600: 0800057a */ j 0x15e8 +/* 1604: 02804825 */ move $t1,$s4 +.L00001608: +/* 1608: 01344023 */ subu $t0,$t1,$s4 +/* 160c: 000840c2 */ srl $t0,$t0,0x3 +/* 1610: 00084300 */ sll $t0,$t0,0xc +/* 1614: 011e4021 */ addu $t0,$t0,$s8 +/* 1618: 240af000 */ li $t2,-4096 +/* 161c: 010a4024 */ and $t0,$t0,$t2 +/* 1620: 40885000 */ mtc0 $t0,$10 +/* 1624: 24080000 */ li $t0,0x0 +/* 1628: 40882800 */ mtc0 $t0,$5 +/* 162c: 00000000 */ nop +/* 1630: 00000000 */ nop +/* 1634: 00000000 */ nop +/* 1638: 42000008 */ tlbp +/* 163c: 00000000 */ nop +/* 1640: 00000000 */ nop +/* 1644: 400a0000 */ mfc0 $t2,$0 +/* 1648: 40085000 */ mfc0 $t0,$10 +/* 164c: 05400003 */ bltz $t2,.L0000165c +/* 1650: 00000000 */ nop +/* 1654: 0800056b */ j 0x15ac +/* 1658: 00000000 */ nop +.L0000165c: +/* 165c: ad200000 */ sw $zero,0x0($t1) +/* 1660: 0800049f */ j 0x127c +/* 1664: 00000000 */ nop +.L00001668: +/* 1668: 08000f2a */ j 0x3ca8 +/* 166c: 00000000 */ nop +); +#endif GLOBAL_ASM( glabel func00001634 @@ -506,38 +850,47 @@ glabel func00001634 /* 166c: 00000000 */ nop ); -extern void *_dataSegmentStart; +#if VERSION == VERSION_NTSC_BETA +GLOBAL_ASM( +glabel func000016acnb +/* 16ac: 3c088000 */ lui $t0,0x8000 +/* 16b0: 25091ff0 */ addiu $t1,$t0,0x1ff0 +.L000016b4: +/* 16b4: bd010000 */ cache 0x1,0x0($t0) +/* 16b8: 0109082b */ sltu $at,$t0,$t1 +/* 16bc: 1420fffd */ bnez $at,.L000016b4 +/* 16c0: 25080010 */ addiu $t0,$t0,0x10 +/* 16c4: 03e00008 */ jr $ra +/* 16c8: 00000000 */ nop +/* 16cc: 00000000 */ nop +); +#endif + +extern void *_dataSegmentStart; +extern void *_datazipSegmentRomStart; +extern void *_inflateSegmentRomStart; +extern void *_gamezipSegmentRomStart; -// func00001670 void *getSetupRamAddr(void) { return &_dataSegmentStart; } -extern void *_datazipSegmentRomStart; - -// func0000167c void *getSetupRomAddr(void) { return &_datazipSegmentRomStart; } -extern void *_inflateSegmentRomStart; - -// func0001688 void *getInflateRomAddr(void) { return &_inflateSegmentRomStart; } -// func0001694 void *getInflateRomAddr2(void) { return &_inflateSegmentRomStart; } -extern void *_gamezipSegmentRomStart; - void *getZiplistSegmentRomstart(void) { return &_gamezipSegmentRomStart; @@ -552,11 +905,14 @@ glabel func000016ac /* 16bc: 00000000 */ nop ); +#if VERSION >= VERSION_NTSC_1_0 s32 osGetMemSize(void) { return g_OsMemSize; } +#endif +#if VERSION >= VERSION_NTSC_1_0 GLOBAL_ASM( glabel func000016cc /* 16cc: 3c0e8000 */ lui $t6,0x8000 @@ -688,7 +1044,122 @@ glabel func000016cc /* 18a4: 03e00008 */ jr $ra /* 18a8: 00000000 */ nop ); +#else +GLOBAL_ASM( +glabel func000016cc +/* 1720: 3c040003 */ lui $a0,0x3 +/* 1724: 3c0e0004 */ lui $t6,0x4 +/* 1728: 3c0f0004 */ lui $t7,0x4 +/* 172c: 3c180004 */ lui $t8,0x4 +/* 1730: 27182850 */ addiu $t8,$t8,0x2850 +/* 1734: 25ef3c40 */ addiu $t7,$t7,0x3c40 +/* 1738: 25ce2850 */ addiu $t6,$t6,0x2850 +/* 173c: 24840850 */ addiu $a0,$a0,0x850 +/* 1740: 01c44023 */ subu $t0,$t6,$a0 +/* 1744: 01f8c823 */ subu $t9,$t7,$t8 +/* 1748: 01191821 */ addu $v1,$t0,$t9 +/* 174c: 27bdffd8 */ addiu $sp,$sp,-40 +/* 1750: 2462ffff */ addiu $v0,$v1,-1 +/* 1754: afbf0024 */ sw $ra,0x24($sp) +/* 1758: 0440000b */ bltz $v0,.L00001788 +/* 175c: afb00020 */ sw $s0,0x20($sp) +/* 1760: 3c017000 */ lui $at,0x7000 +/* 1764: 3c097020 */ lui $t1,0x7020 +/* 1768: 01288023 */ subu $s0,$t1,$t0 +/* 176c: 00811825 */ or $v1,$a0,$at +.L00001770: +/* 1770: 00625021 */ addu $t2,$v1,$v0 +/* 1774: 914b0000 */ lbu $t3,0x0($t2) +/* 1778: 02026021 */ addu $t4,$s0,$v0 +/* 177c: 2442ffff */ addiu $v0,$v0,-1 +/* 1780: 0441fffb */ bgez $v0,.L00001770 +/* 1784: a18b0000 */ sb $t3,0x0($t4) +.L00001788: +/* 1788: 3c057000 */ lui $a1,0x7000 +/* 178c: 24a51050 */ addiu $a1,$a1,0x1050 +/* 1790: 3c0d7020 */ lui $t5,0x7020 +/* 1794: 3c07702c */ lui $a3,0x702c +/* 1798: 34e793e0 */ ori $a3,$a3,0x93e0 +/* 179c: 01a88023 */ subu $s0,$t5,$t0 +/* 17a0: 24a52000 */ addiu $a1,$a1,0x2000 +/* 17a4: 00002025 */ move $a0,$zero +/* 17a8: 3c037028 */ lui $v1,0x7028 +.L000017ac: +/* 17ac: 00a47021 */ addu $t6,$a1,$a0 +/* 17b0: 8dcf0000 */ lw $t7,0x0($t6) +/* 17b4: 24630004 */ addiu $v1,$v1,0x4 +/* 17b8: 0067082b */ sltu $at,$v1,$a3 +/* 17bc: 24840004 */ addiu $a0,$a0,0x4 +/* 17c0: 1420fffa */ bnez $at,.L000017ac +/* 17c4: ac6ffffc */ sw $t7,-0x4($v1) +/* 17c8: 3c047028 */ lui $a0,0x7028 +/* 17cc: 0c0005c3 */ jal 0x170c +/* 17d0: 3c068030 */ lui $a2,0x8030 +/* 17d4: 3c058006 */ lui $a1,0x8006 +/* 17d8: 24a5b760 */ addiu $a1,$a1,-18592 +/* 17dc: 02002025 */ move $a0,$s0 +/* 17e0: 0c0005c3 */ jal 0x170c +/* 17e4: 3c068030 */ lui $a2,0x8030 +/* 17e8: 24040001 */ li $a0,0x1 +/* 17ec: 0c00059c */ jal 0x1670 +/* 17f0: 2405001f */ li $a1,0x1f +/* 17f4: 3c048006 */ lui $a0,0x8006 +/* 17f8: 3c038006 */ lui $v1,0x8006 +/* 17fc: 3c028006 */ lui $v0,0x8006 +/* 1800: 2442e5c8 */ addiu $v0,$v0,-6712 +/* 1804: 2463e5ac */ addiu $v1,$v1,-6740 +/* 1808: 2484e590 */ addiu $a0,$a0,-6768 +.L0000180c: +/* 180c: 24630004 */ addiu $v1,$v1,0x4 +/* 1810: 24840004 */ addiu $a0,$a0,0x4 +/* 1814: ac80fffc */ sw $zero,-0x4($a0) +/* 1818: 1462fffc */ bne $v1,$v0,.L0000180c +/* 181c: ac60fffc */ sw $zero,-0x4($v1) +/* 1820: 0c001728 */ jal 0x5ca0 +/* 1824: 00000000 */ nop +/* 1828: 0c01253c */ jal 0x494f0 +/* 182c: 00000000 */ nop +/* 1830: 3c048000 */ lui $a0,0x8000 +/* 1834: 0c012548 */ jal 0x49520 +/* 1838: 24054000 */ li $a1,0x4000 +/* 183c: 0c012568 */ jal 0x495a0 +/* 1840: 00000000 */ nop +/* 1844: 0c01256c */ jal 0x495b0 +/* 1848: 34440e80 */ ori $a0,$v0,0xe80 +/* 184c: 3c03bc00 */ lui $v1,0xbc00 +/* 1850: 34630c02 */ ori $v1,$v1,0xc02 +/* 1854: 3c018009 */ lui $at,0x8009 +/* 1858: ac2302e4 */ sw $v1,0x2e4($at) +/* 185c: 3c018009 */ lui $at,0x8009 +/* 1860: 240a4040 */ li $t2,0x4040 +/* 1864: a42a02e8 */ sh $t2,0x2e8($at) +/* 1868: 240b4040 */ li $t3,0x4040 +/* 186c: a46b0000 */ sh $t3,0x0($v1) +/* 1870: 24040003 */ li $a0,0x3 +/* 1874: 0c000631 */ jal 0x18c4 +/* 1878: 34059800 */ li $a1,0x9800 +/* 187c: 3c108009 */ lui $s0,0x8009 +/* 1880: 2610fd00 */ addiu $s0,$s0,-768 +/* 1884: 3c067000 */ lui $a2,0x7000 +/* 1888: 240c000a */ li $t4,0xa +/* 188c: afac0014 */ sw $t4,0x14($sp) +/* 1890: 24c61b04 */ addiu $a2,$a2,0x1b04 +/* 1894: 02002025 */ move $a0,$s0 +/* 1898: 24050003 */ li $a1,0x3 +/* 189c: 00003825 */ move $a3,$zero +/* 18a0: 0c00107c */ jal 0x41f0 +/* 18a4: afa20010 */ sw $v0,0x10($sp) +/* 18a8: 0c012570 */ jal 0x495c0 +/* 18ac: 02002025 */ move $a0,$s0 +/* 18b0: 8fbf0024 */ lw $ra,0x24($sp) +/* 18b4: 8fb00020 */ lw $s0,0x20($sp) +/* 18b8: 27bd0028 */ addiu $sp,$sp,0x28 +/* 18bc: 03e00008 */ jr $ra +/* 18c0: 00000000 */ nop +); +#endif +#if VERSION >= VERSION_NTSC_1_0 GLOBAL_ASM( glabel allocateStack /* 18ac: 3c098006 */ lui $t1,%hi(var8005ce48) @@ -728,6 +1199,63 @@ glabel allocateStack /* 192c: 03e00008 */ jr $ra /* 1930: 2442fff8 */ addiu $v0,$v0,-8 ); +#else +GLOBAL_ASM( +glabel allocateStack +/* 18c4: 3c0a8006 */ lui $t2,0x8006 +/* 18c8: 254ae5c8 */ addiu $t2,$t2,-6712 +/* 18cc: 8d430000 */ lw $v1,0x0($t2) +/* 18d0: 00041080 */ sll $v0,$a0,0x2 +/* 18d4: 3c018006 */ lui $at,0x8006 +/* 18d8: 00220821 */ addu $at,$at,$v0 +/* 18dc: ac23e5ac */ sw $v1,-0x1a54($at) +/* 18e0: 2401fff0 */ li $at,-16 +/* 18e4: 24a5000f */ addiu $a1,$a1,0xf +/* 18e8: 3c188006 */ lui $t8,0x8006 +/* 18ec: 00a17024 */ and $t6,$a1,$at +/* 18f0: 2718e590 */ addiu $t8,$t8,-6768 +/* 18f4: 00583821 */ addu $a3,$v0,$t8 +/* 18f8: 006e7823 */ subu $t7,$v1,$t6 +/* 18fc: 01c02825 */ move $a1,$t6 +/* 1900: ad4f0000 */ sw $t7,0x0($t2) +/* 1904: acef0000 */ sw $t7,0x0($a3) +/* 1908: 19c0000b */ blez $t6,.L00001938 +/* 190c: 00004825 */ move $t1,$zero +/* 1910: 3083000f */ andi $v1,$a0,0xf +/* 1914: 2419000f */ li $t9,0xf +/* 1918: 03235823 */ subu $t3,$t9,$v1 +/* 191c: 000b6100 */ sll $t4,$t3,0x4 +/* 1920: 01833025 */ or $a2,$t4,$v1 +/* 1924: 01e01025 */ move $v0,$t7 +.L00001928: +/* 1928: 25290001 */ addiu $t1,$t1,0x1 +/* 192c: 24420001 */ addiu $v0,$v0,0x1 +/* 1930: 1525fffd */ bne $t1,$a1,.L00001928 +/* 1934: a046ffff */ sb $a2,-0x1($v0) +.L00001938: +/* 1938: 3c04dead */ lui $a0,0xdead +/* 193c: 8ce20000 */ lw $v0,0x0($a3) +/* 1940: 3484babe */ ori $a0,$a0,0xbabe +/* 1944: 00001825 */ move $v1,$zero +/* 1948: 24060008 */ li $a2,0x8 +.L0000194c: +/* 194c: 24630001 */ addiu $v1,$v1,0x1 +/* 1950: ac440000 */ sw $a0,0x0($v0) +/* 1954: 1466fffd */ bne $v1,$a2,.L0000194c +/* 1958: 24420004 */ addiu $v0,$v0,0x4 +/* 195c: 8d4d0000 */ lw $t5,0x0($t2) +/* 1960: 01a51021 */ addu $v0,$t5,$a1 +/* 1964: 03e00008 */ jr $ra +/* 1968: 2442fff8 */ addiu $v0,$v0,-8 +); +#endif + +#if VERSION == VERSION_NTSC_BETA +s32 osGetMemSize(void) +{ + return g_OsMemSize; +} +#endif void idleproc(void *data) { @@ -812,6 +1340,118 @@ void mainproc(u32 value) mainEntry(); } +#if VERSION == VERSION_NTSC_BETA +GLOBAL_ASM( +glabel func00001b70nb +/* 1b70: 3c048006 */ lui $a0,0x8006 +/* 1b74: 3c068006 */ lui $a2,0x8006 +/* 1b78: 24c6e5ac */ addiu $a2,$a2,-6740 +/* 1b7c: 2484e590 */ addiu $a0,$a0,-6768 +/* 1b80: 00001025 */ move $v0,$zero +/* 1b84: 240a0007 */ li $t2,0x7 +/* 1b88: 2409000f */ li $t1,0xf +.L00001b8c: +/* 1b8c: 8c830000 */ lw $v1,0x0($a0) +/* 1b90: 24840004 */ addiu $a0,$a0,0x4 +/* 1b94: 8cc50000 */ lw $a1,0x0($a2) +/* 1b98: 10600011 */ beqz $v1,.L00001be0 +/* 1b9c: 3047000f */ andi $a3,$v0,0xf +/* 1ba0: 90780020 */ lbu $t8,0x20($v1) +/* 1ba4: 01277023 */ subu $t6,$t1,$a3 +/* 1ba8: 000e7900 */ sll $t7,$t6,0x4 +/* 1bac: 01e74025 */ or $t0,$t7,$a3 +/* 1bb0: 1518000b */ bne $t0,$t8,.L00001be0 +/* 1bb4: 24630020 */ addiu $v1,$v1,0x20 +/* 1bb8: 0065082b */ sltu $at,$v1,$a1 +/* 1bbc: 50200009 */ beqzl $at,.L00001be4 +/* 1bc0: 24420001 */ addiu $v0,$v0,0x1 +/* 1bc4: 90790001 */ lbu $t9,0x1($v1) +.L00001bc8: +/* 1bc8: 24630001 */ addiu $v1,$v1,0x1 +/* 1bcc: 0065082b */ sltu $at,$v1,$a1 +/* 1bd0: 55190004 */ bnel $t0,$t9,.L00001be4 +/* 1bd4: 24420001 */ addiu $v0,$v0,0x1 +/* 1bd8: 5420fffb */ bnezl $at,.L00001bc8 +/* 1bdc: 90790001 */ lbu $t9,0x1($v1) +.L00001be0: +/* 1be0: 24420001 */ addiu $v0,$v0,0x1 +.L00001be4: +/* 1be4: 144affe9 */ bne $v0,$t2,.L00001b8c +/* 1be8: 24c60004 */ addiu $a2,$a2,0x4 +/* 1bec: 03e00008 */ jr $ra +/* 1bf0: 00000000 */ nop +); +#endif + +#if VERSION == VERSION_NTSC_BETA +GLOBAL_ASM( +glabel func00001bf4nb +/* 1bf4: 27bdff28 */ addiu $sp,$sp,-216 +/* 1bf8: afbe0038 */ sw $s8,0x38($sp) +/* 1bfc: afb5002c */ sw $s5,0x2c($sp) +/* 1c00: afb40028 */ sw $s4,0x28($sp) +/* 1c04: afb70034 */ sw $s7,0x34($sp) +/* 1c08: afb60030 */ sw $s6,0x30($sp) +/* 1c0c: afb30024 */ sw $s3,0x24($sp) +/* 1c10: afb20020 */ sw $s2,0x20($sp) +/* 1c14: 3c14dead */ lui $s4,0xdead +/* 1c18: 3c157005 */ lui $s5,0x7005 +/* 1c1c: 3c1e8006 */ lui $s8,0x8006 +/* 1c20: afbf003c */ sw $ra,0x3c($sp) +/* 1c24: afb1001c */ sw $s1,0x1c($sp) +/* 1c28: afb00018 */ sw $s0,0x18($sp) +/* 1c2c: 27dee590 */ addiu $s8,$s8,-6768 +/* 1c30: 26b539b0 */ addiu $s5,$s5,0x39b0 +/* 1c34: 3694babe */ ori $s4,$s4,0xbabe +/* 1c38: 27b2004c */ addiu $s2,$sp,0x4c +/* 1c3c: 00009825 */ move $s3,$zero +/* 1c40: 24160045 */ li $s6,0x45 +/* 1c44: 24170008 */ li $s7,0x8 +.L00001c48: +/* 1c48: 8fc20000 */ lw $v0,0x0($s8) +/* 1c4c: 00008825 */ move $s1,$zero +/* 1c50: 10400010 */ beqz $v0,.L00001c94 +/* 1c54: 00408025 */ move $s0,$v0 +.L00001c58: +/* 1c58: 8e0e0000 */ lw $t6,0x0($s0) +/* 1c5c: 528e000b */ beql $s4,$t6,.L00001c8c +/* 1c60: 26310001 */ addiu $s1,$s1,0x1 +/* 1c64: 0c0006dc */ jal 0x1b70 +/* 1c68: 00000000 */ nop +/* 1c6c: 02402025 */ move $a0,$s2 +/* 1c70: 02a02825 */ move $a1,$s5 +/* 1c74: 0c004fc1 */ jal 0x13f04 +/* 1c78: 02603025 */ move $a2,$s3 +/* 1c7c: 0c003074 */ jal 0xc1d0 +/* 1c80: 02402025 */ move $a0,$s2 +/* 1c84: a0160000 */ sb $s6,0x0($zero) +/* 1c88: 26310001 */ addiu $s1,$s1,0x1 +.L00001c8c: +/* 1c8c: 1637fff2 */ bne $s1,$s7,.L00001c58 +/* 1c90: 26100004 */ addiu $s0,$s0,0x4 +.L00001c94: +/* 1c94: 26730001 */ addiu $s3,$s3,0x1 +/* 1c98: 24010007 */ li $at,0x7 +/* 1c9c: 1661ffea */ bne $s3,$at,.L00001c48 +/* 1ca0: 27de0004 */ addiu $s8,$s8,0x4 +/* 1ca4: 8fbf003c */ lw $ra,0x3c($sp) +/* 1ca8: 8fb00018 */ lw $s0,0x18($sp) +/* 1cac: 8fb1001c */ lw $s1,0x1c($sp) +/* 1cb0: 8fb20020 */ lw $s2,0x20($sp) +/* 1cb4: 8fb30024 */ lw $s3,0x24($sp) +/* 1cb8: 8fb40028 */ lw $s4,0x28($sp) +/* 1cbc: 8fb5002c */ lw $s5,0x2c($sp) +/* 1cc0: 8fb60030 */ lw $s6,0x30($sp) +/* 1cc4: 8fb70034 */ lw $s7,0x34($sp) +/* 1cc8: 8fbe0038 */ lw $s8,0x38($sp) +/* 1ccc: 03e00008 */ jr $ra +/* 1cd0: 27bd00d8 */ addiu $sp,$sp,0xd8 +/* 1cd4: 00000000 */ nop +/* 1cd8: 00000000 */ nop +/* 1cdc: 00000000 */ nop +); +#endif + void func00001b10(u32 value) { var8005ce64 = value; @@ -1009,6 +1649,50 @@ glabel func00001e30 /* 1e88: 00000000 */ nop ); +#if VERSION == VERSION_NTSC_BETA +GLOBAL_ASM( +glabel func0000205cnb +/* 205c: 27bdffe0 */ addiu $sp,$sp,-32 +/* 2060: afbf0014 */ sw $ra,0x14($sp) +/* 2064: afa40020 */ sw $a0,0x20($sp) +/* 2068: 8c8300b4 */ lw $v1,0xb4($a0) +/* 206c: afa00018 */ sw $zero,0x18($sp) +/* 2070: afa50024 */ sw $a1,0x24($sp) +/* 2074: 24040001 */ li $a0,0x1 +/* 2078: 0c012688 */ jal 0x49a20 +/* 207c: afa3001c */ sw $v1,0x1c($sp) +/* 2080: 8fa3001c */ lw $v1,0x1c($sp) +/* 2084: 8fa50024 */ lw $a1,0x24($sp) +/* 2088: 8fa60018 */ lw $a2,0x18($sp) +/* 208c: 1060000f */ beqz $v1,.L000020cc +/* 2090: 00402025 */ move $a0,$v0 +.L00002094: +/* 2094: 5465000a */ bnel $v1,$a1,.L000020c0 +/* 2098: 00603025 */ move $a2,$v1 +/* 209c: 10c00004 */ beqz $a2,.L000020b0 +/* 20a0: 8fb90020 */ lw $t9,0x20($sp) +/* 20a4: 8caf0000 */ lw $t7,0x0($a1) +/* 20a8: 10000008 */ b .L000020cc +/* 20ac: accf0000 */ sw $t7,0x0($a2) +.L000020b0: +/* 20b0: 8cb80000 */ lw $t8,0x0($a1) +/* 20b4: 10000005 */ b .L000020cc +/* 20b8: af3800b4 */ sw $t8,0xb4($t9) +/* 20bc: 00603025 */ move $a2,$v1 +.L000020c0: +/* 20c0: 8c630000 */ lw $v1,0x0($v1) +/* 20c4: 1460fff3 */ bnez $v1,.L00002094 +/* 20c8: 00000000 */ nop +.L000020cc: +/* 20cc: 0c012688 */ jal 0x49a20 +/* 20d0: 00000000 */ nop +/* 20d4: 8fbf0014 */ lw $ra,0x14($sp) +/* 20d8: 27bd0020 */ addiu $sp,$sp,0x20 +/* 20dc: 03e00008 */ jr $ra +/* 20e0: 00000000 */ nop +); +#endif + GLOBAL_ASM( glabel func00001e8c /* 1e8c: 03e00008 */ jr $ra @@ -1211,6 +1895,7 @@ glabel func00002078 /* 2144: 00000000 */ nop ); +#if VERSION >= VERSION_NTSC_1_0 GLOBAL_ASM( glabel func00002148 /* 2148: 27bdffa8 */ addiu $sp,$sp,-88 @@ -1329,6 +2014,98 @@ glabel func00002148 /* 22d8: 03e00008 */ jr $ra /* 22dc: 27bd0058 */ addiu $sp,$sp,0x58 ); +#else +GLOBAL_ASM( +glabel func00002148 +/* 23a0: 27bdffc0 */ addiu $sp,$sp,-64 +/* 23a4: afbf0024 */ sw $ra,0x24($sp) +/* 23a8: afb10018 */ sw $s1,0x18($sp) +/* 23ac: 00808825 */ move $s1,$a0 +/* 23b0: afb30020 */ sw $s3,0x20($sp) +/* 23b4: afb2001c */ sw $s2,0x1c($sp) +/* 23b8: afb00014 */ sw $s0,0x14($sp) +/* 23bc: afa00038 */ sw $zero,0x38($sp) +/* 23c0: afa00030 */ sw $zero,0x30($sp) +/* 23c4: 0c00270a */ jal 0x9c28 +/* 23c8: afa0002c */ sw $zero,0x2c($sp) +/* 23cc: 27b30038 */ addiu $s3,$sp,0x38 +/* 23d0: 26320078 */ addiu $s2,$s1,0x78 +/* 23d4: 02402025 */ move $a0,$s2 +/* 23d8: 02602825 */ move $a1,$s3 +/* 23dc: 0c0126b0 */ jal 0x49ac0 +/* 23e0: 00003025 */ move $a2,$zero +/* 23e4: 2410ffff */ li $s0,-1 +/* 23e8: 10500009 */ beq $v0,$s0,.L00002410 +/* 23ec: 02202025 */ move $a0,$s1 +.L000023f0: +/* 23f0: 0c000b05 */ jal 0x2c14 +/* 23f4: 8fa50038 */ lw $a1,0x38($sp) +/* 23f8: 02402025 */ move $a0,$s2 +/* 23fc: 02602825 */ move $a1,$s3 +/* 2400: 0c0126b0 */ jal 0x49ac0 +/* 2404: 00003025 */ move $a2,$zero +/* 2408: 5450fff9 */ bnel $v0,$s0,.L000023f0 +/* 240c: 02202025 */ move $a0,$s1 +.L00002410: +/* 2410: 8e2e00d4 */ lw $t6,0xd4($s1) +/* 2414: 02202025 */ move $a0,$s1 +/* 2418: 27a50030 */ addiu $a1,$sp,0x30 +/* 241c: 51c00009 */ beqzl $t6,.L00002444 +/* 2420: 8e3800c8 */ lw $t8,0xc8($s1) +/* 2424: 8e2f00c8 */ lw $t7,0xc8($s1) +/* 2428: 51e00006 */ beqzl $t7,.L00002444 +/* 242c: 8e3800c8 */ lw $t8,0xc8($s1) +/* 2430: 0c000b64 */ jal 0x2d90 +/* 2434: 02202025 */ move $a0,$s1 +/* 2438: 10000010 */ b .L0000247c +/* 243c: 8e3000b4 */ lw $s0,0xb4($s1) +/* 2440: 8e3800c8 */ lw $t8,0xc8($s1) +.L00002444: +/* 2444: 8e2900cc */ lw $t1,0xcc($s1) +/* 2448: 27a6002c */ addiu $a2,$sp,0x2c +/* 244c: 2f190001 */ sltiu $t9,$t8,0x1 +/* 2450: 00194040 */ sll $t0,$t9,0x1 +/* 2454: 2d2a0001 */ sltiu $t2,$t1,0x1 +/* 2458: 010a8025 */ or $s0,$t0,$t2 +/* 245c: 0c000b73 */ jal 0x2dcc +/* 2460: 02003825 */ move $a3,$s0 +/* 2464: 10500004 */ beq $v0,$s0,.L00002478 +/* 2468: 02202025 */ move $a0,$s1 +/* 246c: 8fa50030 */ lw $a1,0x30($sp) +/* 2470: 0c000b1f */ jal 0x2c7c +/* 2474: 8fa6002c */ lw $a2,0x2c($sp) +.L00002478: +/* 2478: 8e3000b4 */ lw $s0,0xb4($s1) +.L0000247c: +/* 247c: 52000010 */ beqzl $s0,.L000024c0 +/* 2480: 8fbf0024 */ lw $ra,0x24($sp) +/* 2484: 8e0b0008 */ lw $t3,0x8($s0) +.L00002488: +/* 2488: 02202825 */ move $a1,$s1 +/* 248c: 00003025 */ move $a2,$zero +/* 2490: 11600005 */ beqz $t3,.L000024a8 +/* 2494: 00000000 */ nop +/* 2498: 8e2c00d0 */ lw $t4,0xd0($s1) +/* 249c: 318d0001 */ andi $t5,$t4,0x1 +/* 24a0: 55a00004 */ bnezl $t5,.L000024b4 +/* 24a4: 8e100000 */ lw $s0,0x0($s0) +.L000024a8: +/* 24a8: 0c01272c */ jal 0x49cb0 +/* 24ac: 8e040004 */ lw $a0,0x4($s0) +/* 24b0: 8e100000 */ lw $s0,0x0($s0) +.L000024b4: +/* 24b4: 5600fff4 */ bnezl $s0,.L00002488 +/* 24b8: 8e0b0008 */ lw $t3,0x8($s0) +/* 24bc: 8fbf0024 */ lw $ra,0x24($sp) +.L000024c0: +/* 24c0: 8fb00014 */ lw $s0,0x14($sp) +/* 24c4: 8fb10018 */ lw $s1,0x18($sp) +/* 24c8: 8fb2001c */ lw $s2,0x1c($sp) +/* 24cc: 8fb30020 */ lw $s3,0x20($sp) +/* 24d0: 03e00008 */ jr $ra +/* 24d4: 27bd0040 */ addiu $sp,$sp,0x40 +); +#endif GLOBAL_ASM( glabel func000022e0 @@ -1908,6 +2685,23 @@ glabel func00002a84 /* 2b6c: 00000000 */ nop ); +#if VERSION == VERSION_NTSC_BETA +GLOBAL_ASM( +glabel func00002d68nb +/* 2d68: 8c8300c8 */ lw $v1,0xc8($a0) +/* 2d6c: 00001025 */ move $v0,$zero +/* 2d70: 10600005 */ beqz $v1,.L00002d88 +/* 2d74: 00000000 */ nop +/* 2d78: 8c620010 */ lw $v0,0x10($v1) +/* 2d7c: 384e0002 */ xori $t6,$v0,0x2 +/* 2d80: 03e00008 */ jr $ra +/* 2d84: 2dc20001 */ sltiu $v0,$t6,0x1 +.L00002d88: +/* 2d88: 03e00008 */ jr $ra +/* 2d8c: 00000000 */ nop +); +#endif + GLOBAL_ASM( glabel func00002b70 /* 2b70: 27bdffe8 */ addiu $sp,$sp,-24 diff --git a/tools/patchpiracysums b/tools/patchpiracysums index 8c44d787a..cfd79c875 100755 --- a/tools/patchpiracysums +++ b/tools/patchpiracysums @@ -200,7 +200,9 @@ class Tool: self.fd.close() -if os.environ['PIRACYCHECKS'] == '1': +# Piracy checks disabled for ntsc-beta for now... +# it's possible they don't exist in that version. +if os.environ['PIRACYCHECKS'] == '1' and os.environ['ROMID'] != 'ntsc-beta': tool = Tool() tool.run()