diff --git a/src/game/cheats.c b/src/game/cheats.c index a0b067443..b3aa4d83f 100644 --- a/src/game/cheats.c +++ b/src/game/cheats.c @@ -14,130 +14,38 @@ #include "game/game_16cfa0.h" #include "game/game_19c990.h" -GLOBAL_ASM( -glabel cheatIsUnlocked -/* f106d40: 3c0f8007 */ lui $t7,%hi(g_Cheats) -/* f106d44: 25ef3a90 */ addiu $t7,$t7,%lo(g_Cheats) -/* f106d48: 000470c0 */ sll $t6,$a0,0x3 -/* f106d4c: 01cf1821 */ addu $v1,$t6,$t7 -/* f106d50: 90660006 */ lbu $a2,0x6($v1) -/* f106d54: 27bdffd8 */ addiu $sp,$sp,-40 -/* f106d58: afbf0014 */ sw $ra,0x14($sp) -/* f106d5c: 30d80008 */ andi $t8,$a2,0x8 -/* f106d60: 1300000b */ beqz $t8,.L0f106d90 -/* f106d64: 00002825 */ or $a1,$zero,$zero -/* f106d68: 94640002 */ lhu $a0,0x2($v1) -/* f106d6c: afa3001c */ sw $v1,0x1c($sp) -/* f106d70: 0fc673c8 */ jal func0f19cf20 -/* f106d74: afa00020 */ sw $zero,0x20($sp) -/* f106d78: 8fa3001c */ lw $v1,0x1c($sp) -/* f106d7c: 10400002 */ beqz $v0,.L0f106d88 -/* f106d80: 8fa50020 */ lw $a1,0x20($sp) -/* f106d84: 24050001 */ addiu $a1,$zero,0x1 -.L0f106d88: -/* f106d88: 10000029 */ beqz $zero,.L0f106e30 -/* f106d8c: 90660006 */ lbu $a2,0x6($v1) -.L0f106d90: -/* f106d90: 30d90004 */ andi $t9,$a2,0x4 -/* f106d94: 53200016 */ beqzl $t9,.L0f106df0 -/* f106d98: 906e0004 */ lbu $t6,0x4($v1) -/* f106d9c: 90680004 */ lbu $t0,0x4($v1) -/* f106da0: 3c0a800a */ lui $t2,%hi(var800a2200) -/* f106da4: 254a2200 */ addiu $t2,$t2,%lo(var800a2200) -/* f106da8: 00084880 */ sll $t1,$t0,0x2 -/* f106dac: 01284823 */ subu $t1,$t1,$t0 -/* f106db0: 00094840 */ sll $t1,$t1,0x1 -/* f106db4: 012a1021 */ addu $v0,$t1,$t2 -/* f106db8: 944b0020 */ lhu $t3,0x20($v0) -/* f106dbc: 51600003 */ beqzl $t3,.L0f106dcc -/* f106dc0: 944c0022 */ lhu $t4,0x22($v0) -/* f106dc4: 24050001 */ addiu $a1,$zero,0x1 -/* f106dc8: 944c0022 */ lhu $t4,0x22($v0) -.L0f106dcc: -/* f106dcc: 51800003 */ beqzl $t4,.L0f106ddc -/* f106dd0: 944d0024 */ lhu $t5,0x24($v0) -/* f106dd4: 24a50001 */ addiu $a1,$a1,0x1 -/* f106dd8: 944d0024 */ lhu $t5,0x24($v0) -.L0f106ddc: -/* f106ddc: 51a00015 */ beqzl $t5,.L0f106e34 -/* f106de0: 30ca0002 */ andi $t2,$a2,0x2 -/* f106de4: 10000012 */ beqz $zero,.L0f106e30 -/* f106de8: 24a50001 */ addiu $a1,$a1,0x1 -/* f106dec: 906e0004 */ lbu $t6,0x4($v1) -.L0f106df0: -/* f106df0: 90780005 */ lbu $t8,0x5($v1) -/* f106df4: 3c02800a */ lui $v0,0x800a -/* f106df8: 000e7880 */ sll $t7,$t6,0x2 -/* f106dfc: 01ee7823 */ subu $t7,$t7,$t6 -/* f106e00: 000f7840 */ sll $t7,$t7,0x1 -/* f106e04: 0018c840 */ sll $t9,$t8,0x1 -/* f106e08: 01f94021 */ addu $t0,$t7,$t9 -/* f106e0c: 00481021 */ addu $v0,$v0,$t0 -/* f106e10: 94422220 */ lhu $v0,0x2220($v0) -/* f106e14: 50400007 */ beqzl $v0,.L0f106e34 -/* f106e18: 30ca0002 */ andi $t2,$a2,0x2 -/* f106e1c: 94690002 */ lhu $t1,0x2($v1) -/* f106e20: 0122082a */ slt $at,$t1,$v0 -/* f106e24: 54200003 */ bnezl $at,.L0f106e34 -/* f106e28: 30ca0002 */ andi $t2,$a2,0x2 -/* f106e2c: 24050001 */ addiu $a1,$zero,0x1 -.L0f106e30: -/* f106e30: 30ca0002 */ andi $t2,$a2,0x2 -.L0f106e34: -/* f106e34: 11400006 */ beqz $t2,.L0f106e50 -/* f106e38: 24040023 */ addiu $a0,$zero,0x23 -/* f106e3c: 0fc43c63 */ jal eepromGet -/* f106e40: afa50020 */ sw $a1,0x20($sp) -/* f106e44: 10400002 */ beqz $v0,.L0f106e50 -/* f106e48: 8fa50020 */ lw $a1,0x20($sp) -/* f106e4c: 24a50001 */ addiu $a1,$a1,0x1 -.L0f106e50: -/* f106e50: 8fbf0014 */ lw $ra,0x14($sp) -/* f106e54: 27bd0028 */ addiu $sp,$sp,0x28 -/* f106e58: 00a01025 */ or $v0,$a1,$zero -/* f106e5c: 03e00008 */ jr $ra -/* f106e60: 00000000 */ sll $zero,$zero,0x0 -); +u32 cheatIsUnlocked(s32 cheat_id) +{ + struct cheat *cheat = &g_Cheats[cheat_id]; + u32 unlocked = 0; -// Mismatch due to incorrect jump address for g_BestTimes. -// It appears to be in a struct that starts 0x20 earlier, but this means other -// variables like g_EepromFlags are in the struct too. Resolving this will be -// done separately. -//bool cheatIsUnlocked(s32 cheat_id) -//{ -// struct cheat *cheat = &g_Cheats[cheat_id]; -// bool unlocked = false; -// -// if (cheat->flags & CHEATFLAG_FIRINGRANGE) { -// if (func0f19cf20(cheat->time)) { -// unlocked = true; -// } -// } else if (cheat->flags & CHEATFLAG_COMPLETION) { -// if (g_BestTimes[cheat->stage_index * 3]) { -// unlocked++; -// } -// if (g_BestTimes[cheat->stage_index * 3 + 1]) { -// unlocked++; -// } -// if (g_BestTimes[cheat->stage_index * 3 + 2]) { -// unlocked++; -// } -// } else { -// s32 mytime = g_BestTimes[cheat->stage_index * 3 + cheat->difficulty]; -// -// if (mytime && mytime <= cheat->time) { -// unlocked = true; -// } -// } -// -// if (cheat->flags & CHEATFLAG_TRANSFERPAK) { -// if (eepromGet(0x23)) { -// unlocked++; -// } -// } -// -// return unlocked; -//} + if (cheat->flags & CHEATFLAG_FIRINGRANGE) { + if (func0f19cf20(cheat->time)) { + unlocked++; + } + } else if (cheat->flags & CHEATFLAG_COMPLETION) { + if (g_SoloSaveFile.besttimes[cheat->stage_index][0]) { + unlocked++; + } + if (g_SoloSaveFile.besttimes[cheat->stage_index][1]) { + unlocked++; + } + if (g_SoloSaveFile.besttimes[cheat->stage_index][2]) { + unlocked++; + } + } else { + if (g_SoloSaveFile.besttimes[cheat->stage_index][cheat->difficulty] && + g_SoloSaveFile.besttimes[cheat->stage_index][cheat->difficulty] <= cheat->time) { + unlocked++; + } + } + + if ((cheat->flags & CHEATFLAG_TRANSFERPAK) && eepromGet(EEPROMFLAG_USED_TRANSFERPAK)) { + unlocked++; + } + + return unlocked; +} bool cheatIsActive(s32 cheat_id) { diff --git a/src/game/game_015470.c b/src/game/game_015470.c index ec94db050..d943cd0ae 100644 --- a/src/game/game_015470.c +++ b/src/game/game_015470.c @@ -8760,8 +8760,8 @@ glabel func0f01bf28 /* f01ceb8: 00008025 */ or $s0,$zero,$zero /* f01cebc: 0fc06fa8 */ jal func0f01bea0 /* f01cec0: afa40158 */ sw $a0,0x158($sp) -/* f01cec4: 3c10800a */ lui $s0,%hi(var800a2200) -/* f01cec8: 26102200 */ addiu $s0,$s0,%lo(var800a2200) +/* f01cec4: 3c10800a */ lui $s0,0x800a +/* f01cec8: 26102200 */ addiu $s0,$s0,0x2200 /* f01cecc: 24190002 */ addiu $t9,$zero,0x2 /* f01ced0: 3c018006 */ lui $at,0x8006 /* f01ced4: a0392940 */ sb $t9,0x2940($at) diff --git a/src/game/game_102240.c b/src/game/game_102240.c index 65f84f4f4..a1f6a0dd9 100644 --- a/src/game/game_102240.c +++ b/src/game/game_102240.c @@ -1887,9 +1887,9 @@ glabel func0f1038ec /* f1038ec: 28810011 */ slti $at,$a0,0x11 /* f1038f0: 14200024 */ bnez $at,.L0f103984 /* f1038f4: 00a03025 */ or $a2,$a1,$zero -/* f1038f8: 3c05800a */ lui $a1,%hi(var800a2200) +/* f1038f8: 3c05800a */ lui $a1,0x800a /* f1038fc: 00001025 */ or $v0,$zero,$zero -/* f103900: 24a52200 */ addiu $a1,$a1,%lo(var800a2200) +/* f103900: 24a52200 */ addiu $a1,$a1,0x2200 /* f103904: 00001825 */ or $v1,$zero,$zero .L0f103908: /* f103908: 94ae0080 */ lhu $t6,0x80($a1) @@ -1911,8 +1911,8 @@ glabel func0f1038ec /* f103940: 00001825 */ or $v1,$zero,$zero /* f103944: 00047880 */ sll $t7,$a0,0x2 /* f103948: 01e47823 */ subu $t7,$t7,$a0 -/* f10394c: 3c18800a */ lui $t8,%hi(var800a2200) -/* f103950: 27182200 */ addiu $t8,$t8,%lo(var800a2200) +/* f10394c: 3c18800a */ lui $t8,0x800a +/* f103950: 27182200 */ addiu $t8,$t8,0x2200 /* f103954: 000f7840 */ sll $t7,$t7,0x1 /* f103958: 01f81021 */ addu $v0,$t7,$t8 .L0f10395c: @@ -1952,13 +1952,13 @@ glabel func0f1038ec /* f1039d0: 01a46823 */ subu $t5,$t5,$a0 /* f1039d4: 000d6840 */ sll $t5,$t5,0x1 /* f1039d8: 00037040 */ sll $t6,$v1,0x1 -/* f1039dc: 3c18800a */ lui $t8,%hi(var800a2200) -/* f1039e0: 27182200 */ addiu $t8,$t8,%lo(var800a2200) +/* f1039dc: 3c18800a */ lui $t8,0x800a +/* f1039e0: 27182200 */ addiu $t8,$t8,0x2200 /* f1039e4: 01ae7821 */ addu $t7,$t5,$t6 -/* f1039e8: 3c0a800a */ lui $t2,%hi(var800a2200) +/* f1039e8: 3c0a800a */ lui $t2,0x800a /* f1039ec: 3c09800a */ lui $t1,%hi(var8009dfe8) /* f1039f0: 2529dfe8 */ addiu $t1,$t1,%lo(var8009dfe8) -/* f1039f4: 254a2200 */ addiu $t2,$t2,%lo(var800a2200) +/* f1039f4: 254a2200 */ addiu $t2,$t2,0x2200 /* f1039f8: 01f81021 */ addu $v0,$t7,$t8 /* f1039fc: 240b0003 */ addiu $t3,$zero,0x3 .L0f103a00: @@ -1991,8 +1991,8 @@ glabel func0f1038ec /* f103a5c: 24420002 */ addiu $v0,$v0,0x2 .L0f103a60: /* f103a60: 3c09800a */ lui $t1,%hi(var8009dfe8) -/* f103a64: 3c0a800a */ lui $t2,%hi(var800a2200) -/* f103a68: 254a2200 */ addiu $t2,$t2,%lo(var800a2200) +/* f103a64: 3c0a800a */ lui $t2,0x800a +/* f103a68: 254a2200 */ addiu $t2,$t2,0x2200 /* f103a6c: 2529dfe8 */ addiu $t1,$t1,%lo(var8009dfe8) /* f103a70: 18800052 */ blez $a0,.L0f103bbc /* f103a74: 240b0003 */ addiu $t3,$zero,0x3 @@ -2095,8 +2095,8 @@ glabel func0f1038ec /* f103bc0: 2401002a */ addiu $at,$zero,0x2a /* f103bc4: 10a10047 */ beq $a1,$at,.L0f103ce4 /* f103bc8: 00003825 */ or $a3,$zero,$zero -/* f103bcc: 3c05800a */ lui $a1,%hi(var800a2200) -/* f103bd0: 24a52200 */ addiu $a1,$a1,%lo(var800a2200) +/* f103bcc: 3c05800a */ lui $a1,0x800a +/* f103bd0: 24a52200 */ addiu $a1,$a1,0x2200 .L0f103bd4: /* f103bd4: 00001825 */ or $v1,$zero,$zero /* f103bd8: 00001025 */ or $v0,$zero,$zero @@ -2461,11 +2461,11 @@ glabel func0f10408c /* f10408c: 3c0e800a */ lui $t6,0x800a /* f104090: 8dcedfe8 */ lw $t6,-0x2018($t6) /* f104094: 24180001 */ addiu $t8,$zero,0x1 -/* f104098: 3c05800a */ lui $a1,%hi(var800a2200) +/* f104098: 3c05800a */ lui $a1,0x800a /* f10409c: 000e7e42 */ srl $t7,$t6,0x19 /* f1040a0: 00001025 */ or $v0,$zero,$zero /* f1040a4: 030f1823 */ subu $v1,$t8,$t7 -/* f1040a8: 24a52200 */ addiu $a1,$a1,%lo(var800a2200) +/* f1040a8: 24a52200 */ addiu $a1,$a1,0x2200 /* f1040ac: 00002025 */ or $a0,$zero,$zero /* f1040b0: 24080003 */ addiu $t0,$zero,0x3 /* f1040b4: 3c07fffe */ lui $a3,0xfffe @@ -2914,12 +2914,12 @@ glabel func0f104664 /* f104668: afb30020 */ sw $s3,0x20($sp) /* f10466c: afb2001c */ sw $s2,0x1c($sp) /* f104670: afb00014 */ sw $s0,0x14($sp) -/* f104674: 3c02800a */ lui $v0,%hi(var800a2200) +/* f104674: 3c02800a */ lui $v0,0x800a /* f104678: afbf0024 */ sw $ra,0x24($sp) /* f10467c: afb10018 */ sw $s1,0x18($sp) /* f104680: 00009825 */ or $s3,$zero,$zero /* f104684: 24120001 */ addiu $s2,$zero,0x1 -/* f104688: 24422200 */ addiu $v0,$v0,%lo(var800a2200) +/* f104688: 24422200 */ addiu $v0,$v0,0x2200 /* f10468c: 00008025 */ or $s0,$zero,$zero .L0f104690: /* f104690: 944e0080 */ lhu $t6,0x80($v0) @@ -2967,9 +2967,9 @@ glabel func0f104664 GLOBAL_ASM( glabel func0f104720 -/* f104720: 3c05800a */ lui $a1,%hi(var800a2200) +/* f104720: 3c05800a */ lui $a1,0x800a /* f104724: 00001025 */ or $v0,$zero,$zero -/* f104728: 24a52200 */ addiu $a1,$a1,%lo(var800a2200) +/* f104728: 24a52200 */ addiu $a1,$a1,0x2200 /* f10472c: 00001825 */ or $v1,$zero,$zero /* f104730: 24060003 */ addiu $a2,$zero,0x3 .L0f104734: @@ -3026,13 +3026,13 @@ glabel menuhandler0010476c /* f1047e0: 8c2f2d9c */ lw $t7,%lo(var7f1b2d9c)($at) /* f1047e4: 01e00008 */ jr $t7 /* f1047e8: 00000000 */ sll $zero,$zero,0x0 -/* f1047ec: 3c0a800a */ lui $t2,%hi(var800a2200) -/* f1047f0: 3c09800a */ lui $t1,%hi(var800a2200) +/* f1047ec: 3c0a800a */ lui $t2,0x800a +/* f1047f0: 3c09800a */ lui $t1,0x800a /* f1047f4: 3c08800a */ lui $t0,%hi(var8009dfe8) /* f1047f8: ae000000 */ sw $zero,0x0($s0) /* f1047fc: 2508dfe8 */ addiu $t0,$t0,%lo(var8009dfe8) -/* f104800: 25292200 */ addiu $t1,$t1,%lo(var800a2200) -/* f104804: 254a2200 */ addiu $t2,$t2,%lo(var800a2200) +/* f104800: 25292200 */ addiu $t1,$t1,0x2200 +/* f104804: 254a2200 */ addiu $t2,$t2,0x2200 /* f104808: 00003025 */ or $a2,$zero,$zero /* f10480c: 240b0011 */ addiu $t3,$zero,0x11 /* f104810: 24070003 */ addiu $a3,$zero,0x3 @@ -3189,8 +3189,8 @@ glabel menuhandler0010476c /* f104a3c: 072202d2 */ bltzl $t9,.L0f105588 /* f104a40: 00001025 */ or $v0,$zero,$zero /* f104a44: 8d0f0000 */ lw $t7,0x0($t0) -/* f104a48: 3c09800a */ lui $t1,%hi(var800a2200) -/* f104a4c: 25292200 */ addiu $t1,$t1,%lo(var800a2200) +/* f104a48: 3c09800a */ lui $t1,0x800a +/* f104a4c: 25292200 */ addiu $t1,$t1,0x2200 /* f104a50: 000fc640 */ sll $t8,$t7,0x19 /* f104a54: 070202cc */ bltzl $t8,.L0f105588 /* f104a58: 00001025 */ or $v0,$zero,$zero @@ -3221,8 +3221,8 @@ glabel menuhandler0010476c .L0f104abc: /* f104abc: 0fc411c8 */ jal func0f104720 /* f104ac0: afa40160 */ sw $a0,0x160($sp) -/* f104ac4: 3c09800a */ lui $t1,%hi(var800a2200) -/* f104ac8: 25292200 */ addiu $t1,$t1,%lo(var800a2200) +/* f104ac4: 3c09800a */ lui $t1,0x800a +/* f104ac8: 25292200 */ addiu $t1,$t1,0x2200 /* f104acc: 9138000c */ lbu $t8,0xc($t1) /* f104ad0: 8fa30164 */ lw $v1,0x164($sp) /* f104ad4: 8fa40160 */ lw $a0,0x160($sp) @@ -3534,15 +3534,15 @@ glabel menuhandler0010476c /* f104f78: 8faf00ec */ lw $t7,0xec($sp) /* f104f7c: 3c098008 */ lui $t1,%hi(var8007fac0) /* f104f80: 240e0001 */ addiu $t6,$zero,0x1 -/* f104f84: 3c06800a */ lui $a2,%hi(var800a2200) -/* f104f88: 3c10800a */ lui $s0,%hi(var800a220c) +/* f104f84: 3c06800a */ lui $a2,0x800a +/* f104f88: 3c10800a */ lui $s0,0x800a /* f104f8c: 3c0b0010 */ lui $t3,0x10 /* f104f90: 2529fac0 */ addiu $t1,$t1,%lo(var8007fac0) /* f104f94: 3c0dfb00 */ lui $t5,0xfb00 /* f104f98: 241fff00 */ addiu $ra,$zero,-256 /* f104f9c: 356b01c0 */ ori $t3,$t3,0x1c0 -/* f104fa0: 2610220c */ addiu $s0,$s0,%lo(var800a220c) -/* f104fa4: 24c62200 */ addiu $a2,$a2,%lo(var800a2200) +/* f104fa0: 2610220c */ addiu $s0,$s0,0x220c +/* f104fa4: 24c62200 */ addiu $a2,$a2,0x2200 /* f104fa8: 2405003f */ addiu $a1,$zero,0x3f /* f104fac: 2408003f */ addiu $t0,$zero,0x3f /* f104fb0: 01ee6004 */ sllv $t4,$t6,$t7 @@ -3724,8 +3724,8 @@ glabel menuhandler0010476c /* f105258: 01ffc825 */ or $t9,$t7,$ra /* f10525c: acf90004 */ sw $t9,0x4($a3) /* f105260: 8fb800ec */ lw $t8,0xec($sp) -/* f105264: 3c0f800a */ lui $t7,%hi(var800a2200) -/* f105268: 25ef2200 */ addiu $t7,$t7,%lo(var800a2200) +/* f105264: 3c0f800a */ lui $t7,0x800a +/* f105268: 25ef2200 */ addiu $t7,$t7,0x2200 /* f10526c: 00187080 */ sll $t6,$t8,0x2 /* f105270: 01d87023 */ subu $t6,$t6,$t8 /* f105274: 000e7040 */ sll $t6,$t6,0x1 @@ -5111,11 +5111,11 @@ glabel func0f106508 GLOBAL_ASM( glabel func0f1065c0 -/* f1065c0: 3c06800a */ lui $a2,%hi(var800a2200) -/* f1065c4: 3c08800a */ lui $t0,%hi(var800a2200) +/* f1065c0: 3c06800a */ lui $a2,0x800a +/* f1065c4: 3c08800a */ lui $t0,0x800a /* f1065c8: 00001825 */ or $v1,$zero,$zero -/* f1065cc: 25082200 */ addiu $t0,$t0,%lo(var800a2200) -/* f1065d0: 24c62200 */ addiu $a2,$a2,%lo(var800a2200) +/* f1065cc: 25082200 */ addiu $t0,$t0,0x2200 +/* f1065d0: 24c62200 */ addiu $a2,$a2,0x2200 /* f1065d4: 00001025 */ or $v0,$zero,$zero /* f1065d8: 240a0003 */ addiu $t2,$zero,0x3 /* f1065dc: 24090011 */ addiu $t1,$zero,0x11 diff --git a/src/game/game_107fb0.c b/src/game/game_107fb0.c index 3818d5cc7..da0257157 100644 --- a/src/game/game_107fb0.c +++ b/src/game/game_107fb0.c @@ -2275,8 +2275,8 @@ glabel func0f109a68 /* f109ac0: 8c3836cc */ lw $t8,%lo(var7f1b36cc)($at) /* f109ac4: 03000008 */ jr $t8 /* f109ac8: 00000000 */ sll $zero,$zero,0x0 -/* f109acc: 3c05800a */ lui $a1,%hi(var800a2200) -/* f109ad0: 24a52200 */ addiu $a1,$a1,%lo(var800a2200) +/* f109acc: 3c05800a */ lui $a1,0x800a +/* f109ad0: 24a52200 */ addiu $a1,$a1,0x2200 /* f109ad4: 0c004c4c */ jal strcpy /* f109ad8: 02002025 */ or $a0,$s0,$zero /* f109adc: 10000031 */ beqz $zero,.L0f109ba4 @@ -2366,8 +2366,8 @@ glabel func0f109bb4 /* f109c08: 8c383714 */ lw $t8,%lo(var7f1b3714)($at) /* f109c0c: 03000008 */ jr $t8 /* f109c10: 00000000 */ sll $zero,$zero,0x0 -/* f109c14: 3c04800a */ lui $a0,%hi(var800a2200) -/* f109c18: 24842200 */ addiu $a0,$a0,%lo(var800a2200) +/* f109c14: 3c04800a */ lui $a0,0x800a +/* f109c18: 24842200 */ addiu $a0,$a0,0x2200 /* f109c1c: 0c004c4c */ jal strcpy /* f109c20: 00c02825 */ or $a1,$a2,$zero /* f109c24: 10000016 */ beqz $zero,.L0f109c80 @@ -4712,7 +4712,7 @@ glabel menuhandler0010bc98 /* f10bcc4: 00002825 */ or $a1,$zero,$zero /* f10bcc8: 24010011 */ addiu $at,$zero,0x11 /* f10bccc: 10810006 */ beq $a0,$at,.L0f10bce8 -/* f10bcd0: 3c05800a */ lui $a1,%hi(var800a2200) +/* f10bcd0: 3c05800a */ lui $a1,0x800a /* f10bcd4: 24010012 */ addiu $at,$zero,0x12 /* f10bcd8: 10810008 */ beq $a0,$at,.L0f10bcfc /* f10bcdc: 00e02825 */ or $a1,$a3,$zero @@ -4721,13 +4721,13 @@ glabel menuhandler0010bc98 .L0f10bce8: /* f10bce8: 00e02025 */ or $a0,$a3,$zero /* f10bcec: 0c004c4c */ jal strcpy -/* f10bcf0: 24a52200 */ addiu $a1,$a1,%lo(var800a2200) +/* f10bcf0: 24a52200 */ addiu $a1,$a1,0x2200 /* f10bcf4: 10000016 */ beqz $zero,.L0f10bd50 /* f10bcf8: 00001025 */ or $v0,$zero,$zero .L0f10bcfc: -/* f10bcfc: 3c04800a */ lui $a0,%hi(var800a2200) +/* f10bcfc: 3c04800a */ lui $a0,0x800a /* f10bd00: 0c004c4c */ jal strcpy -/* f10bd04: 24842200 */ addiu $a0,$a0,%lo(var800a2200) +/* f10bd04: 24842200 */ addiu $a0,$a0,0x2200 /* f10bd08: 10000011 */ beqz $zero,.L0f10bd50 /* f10bd0c: 00001025 */ or $v0,$zero,$zero .L0f10bd10: @@ -5395,12 +5395,12 @@ glabel menucustomChooseAgent /* f10c6f8: ae0e0000 */ sw $t6,0x0($s0) /* f10c6fc: 8e020000 */ lw $v0,0x0($s0) /* f10c700: 850f02d0 */ lh $t7,0x2d0($t0) -/* f10c704: 3c04800a */ lui $a0,%hi(var800a2200) +/* f10c704: 3c04800a */ lui $a0,0x800a /* f10c708: 00026080 */ sll $t4,$v0,0x2 /* f10c70c: 144f0008 */ bne $v0,$t7,.L0f10c730 /* f10c710: 01826023 */ subu $t4,$t4,$v0 /* f10c714: 0fc43da6 */ jal func0f10f698 -/* f10c718: 24842200 */ addiu $a0,$a0,%lo(var800a2200) +/* f10c718: 24842200 */ addiu $a0,$a0,0x2200 /* f10c71c: 3c048007 */ lui $a0,%hi(menudialog_enteragentname) /* f10c720: 0fc3cbd3 */ jal func0f0f2f4c /* f10c724: 24844d80 */ addiu $a0,$a0,%lo(menudialog_enteragentname) diff --git a/src/game/game_10ccd0.c b/src/game/game_10ccd0.c index 800b07f7e..2677046b1 100644 --- a/src/game/game_10ccd0.c +++ b/src/game/game_10ccd0.c @@ -1898,9 +1898,9 @@ glabel func0f10e588 /* f10e5a0: 3c05800a */ lui $a1,%hi(var8009dfe8) /* f10e5a4: 24a5dfe8 */ addiu $a1,$a1,%lo(var8009dfe8) /* f10e5a8: 15e0001b */ bnez $t7,.L0f10e618 -/* f10e5ac: 3c09800a */ lui $t1,%hi(var800a2200) +/* f10e5ac: 3c09800a */ lui $t1,0x800a /* f10e5b0: 8cb80000 */ lw $t8,0x0($a1) -/* f10e5b4: 25292200 */ addiu $t1,$t1,%lo(var800a2200) +/* f10e5b4: 25292200 */ addiu $t1,$t1,0x2200 /* f10e5b8: 90aa0002 */ lbu $t2,0x2($a1) /* f10e5bc: 0018ce42 */ srl $t9,$t8,0x19 /* f10e5c0: 00194080 */ sll $t0,$t9,0x2 @@ -2127,16 +2127,16 @@ glabel func0f10e620 /* f10e900: 3484ffff */ ori $a0,$a0,0xffff /* f10e904: 0064082b */ sltu $at,$v1,$a0 /* f10e908: 10200007 */ beqz $at,.L0f10e928 -/* f10e90c: 3c05800a */ lui $a1,%hi(var800a2200) -/* f10e910: 24a52200 */ addiu $a1,$a1,%lo(var800a2200) +/* f10e90c: 3c05800a */ lui $a1,0x800a +/* f10e910: 24a52200 */ addiu $a1,$a1,0x2200 /* f10e914: 8ca20010 */ lw $v0,0x10($a1) /* f10e918: 00834823 */ subu $t1,$a0,$v1 /* f10e91c: 0049082b */ sltu $at,$v0,$t1 /* f10e920: 14200005 */ bnez $at,.L0f10e938 /* f10e924: 00435021 */ addu $t2,$v0,$v1 .L0f10e928: -/* f10e928: 3c05800a */ lui $a1,%hi(var800a2200) -/* f10e92c: 24a52200 */ addiu $a1,$a1,%lo(var800a2200) +/* f10e928: 3c05800a */ lui $a1,0x800a +/* f10e92c: 24a52200 */ addiu $a1,$a1,0x2200 /* f10e930: 10000003 */ beqz $zero,.L0f10e940 /* f10e934: aca40010 */ sw $a0,0x10($a1) .L0f10e938: @@ -2145,9 +2145,9 @@ glabel func0f10e620 .L0f10e940: /* f10e940: 3c03800a */ lui $v1,%hi(var8009dfe8) /* f10e944: 2463dfe8 */ addiu $v1,$v1,%lo(var8009dfe8) -/* f10e948: 3c05800a */ lui $a1,%hi(var800a2200) +/* f10e948: 3c05800a */ lui $a1,0x800a /* f10e94c: 8c6d0000 */ lw $t5,0x0($v1) -/* f10e950: 24a52200 */ addiu $a1,$a1,%lo(var800a2200) +/* f10e950: 24a52200 */ addiu $a1,$a1,0x2200 /* f10e954: 90af000b */ lbu $t7,0xb($a1) /* f10e958: 906b0002 */ lbu $t3,0x2($v1) /* f10e95c: 000d7642 */ srl $t6,$t5,0x19 @@ -2185,10 +2185,10 @@ glabel func0f10e620 /* f10e9dc: 2401003c */ addiu $at,$zero,0x3c /* f10e9e0: 0041001a */ div $zero,$v0,$at /* f10e9e4: 00002012 */ mflo $a0 -/* f10e9e8: 3c05800a */ lui $a1,%hi(var800a2200) +/* f10e9e8: 3c05800a */ lui $a1,0x800a /* f10e9ec: 2c811000 */ sltiu $at,$a0,0x1000 /* f10e9f0: 14200002 */ bnez $at,.L0f10e9fc -/* f10e9f4: 24a52200 */ addiu $a1,$a1,%lo(var800a2200) +/* f10e9f4: 24a52200 */ addiu $a1,$a1,0x2200 /* f10e9f8: 24040fff */ addiu $a0,$zero,0xfff .L0f10e9fc: /* f10e9fc: 14800002 */ bnez $a0,.L0f10ea08 @@ -2254,8 +2254,8 @@ glabel func0f10e620 /* f10ead8: 24070006 */ addiu $a3,$zero,0x6 /* f10eadc: 24040011 */ addiu $a0,$zero,0x11 .L0f10eae0: -/* f10eae0: 3c0c800a */ lui $t4,%hi(var800a2200) -/* f10eae4: 258c2200 */ addiu $t4,$t4,%lo(var800a2200) +/* f10eae0: 3c0c800a */ lui $t4,0x800a +/* f10eae4: 258c2200 */ addiu $t4,$t4,0x2200 /* f10eae8: 00cc1821 */ addu $v1,$a2,$t4 /* f10eaec: 00001025 */ or $v0,$zero,$zero .L0f10eaf0: @@ -2702,24 +2702,24 @@ glabel func0f10ef10 /* f10f124: 27bd0020 */ addiu $sp,$sp,0x20 /* f10f128: 03e00008 */ jr $ra /* f10f12c: ac2b1448 */ sw $t3,0x1448($at) -/* f10f130: 3c02800a */ lui $v0,%hi(g_EepromFlags) +/* f10f130: 3c02800a */ lui $v0,0x800a /* f10f134: 03e00008 */ jr $ra -/* f10f138: 24422214 */ addiu $v0,$v0,%lo(g_EepromFlags) +/* f10f138: 24422214 */ addiu $v0,$v0,0x2214 ); void eepromSet(u32 value) { - func0f11e530(value, &g_EepromFlags, true); + func0f11e530(value, &g_SoloSaveFile.eepromflags, true); } void eepromUnset(u32 value) { - func0f11e530(value, &g_EepromFlags, false); + func0f11e530(value, &g_SoloSaveFile.eepromflags, false); } u32 eepromGet(u32 value) { - return func0f11e584(value, &g_EepromFlags); + return func0f11e584(value, &g_SoloSaveFile.eepromflags); } GLOBAL_ASM( @@ -2728,9 +2728,9 @@ glabel func0f10f1b0 /* f10f1b4: afb1001c */ sw $s1,0x1c($sp) /* f10f1b8: afb20020 */ sw $s2,0x20($sp) /* f10f1bc: afb00018 */ sw $s0,0x18($sp) -/* f10f1c0: 3c11800a */ lui $s1,%hi(g_EepromFlags) +/* f10f1c0: 3c11800a */ lui $s1,0x800a /* f10f1c4: afbf0024 */ sw $ra,0x24($sp) -/* f10f1c8: 26312214 */ addiu $s1,$s1,%lo(g_EepromFlags) +/* f10f1c8: 26312214 */ addiu $s1,$s1,0x2214 /* f10f1cc: 24100023 */ addiu $s0,$zero,0x23 /* f10f1d0: 2412004f */ addiu $s2,$zero,0x4f /* f10f1d4: 02002025 */ or $a0,$s0,$zero @@ -3313,28 +3313,28 @@ glabel func0f10f698 /* f10fa40: 24100001 */ addiu $s0,$zero,0x1 /* f10fa44: 0fc66bf7 */ jal func0f19afdc /* f10fa48: 00000000 */ sll $zero,$zero,0x0 -/* f10fa4c: 3c02800a */ lui $v0,%hi(var800a2200) -/* f10fa50: 3c03800a */ lui $v1,%hi(var800a220c) -/* f10fa54: 2463220c */ addiu $v1,$v1,%lo(var800a220c) -/* f10fa58: 24422200 */ addiu $v0,$v0,%lo(var800a2200) +/* f10fa4c: 3c02800a */ lui $v0,0x800a +/* f10fa50: 3c03800a */ lui $v1,0x800a +/* f10fa54: 2463220c */ addiu $v1,$v1,0x220c +/* f10fa58: 24422200 */ addiu $v0,$v0,0x2200 .L0f10fa5c: /* f10fa5c: 24420004 */ addiu $v0,$v0,0x4 /* f10fa60: 0043082b */ sltu $at,$v0,$v1 /* f10fa64: 1420fffd */ bnez $at,.L0f10fa5c /* f10fa68: ac40009c */ sw $zero,0x9c($v0) -/* f10fa6c: 3c02800a */ lui $v0,%hi(var800a2200) +/* f10fa6c: 3c02800a */ lui $v0,0x800a /* f10fa70: 3c03800a */ lui $v1,0x800a /* f10fa74: 24632209 */ addiu $v1,$v1,0x2209 -/* f10fa78: 24422200 */ addiu $v0,$v0,%lo(var800a2200) +/* f10fa78: 24422200 */ addiu $v0,$v0,0x2200 .L0f10fa7c: /* f10fa7c: 24420001 */ addiu $v0,$v0,0x1 /* f10fa80: 0043082b */ sltu $at,$v0,$v1 /* f10fa84: 1420fffd */ bnez $at,.L0f10fa7c /* f10fa88: a04000ab */ sb $zero,0xab($v0) -/* f10fa8c: 3c02800a */ lui $v0,%hi(var800a2200) +/* f10fa8c: 3c02800a */ lui $v0,0x800a /* f10fa90: 3c03800a */ lui $v1,0x800a /* f10fa94: 24632206 */ addiu $v1,$v1,0x2206 -/* f10fa98: 24422200 */ addiu $v0,$v0,%lo(var800a2200) +/* f10fa98: 24422200 */ addiu $v0,$v0,0x2200 .L0f10fa9c: /* f10fa9c: 24420001 */ addiu $v0,$v0,0x1 /* f10faa0: 1443fffe */ bne $v0,$v1,.L0f10fa9c @@ -3398,16 +3398,16 @@ glabel func0f10fac8 /* f10fb68: ac2221f8 */ sw $v0,0x21f8($at) /* f10fb6c: 0fc41d3b */ jal cheatsDisableAll /* f10fb70: 00000000 */ sll $zero,$zero,0x0 -/* f10fb74: 3c05800a */ lui $a1,%hi(var800a2200) -/* f10fb78: 24a52200 */ addiu $a1,$a1,%lo(var800a2200) +/* f10fb74: 3c05800a */ lui $a1,0x800a +/* f10fb78: 24a52200 */ addiu $a1,$a1,0x2200 /* f10fb7c: 02802025 */ or $a0,$s4,$zero /* f10fb80: 0fc35539 */ jal func0f0d54e4 /* f10fb84: 00003025 */ or $a2,$zero,$zero /* f10fb88: 02802025 */ or $a0,$s4,$zero /* f10fb8c: 0fc354fe */ jal func0f0d53f8 /* f10fb90: 24050005 */ addiu $a1,$zero,0x5 -/* f10fb94: 3c03800a */ lui $v1,%hi(var800a2200) -/* f10fb98: 24632200 */ addiu $v1,$v1,%lo(var800a2200) +/* f10fb94: 3c03800a */ lui $v1,0x800a +/* f10fb98: 24632200 */ addiu $v1,$v1,0x2200 /* f10fb9c: 906a000b */ lbu $t2,0xb($v1) /* f10fba0: 000248c0 */ sll $t1,$v0,0x3 /* f10fba4: 02802025 */ or $a0,$s4,$zero @@ -3421,8 +3421,8 @@ glabel func0f10fac8 /* f10fbc4: 02802025 */ or $a0,$s4,$zero /* f10fbc8: 0fc354fe */ jal func0f0d53f8 /* f10fbcc: 24050002 */ addiu $a1,$zero,0x2 -/* f10fbd0: 3c03800a */ lui $v1,%hi(var800a2200) -/* f10fbd4: 24632200 */ addiu $v1,$v1,%lo(var800a2200) +/* f10fbd0: 3c03800a */ lui $v1,0x800a +/* f10fbd4: 24632200 */ addiu $v1,$v1,0x2200 /* f10fbd8: 906f000b */ lbu $t7,0xb($v1) /* f10fbdc: 304e0007 */ andi $t6,$v0,0x7 /* f10fbe0: 02802025 */ or $a0,$s4,$zero @@ -3476,10 +3476,10 @@ glabel func0f10fac8 /* f10fc98: 02402025 */ or $a0,$s2,$zero /* f10fc9c: 0fc549cb */ jal func0f15272c /* f10fca0: 00402825 */ or $a1,$v0,$zero -/* f10fca4: 3c10800a */ lui $s0,%hi(var800a2200) +/* f10fca4: 3c10800a */ lui $s0,0x800a /* f10fca8: 3c11800a */ lui $s1,0x800a /* f10fcac: 2631220a */ addiu $s1,$s1,0x220a -/* f10fcb0: 26102200 */ addiu $s0,$s0,%lo(var800a2200) +/* f10fcb0: 26102200 */ addiu $s0,$s0,0x2200 .L0f10fcb4: /* f10fcb4: 02802025 */ or $a0,$s4,$zero /* f10fcb8: 0fc354fe */ jal func0f0d53f8 @@ -3492,9 +3492,9 @@ glabel func0f10fac8 /* f10fcd4: 0fc354fe */ jal func0f0d53f8 /* f10fcd8: 24050010 */ addiu $a1,$zero,0x10 /* f10fcdc: 3c01800a */ lui $at,0x800a -/* f10fce0: 3c13800a */ lui $s3,%hi(var800a2200) +/* f10fce0: 3c13800a */ lui $s3,0x800a /* f10fce4: a422221e */ sh $v0,0x221e($at) -/* f10fce8: 26732200 */ addiu $s3,$s3,%lo(var800a2200) +/* f10fce8: 26732200 */ addiu $s3,$s3,0x2200 /* f10fcec: 24120003 */ addiu $s2,$zero,0x3 /* f10fcf0: 00008025 */ or $s0,$zero,$zero .L0f10fcf4: @@ -3534,10 +3534,10 @@ glabel func0f10fac8 /* f10fd6c: 24100001 */ addiu $s0,$zero,0x1 /* f10fd70: 0fc66bf7 */ jal func0f19afdc /* f10fd74: 00000000 */ sll $zero,$zero,0x0 -/* f10fd78: 3c10800a */ lui $s0,%hi(var800a2200) -/* f10fd7c: 3c11800a */ lui $s1,%hi(var800a220c) -/* f10fd80: 2631220c */ addiu $s1,$s1,%lo(var800a220c) -/* f10fd84: 26102200 */ addiu $s0,$s0,%lo(var800a2200) +/* f10fd78: 3c10800a */ lui $s0,0x800a +/* f10fd7c: 3c11800a */ lui $s1,0x800a +/* f10fd80: 2631220c */ addiu $s1,$s1,0x220c +/* f10fd84: 26102200 */ addiu $s0,$s0,0x2200 .L0f10fd88: /* f10fd88: 02802025 */ or $a0,$s4,$zero /* f10fd8c: 0fc354fe */ jal func0f0d53f8 @@ -3546,12 +3546,12 @@ glabel func0f10fac8 /* f10fd98: 0211082b */ sltu $at,$s0,$s1 /* f10fd9c: 1420fffa */ bnez $at,.L0f10fd88 /* f10fda0: ae02009c */ sw $v0,0x9c($s0) -/* f10fda4: 3c10800a */ lui $s0,%hi(var800a2200) +/* f10fda4: 3c10800a */ lui $s0,0x800a /* f10fda8: 3c12800a */ lui $s2,0x800a -/* f10fdac: 3c11800a */ lui $s1,%hi(var800a2208) -/* f10fdb0: 26312208 */ addiu $s1,$s1,%lo(var800a2208) +/* f10fdac: 3c11800a */ lui $s1,0x800a +/* f10fdb0: 26312208 */ addiu $s1,$s1,0x2208 /* f10fdb4: 26522209 */ addiu $s2,$s2,0x2209 -/* f10fdb8: 26102200 */ addiu $s0,$s0,%lo(var800a2200) +/* f10fdb8: 26102200 */ addiu $s0,$s0,0x2200 .L0f10fdbc: /* f10fdbc: 16110003 */ bne $s0,$s1,.L0f10fdcc /* f10fdc0: 24050008 */ addiu $a1,$zero,0x8 @@ -3564,10 +3564,10 @@ glabel func0f10fac8 /* f10fdd8: 0212082b */ sltu $at,$s0,$s2 /* f10fddc: 1420fff7 */ bnez $at,.L0f10fdbc /* f10fde0: a20200ab */ sb $v0,0xab($s0) -/* f10fde4: 3c10800a */ lui $s0,%hi(var800a2200) -/* f10fde8: 3c11800a */ lui $s1,%hi(var800a2204) -/* f10fdec: 26312204 */ addiu $s1,$s1,%lo(var800a2204) -/* f10fdf0: 26102200 */ addiu $s0,$s0,%lo(var800a2200) +/* f10fde4: 3c10800a */ lui $s0,0x800a +/* f10fde8: 3c11800a */ lui $s1,0x800a +/* f10fdec: 26312204 */ addiu $s1,$s1,0x2204 +/* f10fdf0: 26102200 */ addiu $s0,$s0,0x2200 .L0f10fdf4: /* f10fdf4: 02802025 */ or $a0,$s4,$zero /* f10fdf8: 0fc354fe */ jal func0f0d53f8 @@ -3575,8 +3575,8 @@ glabel func0f10fac8 /* f10fe00: 26100001 */ addiu $s0,$s0,0x1 /* f10fe04: 1611fffb */ bne $s0,$s1,.L0f10fdf4 /* f10fe08: a20200b4 */ sb $v0,0xb4($s0) -/* f10fe0c: 3c10800a */ lui $s0,%hi(g_EepromFlags) -/* f10fe10: 26102214 */ addiu $s0,$s0,%lo(g_EepromFlags) +/* f10fe0c: 3c10800a */ lui $s0,0x800a +/* f10fe10: 26102214 */ addiu $s0,$s0,0x2214 /* f10fe14: 02002825 */ or $a1,$s0,$zero /* f10fe18: 0fc47961 */ jal func0f11e584 /* f10fe1c: 24040041 */ addiu $a0,$zero,0x41 @@ -3603,9 +3603,9 @@ glabel func0f10fac8 .L0f10fe68: /* f10fe68: 0fc35531 */ jal func0f0d54c4 /* f10fe6c: 02802025 */ or $a0,$s4,$zero -/* f10fe70: 3c04800a */ lui $a0,%hi(var800a2200) +/* f10fe70: 3c04800a */ lui $a0,0x800a /* f10fe74: 0fc43c81 */ jal func0f10f204 -/* f10fe78: 24842200 */ addiu $a0,$a0,%lo(var800a2200) +/* f10fe78: 24842200 */ addiu $a0,$a0,0x2200 /* f10fe7c: 10000003 */ beqz $zero,.L0f10fe8c /* f10fe80: 00001025 */ or $v0,$zero,$zero .L0f10fe84: @@ -3661,8 +3661,8 @@ glabel func0f10feac /* f10ff24: ac325bd0 */ sw $s2,0x5bd0($at) /* f10ff28: 0fc549e0 */ jal func0f152780 /* f10ff2c: 02602025 */ or $a0,$s3,$zero -/* f10ff30: 3c10800a */ lui $s0,%hi(g_EepromFlags) -/* f10ff34: 26102214 */ addiu $s0,$s0,%lo(g_EepromFlags) +/* f10ff30: 3c10800a */ lui $s0,0x800a +/* f10ff34: 26102214 */ addiu $s0,$s0,0x2214 /* f10ff38: 02002825 */ or $a1,$s0,$zero /* f10ff3c: 00002025 */ or $a0,$zero,$zero /* f10ff40: 0fc4794c */ jal func0f11e530 @@ -3909,8 +3909,8 @@ glabel func0f10feac /* f110300: 00000000 */ sll $zero,$zero,0x0 /* f110304: 0fc35517 */ jal func0f0d545c /* f110308: 02802025 */ or $a0,$s4,$zero -/* f11030c: 3c12800a */ lui $s2,%hi(var800a2200) -/* f110310: 26522200 */ addiu $s2,$s2,%lo(var800a2200) +/* f11030c: 3c12800a */ lui $s2,0x800a +/* f110310: 26522200 */ addiu $s2,$s2,0x2200 /* f110314: 02402825 */ or $a1,$s2,$zero /* f110318: 0fc35569 */ jal func0f0d55a4 /* f11031c: 02802025 */ or $a0,$s4,$zero @@ -3974,10 +3974,10 @@ glabel func0f10feac /* f110400: 00402825 */ or $a1,$v0,$zero /* f110404: 0fc354be */ jal func0f0d52f8 /* f110408: 24060003 */ addiu $a2,$zero,0x3 -/* f11040c: 3c10800a */ lui $s0,%hi(var800a2200) +/* f11040c: 3c10800a */ lui $s0,0x800a /* f110410: 3c11800a */ lui $s1,0x800a /* f110414: 2631220a */ addiu $s1,$s1,0x220a -/* f110418: 26102200 */ addiu $s0,$s0,%lo(var800a2200) +/* f110418: 26102200 */ addiu $s0,$s0,0x2200 /* f11041c: 02802025 */ or $a0,$s4,$zero .L0f110420: /* f110420: 92050014 */ lbu $a1,0x14($s0) @@ -3991,8 +3991,8 @@ glabel func0f10feac /* f110440: 9645001e */ lhu $a1,0x1e($s2) /* f110444: 0fc354be */ jal func0f0d52f8 /* f110448: 24060010 */ addiu $a2,$zero,0x10 -/* f11044c: 3c15800a */ lui $s5,%hi(var800a2200) -/* f110450: 26b52200 */ addiu $s5,$s5,%lo(var800a2200) +/* f11044c: 3c15800a */ lui $s5,0x800a +/* f110450: 26b52200 */ addiu $s5,$s5,0x2200 /* f110454: 24130006 */ addiu $s3,$zero,0x6 /* f110458: 00008825 */ or $s1,$zero,$zero .L0f11045c: @@ -4030,10 +4030,10 @@ glabel func0f10feac /* f1104cc: 2a21001e */ slti $at,$s1,0x1e /* f1104d0: 5420fff3 */ bnezl $at,.L0f1104a0 /* f1104d4: 24100001 */ addiu $s0,$zero,0x1 -/* f1104d8: 3c10800a */ lui $s0,%hi(var800a2200) -/* f1104dc: 3c11800a */ lui $s1,%hi(var800a220c) -/* f1104e0: 2631220c */ addiu $s1,$s1,%lo(var800a220c) -/* f1104e4: 26102200 */ addiu $s0,$s0,%lo(var800a2200) +/* f1104d8: 3c10800a */ lui $s0,0x800a +/* f1104dc: 3c11800a */ lui $s1,0x800a +/* f1104e0: 2631220c */ addiu $s1,$s1,0x220c +/* f1104e4: 26102200 */ addiu $s0,$s0,0x2200 /* f1104e8: 02802025 */ or $a0,$s4,$zero .L0f1104ec: /* f1104ec: 8e0500a0 */ lw $a1,0xa0($s0) @@ -4043,12 +4043,12 @@ glabel func0f10feac /* f1104fc: 0211082b */ sltu $at,$s0,$s1 /* f110500: 5420fffa */ bnezl $at,.L0f1104ec /* f110504: 02802025 */ or $a0,$s4,$zero -/* f110508: 3c10800a */ lui $s0,%hi(var800a2200) +/* f110508: 3c10800a */ lui $s0,0x800a /* f11050c: 3c12800a */ lui $s2,0x800a -/* f110510: 3c11800a */ lui $s1,%hi(var800a2208) -/* f110514: 26312208 */ addiu $s1,$s1,%lo(var800a2208) +/* f110510: 3c11800a */ lui $s1,0x800a +/* f110514: 26312208 */ addiu $s1,$s1,0x2208 /* f110518: 26522209 */ addiu $s2,$s2,0x2209 -/* f11051c: 26102200 */ addiu $s0,$s0,%lo(var800a2200) +/* f11051c: 26102200 */ addiu $s0,$s0,0x2200 .L0f110520: /* f110520: 16110003 */ bne $s0,$s1,.L0f110530 /* f110524: 02802025 */ or $a0,$s4,$zero @@ -4064,10 +4064,10 @@ glabel func0f10feac /* f110544: 0212082b */ sltu $at,$s0,$s2 /* f110548: 1420fff5 */ bnez $at,.L0f110520 /* f11054c: 00000000 */ sll $zero,$zero,0x0 -/* f110550: 3c10800a */ lui $s0,%hi(var800a2200) -/* f110554: 3c11800a */ lui $s1,%hi(var800a2204) -/* f110558: 26312204 */ addiu $s1,$s1,%lo(var800a2204) -/* f11055c: 26102200 */ addiu $s0,$s0,%lo(var800a2200) +/* f110550: 3c10800a */ lui $s0,0x800a +/* f110554: 3c11800a */ lui $s1,0x800a +/* f110558: 26312204 */ addiu $s1,$s1,0x2204 +/* f11055c: 26102200 */ addiu $s0,$s0,0x2200 /* f110560: 02802025 */ or $a0,$s4,$zero .L0f110564: /* f110564: 920500b5 */ lbu $a1,0xb5($s0) diff --git a/src/game/game_115ab0.c b/src/game/game_115ab0.c index 23627f0e4..2dee00544 100644 --- a/src/game/game_115ab0.c +++ b/src/game/game_115ab0.c @@ -3956,8 +3956,8 @@ glabel func0f1189d8 /* f118a8c: 24050001 */ addiu $a1,$zero,0x1 /* f118a90: 0fc441b2 */ jal func0f1106c8 /* f118a94: 00000000 */ sll $zero,$zero,0x0 -/* f118a98: 3c10800a */ lui $s0,%hi(var800a2200) -/* f118a9c: 26102200 */ addiu $s0,$s0,%lo(var800a2200) +/* f118a98: 3c10800a */ lui $s0,0x800a +/* f118a9c: 26102200 */ addiu $s0,$s0,0x2200 /* f118aa0: 0fc43da6 */ jal func0f10f698 /* f118aa4: 02002025 */ or $a0,$s0,$zero /* f118aa8: 0fc43c81 */ jal func0f10f204 diff --git a/src/game/game_187770.c b/src/game/game_187770.c index 313597dd5..b600b640c 100644 --- a/src/game/game_187770.c +++ b/src/game/game_187770.c @@ -5628,8 +5628,8 @@ glabel func0f18c0c0 .L0f18c0f4: /* f18c0f4: 00027880 */ sll $t7,$v0,0x2 /* f18c0f8: 01e27823 */ subu $t7,$t7,$v0 -/* f18c0fc: 3c18800a */ lui $t8,%hi(var800a2200) -/* f18c100: 27182200 */ addiu $t8,$t8,%lo(var800a2200) +/* f18c0fc: 3c18800a */ lui $t8,0x800a +/* f18c100: 27182200 */ addiu $t8,$t8,0x2200 /* f18c104: 000f7840 */ sll $t7,$t7,0x1 /* f18c108: 01f83021 */ addu $a2,$t7,$t8 /* f18c10c: 24020006 */ addiu $v0,$zero,0x6 diff --git a/src/game/game_19c990.c b/src/game/game_19c990.c index 05792fbac..e1fed8b34 100644 --- a/src/game/game_19c990.c +++ b/src/game/game_19c990.c @@ -405,8 +405,8 @@ bool ciIsTourDone(void) u8 ciGetFiringRangeScore(s32 weapon_id) { - // Data at g_FiringRangeScores is a u8 array where each score uses 2 bits - return (g_FiringRangeScores[weapon_id >> 2] >> (weapon_id % 4) * 2) & 3; + // Data at firingrangescores is a u8 array where each score uses 2 bits + return (g_SoloSaveFile.firingrangescores[weapon_id >> 2] >> (weapon_id % 4) * 2) & 3; } GLOBAL_ASM( @@ -418,11 +418,11 @@ glabel func0f19c9e4 /* f19c9f4: afa40018 */ sw $a0,0x18($sp) /* f19c9f8: 8fa7001c */ lw $a3,0x1c($sp) /* f19c9fc: 8fa60018 */ lw $a2,0x18($sp) -/* f19ca00: 3c0f800a */ lui $t7,%hi(var800a2200) +/* f19ca00: 3c0f800a */ lui $t7,0x800a /* f19ca04: 0047082a */ slt $at,$v0,$a3 /* f19ca08: 10200017 */ beqz $at,.L0f19ca68 /* f19ca0c: 00067083 */ sra $t6,$a2,0x2 -/* f19ca10: 25ef2200 */ addiu $t7,$t7,%lo(var800a2200) +/* f19ca10: 25ef2200 */ addiu $t7,$t7,0x2200 /* f19ca14: 01cf2021 */ addu $a0,$t6,$t7 /* f19ca18: 24190001 */ addiu $t9,$zero,0x1 /* f19ca1c: 240a0001 */ addiu $t2,$zero,0x1 @@ -515,8 +515,8 @@ glabel func0f19cb38 /* f19cb38: 28810030 */ slti $at,$a0,0x30 /* f19cb3c: 1020000e */ beqz $at,.L0f19cb78 /* f19cb40: 000470c3 */ sra $t6,$a0,0x3 -/* f19cb44: 3c0f800a */ lui $t7,%hi(var800a2200) -/* f19cb48: 25ef2200 */ addiu $t7,$t7,%lo(var800a2200) +/* f19cb44: 3c0f800a */ lui $t7,0x800a +/* f19cb48: 25ef2200 */ addiu $t7,$t7,0x2200 /* f19cb4c: 01cf1821 */ addu $v1,$t6,$t7 /* f19cb50: 906200b5 */ lbu $v0,0xb5($v1) /* f19cb54: 04810004 */ bgez $a0,.L0f19cb68 @@ -538,8 +538,8 @@ GLOBAL_ASM( glabel func0f19cb80 /* f19cb80: 00047080 */ sll $t6,$a0,0x2 /* f19cb84: 01c47023 */ subu $t6,$t6,$a0 -/* f19cb88: 3c0f800a */ lui $t7,%hi(var800a2200) -/* f19cb8c: 25ef2200 */ addiu $t7,$t7,%lo(var800a2200) +/* f19cb88: 3c0f800a */ lui $t7,0x800a +/* f19cb8c: 25ef2200 */ addiu $t7,$t7,0x2200 /* f19cb90: 000e7040 */ sll $t6,$t6,0x1 /* f19cb94: 01cf1821 */ addu $v1,$t6,$t7 /* f19cb98: 94620020 */ lhu $v0,0x20($v1) diff --git a/src/gvars/gvars.c b/src/gvars/gvars.c index 6338bf487..5491db237 100644 --- a/src/gvars/gvars.c +++ b/src/gvars/gvars.c @@ -20326,24 +20326,7 @@ u32 var800a21f0 = 0; u32 var800a21f4 = 0; u32 var800a21f8 = 0; u32 var800a21fc = 0; -u32 var800a2200 = 0; -u32 var800a2204 = 0; -u32 var800a2208 = 0; -u32 var800a220c = 0; -u32 var800a2210 = 0; - -// 800a2214 -u32 g_EepromFlags = 0; - -u32 var800a2218 = 0; -u32 var800a221c = 0; - -u16 g_BestTimes[63] = {0}; - -u32 var800a22a0 = 0; -u32 var800a22a4 = 0; -u32 var800a22a8 = 0; -u8 g_FiringRangeScores[] = {0, 0, 0, 0}; +struct savefile_solo g_SoloSaveFile = {0}; u32 var800a22b0 = 0; u32 var800a22b4 = 0; u32 var800a22b8 = 0; diff --git a/src/include/constants.h b/src/include/constants.h index 7fdd3c850..6d94956c1 100644 --- a/src/include/constants.h +++ b/src/include/constants.h @@ -141,9 +141,9 @@ #define NUM_CHEATS 42 #define CHEATFLAG_TIMED 0 -#define CHEATFLAG_ALWAYSON 1 +#define CHEATFLAG_ALWAYSON 1 #define CHEATFLAG_TRANSFERPAK 2 -#define CHEATFLAG_COMPLETION 4 +#define CHEATFLAG_COMPLETION 4 #define CHEATFLAG_FIRINGRANGE 8 #define CHR_P1P2_OPPOSITE 0xf1 diff --git a/src/include/game/cheats.h b/src/include/game/cheats.h index 140d48418..8531aa74b 100644 --- a/src/include/game/cheats.h +++ b/src/include/game/cheats.h @@ -3,7 +3,7 @@ #include #include "types.h" -bool cheatIsUnlocked(s32 cheat_id); +u32 cheatIsUnlocked(s32 cheat_id); bool cheatIsActive(s32 cheat_id); void cheatActivate(s32 cheat_id); void cheatDeactivate(s32 cheat_id); diff --git a/src/include/game/game_19c990.h b/src/include/game/game_19c990.h index 2595573d9..b0876b19f 100644 --- a/src/include/game/game_19c990.h +++ b/src/include/game/game_19c990.h @@ -13,7 +13,7 @@ u32 func0f19cbcc(void); u32 func0f19cc50(void); u32 func0f19ccc0(void); u32 func0f19cdf0(void); -s32 func0f19cf20(s32 stage_index); // firing range related +u32 func0f19cf20(s32 stage_index); // firing range related u32 func0f19d250(void); u32 func0f19d25c(void); u32 func0f19d268(void); diff --git a/src/include/gvars/gvars.h b/src/include/gvars/gvars.h index 31fdb5124..5c030db18 100644 --- a/src/include/gvars/gvars.h +++ b/src/include/gvars/gvars.h @@ -365,7 +365,6 @@ extern u32 var8009cac4; extern u32 var8009de20; extern u32 var8009de24; -extern u32 g_EepromFlags; extern u32 var8008ae2c; extern u32 var8008ae30; extern u32 var8008ae38; @@ -698,12 +697,7 @@ extern u32 g_CheatsEnabledBank1; extern u32 var800a21e0; extern u32 var800a21e8; extern u32 var800a21f0; -extern u32 var800a2200; -extern u32 var800a2204; -extern u32 var800a2208; -extern u32 var800a220c; -extern u16 g_BestTimes[]; -extern u8 g_FiringRangeScores[]; +extern struct savefile_solo g_SoloSaveFile; extern u32 var800a22c0; extern u32 var800a22d0; extern u32 var800a2330; diff --git a/src/include/types.h b/src/include/types.h index 0ee5be424..566f8fe2e 100644 --- a/src/include/types.h +++ b/src/include/types.h @@ -3883,4 +3883,20 @@ struct menustackitem { /*0xe6c*/ u32 unke6c; }; +struct savefile_solo { + /*0x00*/ u32 unk00; + /*0x04*/ u32 unk04; + /*0x08*/ u32 unk08; + /*0x0c*/ u32 unk0c; + /*0x10*/ u32 unk10; + /*0x14*/ u32 eepromflags; + /*0x18*/ u32 unk18; + /*0x1c*/ u32 unk1c; + /*0x20*/ u16 besttimes[21][3]; + /*0xa0*/ u32 var800a22a0; + /*0xa4*/ u32 var800a22a4; + /*0xa8*/ u32 var800a22a8; + /*0xac*/ u8 firingrangescores[4]; +}; + #endif diff --git a/src/setup/setup_0160b0.c b/src/setup/setup_0160b0.c index 3f61715a6..e9698011e 100644 --- a/src/setup/setup_0160b0.c +++ b/src/setup/setup_0160b0.c @@ -2962,39 +2962,39 @@ u32 var80073a8c = 0x00000000; // 19ab0 struct cheat g_Cheats[] = { // name, time, stage index, difficulty, flags - { 0x544b, 123, 2, DIFF_A, CHEATFLAG_TIMED | CHEATFLAG_TRANSFERPAK }, // Hurricane Fists - { 0x544c, 100, 5, DIFF_A, CHEATFLAG_TIMED | CHEATFLAG_TRANSFERPAK }, // Cloaking Device + { 0x544b, 123, 2, DIFF_A, CHEATFLAG_TIMED | CHEATFLAG_TRANSFERPAK }, // Hurricane Fists + { 0x544c, 100, 5, DIFF_A, CHEATFLAG_TIMED | CHEATFLAG_TRANSFERPAK }, // Cloaking Device { 0x544d, 230, 8, DIFF_A, CHEATFLAG_TIMED }, // Invincible - { 0x544e, 331, 16, DIFF_PA, CHEATFLAG_TIMED | CHEATFLAG_TRANSFERPAK }, // All Guns in Solo + { 0x544e, 331, 16, DIFF_PA, CHEATFLAG_TIMED | CHEATFLAG_TRANSFERPAK }, // All Guns in Solo { 0x544f, 427, 12, DIFF_SA, CHEATFLAG_TIMED }, // Unlimited Ammo { 0x5450, 191, 9, DIFF_SA, CHEATFLAG_TIMED }, // Unlimited Ammo, No Reloads - { 0x5451, 0, 1, DIFF_A, CHEATFLAG_COMPLETION }, // Slo-mo Single Player - { 0x5452, 0, 4, DIFF_A, CHEATFLAG_COMPLETION }, // DK Mode + { 0x5451, 0, 1, DIFF_A, CHEATFLAG_COMPLETION }, // Slo-mo Single Player + { 0x5452, 0, 4, DIFF_A, CHEATFLAG_COMPLETION }, // DK Mode { 0x5453, 170, 11, DIFF_A, CHEATFLAG_TIMED }, // Trent's Magnum { 0x5454, 447, 13, DIFF_PA, CHEATFLAG_TIMED }, // FarSight - { 0x5455, 0, 5, DIFF_A, CHEATFLAG_COMPLETION }, // Small Jo - { 0x5456, 0, 6, DIFF_A, CHEATFLAG_COMPLETION }, // Small Characters - { 0x5457, 0, 14, DIFF_A, CHEATFLAG_COMPLETION }, // Enemy Shields - { 0x5458, 0, 13, DIFF_A, CHEATFLAG_COMPLETION }, // Jo Shield + { 0x5455, 0, 5, DIFF_A, CHEATFLAG_COMPLETION }, // Small Jo + { 0x5456, 0, 6, DIFF_A, CHEATFLAG_COMPLETION }, // Small Characters + { 0x5457, 0, 14, DIFF_A, CHEATFLAG_COMPLETION }, // Enemy Shields + { 0x5458, 0, 13, DIFF_A, CHEATFLAG_COMPLETION }, // Jo Shield { 0x5459, 105, 14, DIFF_A, CHEATFLAG_TIMED }, // Super Shield - { 0x545a, 0, 0, DIFF_A, CHEATFLAG_COMPLETION }, // Classic Sight - { 0x545b, 0, 9, DIFF_A, CHEATFLAG_COMPLETION }, // Team Heads Only + { 0x545a, 0, 0, DIFF_A, CHEATFLAG_COMPLETION }, // Classic Sight + { 0x545b, 0, 9, DIFF_A, CHEATFLAG_COMPLETION }, // Team Heads Only { 0x545c, 479, 7, DIFF_PA, CHEATFLAG_TIMED }, // Play as Elvis - { 0x545d, 0, 12, DIFF_A, CHEATFLAG_COMPLETION }, // Enemy Rockets + { 0x545d, 0, 12, DIFF_A, CHEATFLAG_COMPLETION }, // Enemy Rockets { 0x545e, 235, 10, DIFF_PA, CHEATFLAG_TIMED }, // Unlimited Ammo - Laptop Sentry Gun { 0x545f, 90, 0, DIFF_SA, CHEATFLAG_TIMED }, // Marquis of Queensbury Rules - { 0x5460, 0, 11, DIFF_A, CHEATFLAG_COMPLETION }, // Perfect Darkness + { 0x5460, 0, 11, DIFF_A, CHEATFLAG_COMPLETION }, // Perfect Darkness { 0x5461, 390, 1, DIFF_PA, CHEATFLAG_TIMED }, // Pugilist { 0x5462, 300, 6, DIFF_SA, CHEATFLAG_TIMED }, // Hotshot { 0x5463, 150, 3, DIFF_SA, CHEATFLAG_TIMED }, // Hit and Run { 0x5464, 317, 15, DIFF_SA, CHEATFLAG_TIMED }, // Alien { 0x5465, 0, 16, DIFF_A, CHEATFLAG_COMPLETION | CHEATFLAG_TRANSFERPAK }, // R-Tracker/Weapon Cache Locations - { 0x5466, 0, 2, DIFF_A, CHEATFLAG_COMPLETION }, // Rocket Launcher - { 0x5467, 0, 3, DIFF_A, CHEATFLAG_COMPLETION }, // Sniper Rifle - { 0x5468, 0, 7, DIFF_A, CHEATFLAG_COMPLETION }, // X-Ray Scanner - { 0x5469, 0, 8, DIFF_A, CHEATFLAG_COMPLETION }, // SuperDragon - { 0x546a, 0, 10, DIFF_A, CHEATFLAG_COMPLETION }, // Laptop Gun - { 0x546b, 0, 15, DIFF_A, CHEATFLAG_COMPLETION }, // Phoenix + { 0x5466, 0, 2, DIFF_A, CHEATFLAG_COMPLETION }, // Rocket Launcher + { 0x5467, 0, 3, DIFF_A, CHEATFLAG_COMPLETION }, // Sniper Rifle + { 0x5468, 0, 7, DIFF_A, CHEATFLAG_COMPLETION }, // X-Ray Scanner + { 0x5469, 0, 8, DIFF_A, CHEATFLAG_COMPLETION }, // SuperDragon + { 0x546a, 0, 10, DIFF_A, CHEATFLAG_COMPLETION }, // Laptop Gun + { 0x546b, 0, 15, DIFF_A, CHEATFLAG_COMPLETION }, // Phoenix { 0x546c, 120, 4, DIFF_PA, CHEATFLAG_TIMED }, // Psychosis Gun { 0x546d, 36, 0, DIFF_A, CHEATFLAG_FIRINGRANGE }, // PP9i { 0x546e, 37, 0, DIFF_A, CHEATFLAG_FIRINGRANGE }, // CC13