Decompile cheatIsUnlocked

This commit is contained in:
Ryan Dwyer 2019-12-28 19:14:22 +10:00
parent d3485d7e1a
commit f602eb329a
15 changed files with 205 additions and 304 deletions

View File

@ -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)
{

View File

@ -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)

View File

@ -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

View File

@ -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)

View File

@ -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)

View File

@ -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

View File

@ -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

View File

@ -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)

View File

@ -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;

View File

@ -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

View File

@ -3,7 +3,7 @@
#include <ultra64.h>
#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);

View File

@ -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);

View File

@ -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;

View File

@ -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

View File

@ -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