ntsc-beta: Get ROM fully matching

This commit is contained in:
Ryan Dwyer 2021-10-26 17:15:43 +10:00
parent e5e21c413e
commit 5d40470f89
72 changed files with 16927 additions and 687 deletions

View File

@ -84,7 +84,7 @@
#else
#define ROMALLOCATION_LIB 0x02f800
#define ROMALLOCATION_DATA 0x012000
#define ROMALLOCATION_GAME 0x112080
#define ROMALLOCATION_GAME 0x105000
#endif
OUTPUT_ARCH (mips)
@ -95,10 +95,14 @@ SECTIONS
_gamecode = 0x4450;
_jpndata1 = 0x17fc40;
_jpndata2 = 0x18b340;
#else
#elif VERSION >= VERSION_NTSC_1_0
_gamecode = 0x4445;
_jpndata1 = 0x194440;
_jpndata2 = 0x19fb40;
#else
_gamecode = 0x4445;
_jpndata1 = 0x148c40;
_jpndata2 = 0x154340;
#endif
#if VERSION >= VERSION_PAL_FINAL
@ -184,7 +188,7 @@ SECTIONS
BEGIN_SEG(preamble)
{
build/ROMID/preamble/preamble.o (.text);
. = ALIGN(0x30);
. = 0x50;
}
END_SEG(preamble)
@ -446,10 +450,7 @@ SECTIONS
FONT(handelgothicmd)
FONT(handelgothiclg)
FONT(ocramd)
#if VERSION >= VERSION_NTSC_1_0
FONT(ocralg)
#endif
/***************************************************************************
* sfxctl

View File

@ -2015,5 +2015,4 @@ char *filenames[] = {
/*0x7da*/ "Ap29_15_joM",
/*0x7db*/ "Ap16_03_joM",
/*0x7dc*/ "Acarrbye02M",
/*0x7dd*/ "Asaucerexp1M",
};

View File

@ -2021,7 +2021,3 @@ FILE(07d9, CheadphelpsZ, _file_CheadphelpsZ);
FILE(07da, Ap29_15_joM, _file_Ap29_15_joM);
FILE(07db, Ap16_03_joM, _file_Ap16_03_joM);
FILE(07dc, Acarrbye02M, _file_Acarrbye02M);
#if VERSION >= VERSION_NTSC_1_0
FILE(07dd, Asaucerexp1M, _file_Asaucerexp1M);
#endif

View File

@ -109,12 +109,12 @@ s32 g_StageIndex = 1;
u32 var8007fc04 = 0x00000000;
u8 *var8007fc08 = NULL;
s16 var8007fc0c = 0;
s16 var8007fc10 = 0;
#if VERSION < VERSION_NTSC_1_0
u32 var80082474nb = 0;
#endif
s16 var8007fc10 = 0;
s32 var8007fc14 = 0;
u32 var8007fc18 = 0x01000100;
u32 var8007fc1c = 0x00000000;

View File

@ -6,6 +6,7 @@
u32 var800a6470;
u32 var800a6474;
u32 var800a6478;
u32 var800a647c;
u32 var800a6480;
u32 var800a6484;
@ -53,6 +54,11 @@ u32 var800a6528;
u32 var800a652c;
u32 var800a6530;
u32 var800a6534;
#if VERSION < VERSION_NTSC_1_0
u8 var800aacb8nb[0x140];
#endif
u32 var800a6538;
u32 var800a653c;
u32 var800a6540;

View File

@ -1296,7 +1296,11 @@ s32 bbike0f0d3680(struct coord *arg0, struct coord *arg1, struct coord *arg2)
s32 result = bbikeCalculateNewPositionWithPush(arg0, 0);
if (!result) {
#if VERSION >= VERSION_NTSC_1_0
cd00024e4c(arg1, arg2, 659, "bondbike.c");
#else
cd00024e4c(arg1, arg2, 656, "bondbike.c");
#endif
}
return result;
@ -1320,7 +1324,11 @@ s32 bbike0f0d36d4(struct coord *arg0, struct coord *arg1, struct coord *arg2, st
}
if (someint == 0) {
#if VERSION >= VERSION_NTSC_1_0
cd00024e4c(arg3, arg4, 685, "bondbike.c");
#else
cd00024e4c(arg3, arg4, 682, "bondbike.c");
#endif
if (arg3->f[0] != arg1->f[0]
|| arg3->f[1] != arg1->f[1]
@ -1551,7 +1559,9 @@ void bbikeTick(void)
f32 sp1f4;
struct coord sp1e8;
Mtxf sp1a8;
u32 stack2;
#if VERSION >= VERSION_NTSC_1_0
s32 j;
#endif
Mtxf sp164;
Mtxf sp124;
Mtxf spe4;
@ -1667,8 +1677,8 @@ void bbikeTick(void)
prop = g_Vars.currentplayer->prop;
#if VERSION >= VERSION_NTSC_1_0
for (i = 0; prop->rooms[i] != -1; i++) {
if (prop->rooms[i] == g_Vars.currentplayer->floorroom) {
for (j = 0; prop->rooms[j] != -1; j++) {
if (prop->rooms[j] == g_Vars.currentplayer->floorroom) {
propDeregisterRooms(prop);
g_Vars.currentplayer->prop->rooms[0] = g_Vars.currentplayer->floorroom;
g_Vars.currentplayer->prop->rooms[1] = -1;

View File

@ -110,15 +110,17 @@ void bgrabInit(void)
if (obj->flags3 & OBJFLAG3_GEOTYPE3) {
withforce = cd000276c8(obj->geo3,
g_Vars.currentplayer->prop->pos.x,
g_Vars.currentplayer->prop->pos.z, 45, 0, 0);
g_Vars.currentplayer->prop->pos.z,
VERSION >= VERSION_NTSC_1_0 ? 45 : 40, 0, 0);
} else {
withforce = cd000274e0(obj->geo2,
g_Vars.currentplayer->prop->pos.x,
g_Vars.currentplayer->prop->pos.z, 45, 0, 0);
g_Vars.currentplayer->prop->pos.z,
VERSION >= VERSION_NTSC_1_0 ? 45 : 40, 0, 0);
}
if (withforce) {
g_Vars.currentplayer->grabbedforcez = 15;
g_Vars.currentplayer->grabbedforcez = VERSION >= VERSION_NTSC_1_0 ? 15 : 10;
}
}
@ -179,6 +181,7 @@ void bgrabExit(void)
}
}
#if VERSION >= VERSION_NTSC_1_0
GLOBAL_ASM(
glabel bgrab0f0ccbf0
.late_rodata
@ -482,6 +485,311 @@ glabel var7f1ad990
/* f0cd054: 03e00008 */ jr $ra
/* f0cd058: 00000000 */ nop
);
#else
GLOBAL_ASM(
glabel bgrab0f0ccbf0
.late_rodata
glabel var7f1ad990
.word 0x3dcccccd
.text
/* f0ccbf0: 3c03800a */ lui $v1,%hi(g_Vars)
/* f0ccbf4: 24639fc0 */ addiu $v1,$v1,%lo(g_Vars)
/* f0ccbf8: 8c6e0034 */ lw $t6,0x34($v1)
/* f0ccbfc: 27bdff20 */ addiu $sp,$sp,-224
/* f0ccc00: afbf001c */ sw $ra,0x1c($sp)
/* f0ccc04: afa400e0 */ sw $a0,0xe0($sp)
/* f0ccc08: afa500e4 */ sw $a1,0xe4($sp)
/* f0ccc0c: 19c0010f */ blez $t6,.L0f0cd04c
/* f0ccc10: afa600e8 */ sw $a2,0xe8($sp)
/* f0ccc14: 3c0f800a */ lui $t7,%hi(var8009de70)
/* f0ccc18: 8defde70 */ lw $t7,%lo(var8009de70)($t7)
/* f0ccc1c: 24010006 */ addiu $at,$zero,0x6
/* f0ccc20: 27ae0074 */ addiu $t6,$sp,0x74
/* f0ccc24: 91f80000 */ lbu $t8,0x0($t7)
/* f0ccc28: 3c0f8007 */ lui $t7,%hi(var80070e84)
/* f0ccc2c: 25ef0e84 */ addiu $t7,$t7,%lo(var80070e84)
/* f0ccc30: 1701004f */ bne $t8,$at,.L0f0ccd70
/* f0ccc34: 27a5005c */ addiu $a1,$sp,0x5c
/* f0ccc38: 8c620284 */ lw $v0,0x284($v1)
/* f0ccc3c: c4840000 */ lwc1 $f4,0x0($a0)
/* f0ccc40: 3c077f1b */ lui $a3,%hi(var7f1ad940)
/* f0ccc44: 8c4800bc */ lw $t0,0xbc($v0)
/* f0ccc48: 24e7d940 */ addiu $a3,$a3,%lo(var7f1ad940)
/* f0ccc4c: 27a500a4 */ addiu $a1,$sp,0xa4
/* f0ccc50: c5060008 */ lwc1 $f6,0x8($t0)
/* f0ccc54: 240600c9 */ addiu $a2,$zero,0xc8
/* f0ccc58: 46062200 */ add.s $f8,$f4,$f6
/* f0ccc5c: e7a80098 */ swc1 $f8,0x98($sp)
/* f0ccc60: 8c4900bc */ lw $t1,0xbc($v0)
/* f0ccc64: c52a000c */ lwc1 $f10,0xc($t1)
/* f0ccc68: e7aa009c */ swc1 $f10,0x9c($sp)
/* f0ccc6c: 8c4a00bc */ lw $t2,0xbc($v0)
/* f0ccc70: c4840008 */ lwc1 $f4,0x8($a0)
/* f0ccc74: 27a400b0 */ addiu $a0,$sp,0xb0
/* f0ccc78: c5460010 */ lwc1 $f6,0x10($t2)
/* f0ccc7c: 46062200 */ add.s $f8,$f4,$f6
/* f0ccc80: 0c009393 */ jal cd00024e4c
/* f0ccc84: e7a800a0 */ swc1 $f8,0xa0($sp)
/* f0ccc88: c7aa00ac */ lwc1 $f10,0xac($sp)
/* f0ccc8c: c7a400b8 */ lwc1 $f4,0xb8($sp)
/* f0ccc90: 44809000 */ mtc1 $zero,$f18
/* f0ccc94: c7a600b0 */ lwc1 $f6,0xb0($sp)
/* f0ccc98: 46045001 */ sub.s $f0,$f10,$f4
/* f0ccc9c: c7a800a4 */ lwc1 $f8,0xa4($sp)
/* f0ccca0: 27a400c8 */ addiu $a0,$sp,0xc8
/* f0ccca4: 27a500cc */ addiu $a1,$sp,0xcc
/* f0ccca8: 46009032 */ c.eq.s $f18,$f0
/* f0cccac: e7a000c8 */ swc1 $f0,0xc8($sp)
/* f0cccb0: 46083281 */ sub.s $f10,$f6,$f8
/* f0cccb4: e7b200cc */ swc1 $f18,0xcc($sp)
/* f0cccb8: 45000005 */ bc1f .L0f0cccd0
/* f0cccbc: e7aa00d0 */ swc1 $f10,0xd0($sp)
/* f0cccc0: 460a9032 */ c.eq.s $f18,$f10
/* f0cccc4: 3c013f80 */ lui $at,0x3f80
/* f0cccc8: 45030006 */ bc1tl .L0f0ccce4
/* f0ccccc: 44812000 */ mtc1 $at,$f4
.L0f0cccd0:
/* f0cccd0: 0c0011e4 */ jal guNormalize
/* f0cccd4: 27a600d0 */ addiu $a2,$sp,0xd0
/* f0cccd8: 10000005 */ b .L0f0cccf0
/* f0cccdc: 27ab00d4 */ addiu $t3,$sp,0xd4
/* f0ccce0: 44812000 */ mtc1 $at,$f4
.L0f0ccce4:
/* f0ccce4: 00000000 */ nop
/* f0ccce8: e7a400d0 */ swc1 $f4,0xd0($sp)
/* f0cccec: 27ab00d4 */ addiu $t3,$sp,0xd4
.L0f0cccf0:
/* f0cccf0: afab0010 */ sw $t3,0x10($sp)
/* f0cccf4: 27a400b0 */ addiu $a0,$sp,0xb0
/* f0cccf8: 27a500a4 */ addiu $a1,$sp,0xa4
/* f0cccfc: 27a60098 */ addiu $a2,$sp,0x98
/* f0ccd00: 0fc0b8f7 */ jal func0f02e3dc
/* f0ccd04: 27a700c8 */ addiu $a3,$sp,0xc8
/* f0ccd08: 3c03800a */ lui $v1,%hi(g_Vars)
/* f0ccd0c: 24639fc0 */ addiu $v1,$v1,%lo(g_Vars)
/* f0ccd10: 8c620284 */ lw $v0,0x284($v1)
/* f0ccd14: c7a60098 */ lwc1 $f6,0x98($sp)
/* f0ccd18: c460004c */ lwc1 $f0,0x4c($v1)
/* f0ccd1c: 8c4c00bc */ lw $t4,0xbc($v0)
/* f0ccd20: 44809000 */ mtc1 $zero,$f18
/* f0ccd24: 8fa400e8 */ lw $a0,0xe8($sp)
/* f0ccd28: c5880008 */ lwc1 $f8,0x8($t4)
/* f0ccd2c: e7b200c0 */ swc1 $f18,0xc0($sp)
/* f0ccd30: 27a500d4 */ addiu $a1,$sp,0xd4
/* f0ccd34: 46083281 */ sub.s $f10,$f6,$f8
/* f0ccd38: c7a600a0 */ lwc1 $f6,0xa0($sp)
/* f0ccd3c: 27a600c8 */ addiu $a2,$sp,0xc8
/* f0ccd40: 27a700bc */ addiu $a3,$sp,0xbc
/* f0ccd44: 46005103 */ div.s $f4,$f10,$f0
/* f0ccd48: e7a400bc */ swc1 $f4,0xbc($sp)
/* f0ccd4c: 8c4d00bc */ lw $t5,0xbc($v0)
/* f0ccd50: c5a80010 */ lwc1 $f8,0x10($t5)
/* f0ccd54: afa00010 */ sw $zero,0x10($sp)
/* f0ccd58: 46083281 */ sub.s $f10,$f6,$f8
/* f0ccd5c: 46005103 */ div.s $f4,$f10,$f0
/* f0ccd60: 0fc20ba1 */ jal func0f082e84
/* f0ccd64: e7a400c4 */ swc1 $f4,0xc4($sp)
/* f0ccd68: 100000b9 */ b .L0f0cd050
/* f0ccd6c: 8fbf001c */ lw $ra,0x1c($sp)
.L0f0ccd70:
/* f0ccd70: 8de10000 */ lw $at,0x0($t7)
/* f0ccd74: 8de90004 */ lw $t1,0x4($t7)
/* f0ccd78: 3c077f1b */ lui $a3,%hi(var7f1ad94c)
/* f0ccd7c: adc10000 */ sw $at,0x0($t6)
/* f0ccd80: 8de10008 */ lw $at,0x8($t7)
/* f0ccd84: 24e7d94c */ addiu $a3,$a3,%lo(var7f1ad94c)
/* f0ccd88: 27a40068 */ addiu $a0,$sp,0x68
/* f0ccd8c: 240600e4 */ addiu $a2,$zero,0xe3
/* f0ccd90: adc90004 */ sw $t1,0x4($t6)
/* f0ccd94: 0c009393 */ jal cd00024e4c
/* f0ccd98: adc10008 */ sw $at,0x8($t6)
/* f0ccd9c: 27a40050 */ addiu $a0,$sp,0x50
/* f0ccda0: 0c0094d9 */ jal cd00025364
/* f0ccda4: 27a50044 */ addiu $a1,$sp,0x44
/* f0ccda8: 1040000e */ beqz $v0,.L0f0ccde4
/* f0ccdac: 27a40068 */ addiu $a0,$sp,0x68
/* f0ccdb0: c7a60044 */ lwc1 $f6,0x44($sp)
/* f0ccdb4: c7a80050 */ lwc1 $f8,0x50($sp)
/* f0ccdb8: c7a40048 */ lwc1 $f4,0x48($sp)
/* f0ccdbc: 46083281 */ sub.s $f10,$f6,$f8
/* f0ccdc0: c7a60054 */ lwc1 $f6,0x54($sp)
/* f0ccdc4: 46062201 */ sub.s $f8,$f4,$f6
/* f0ccdc8: e7aa0044 */ swc1 $f10,0x44($sp)
/* f0ccdcc: c7aa004c */ lwc1 $f10,0x4c($sp)
/* f0ccdd0: c7a40058 */ lwc1 $f4,0x58($sp)
/* f0ccdd4: e7a80048 */ swc1 $f8,0x48($sp)
/* f0ccdd8: 46045181 */ sub.s $f6,$f10,$f4
/* f0ccddc: 10000019 */ b .L0f0cce44
/* f0ccde0: e7a6004c */ swc1 $f6,0x4c($sp)
.L0f0ccde4:
/* f0ccde4: 3c02800a */ lui $v0,%hi(var8009de70)
/* f0ccde8: 8c42de70 */ lw $v0,%lo(var8009de70)($v0)
/* f0ccdec: 8fb900e8 */ lw $t9,0xe8($sp)
/* f0ccdf0: c4480008 */ lwc1 $f8,0x8($v0)
/* f0ccdf4: e7a80050 */ swc1 $f8,0x50($sp)
/* f0ccdf8: c44a000c */ lwc1 $f10,0xc($v0)
/* f0ccdfc: e7aa0054 */ swc1 $f10,0x54($sp)
/* f0cce00: c4440010 */ lwc1 $f4,0x10($v0)
/* f0cce04: e7a40058 */ swc1 $f4,0x58($sp)
/* f0cce08: 8f2a0014 */ lw $t2,0x14($t9)
/* f0cce0c: c4480008 */ lwc1 $f8,0x8($v0)
/* f0cce10: c5460008 */ lwc1 $f6,0x8($t2)
/* f0cce14: 46083281 */ sub.s $f10,$f6,$f8
/* f0cce18: e7aa0044 */ swc1 $f10,0x44($sp)
/* f0cce1c: 8f2b0014 */ lw $t3,0x14($t9)
/* f0cce20: c446000c */ lwc1 $f6,0xc($v0)
/* f0cce24: c564000c */ lwc1 $f4,0xc($t3)
/* f0cce28: 46062201 */ sub.s $f8,$f4,$f6
/* f0cce2c: e7a80048 */ swc1 $f8,0x48($sp)
/* f0cce30: 8f2c0014 */ lw $t4,0x14($t9)
/* f0cce34: c4440010 */ lwc1 $f4,0x10($v0)
/* f0cce38: c58a0010 */ lwc1 $f10,0x10($t4)
/* f0cce3c: 46045181 */ sub.s $f6,$f10,$f4
/* f0cce40: e7a6004c */ swc1 $f6,0x4c($sp)
.L0f0cce44:
/* f0cce44: 27ad008c */ addiu $t5,$sp,0x8c
/* f0cce48: afad0010 */ sw $t5,0x10($sp)
/* f0cce4c: 27a5005c */ addiu $a1,$sp,0x5c
/* f0cce50: 27a60050 */ addiu $a2,$sp,0x50
/* f0cce54: 0fc0b8f7 */ jal func0f02e3dc
/* f0cce58: 27a70044 */ addiu $a3,$sp,0x44
/* f0cce5c: 8fa200e0 */ lw $v0,0xe0($sp)
/* f0cce60: 44809000 */ mtc1 $zero,$f18
/* f0cce64: 27a40080 */ addiu $a0,$sp,0x80
/* f0cce68: c4480000 */ lwc1 $f8,0x0($v0)
/* f0cce6c: e7b20084 */ swc1 $f18,0x84($sp)
/* f0cce70: 27a50084 */ addiu $a1,$sp,0x84
/* f0cce74: e7a80080 */ swc1 $f8,0x80($sp)
/* f0cce78: c7a40080 */ lwc1 $f4,0x80($sp)
/* f0cce7c: c44a0008 */ lwc1 $f10,0x8($v0)
/* f0cce80: 46049032 */ c.eq.s $f18,$f4
/* f0cce84: e7aa0088 */ swc1 $f10,0x88($sp)
/* f0cce88: c7a60088 */ lwc1 $f6,0x88($sp)
/* f0cce8c: 45000005 */ bc1f .L0f0ccea4
/* f0cce90: 00000000 */ nop
/* f0cce94: 46069032 */ c.eq.s $f18,$f6
/* f0cce98: 3c013f80 */ lui $at,0x3f80
/* f0cce9c: 45030007 */ bc1tl .L0f0ccebc
/* f0ccea0: 44814000 */ mtc1 $at,$f8
.L0f0ccea4:
/* f0ccea4: 0c0011e4 */ jal guNormalize
/* f0ccea8: 27a60088 */ addiu $a2,$sp,0x88
/* f0cceac: 44809000 */ mtc1 $zero,$f18
/* f0cceb0: 10000004 */ b .L0f0ccec4
/* f0cceb4: 8fa200e0 */ lw $v0,0xe0($sp)
/* f0cceb8: 44814000 */ mtc1 $at,$f8
.L0f0ccebc:
/* f0ccebc: 00000000 */ nop
/* f0ccec0: e7a80088 */ swc1 $f8,0x88($sp)
.L0f0ccec4:
/* f0ccec4: c4400000 */ lwc1 $f0,0x0($v0)
/* f0ccec8: 3c01800a */ lui $at,%hi(g_Vars+0x4c)
/* f0ccecc: 27a5008c */ addiu $a1,$sp,0x8c
/* f0cced0: 46009032 */ c.eq.s $f18,$f0
/* f0cced4: 27a60080 */ addiu $a2,$sp,0x80
/* f0cced8: 27a70074 */ addiu $a3,$sp,0x74
/* f0ccedc: 45030007 */ bc1tl .L0f0ccefc
/* f0ccee0: c4400008 */ lwc1 $f0,0x8($v0)
/* f0ccee4: c424a00c */ lwc1 $f4,%lo(g_Vars+0x4c)($at)
/* f0ccee8: c7aa0074 */ lwc1 $f10,0x74($sp)
/* f0cceec: 46040183 */ div.s $f6,$f0,$f4
/* f0ccef0: 46065200 */ add.s $f8,$f10,$f6
/* f0ccef4: e7a80074 */ swc1 $f8,0x74($sp)
/* f0ccef8: c4400008 */ lwc1 $f0,0x8($v0)
.L0f0ccefc:
/* f0ccefc: 3c01800a */ lui $at,%hi(g_Vars+0x4c)
/* f0ccf00: 46009032 */ c.eq.s $f18,$f0
/* f0ccf04: 00000000 */ nop
/* f0ccf08: 45030007 */ bc1tl .L0f0ccf28
/* f0ccf0c: 8fa400e8 */ lw $a0,0xe8($sp)
/* f0ccf10: c42aa00c */ lwc1 $f10,%lo(g_Vars+0x4c)($at)
/* f0ccf14: c7a4007c */ lwc1 $f4,0x7c($sp)
/* f0ccf18: 460a0183 */ div.s $f6,$f0,$f10
/* f0ccf1c: 46062200 */ add.s $f8,$f4,$f6
/* f0ccf20: e7a8007c */ swc1 $f8,0x7c($sp)
/* f0ccf24: 8fa400e8 */ lw $a0,0xe8($sp)
.L0f0ccf28:
/* f0ccf28: 0fc20ba1 */ jal func0f082e84
/* f0ccf2c: afa00010 */ sw $zero,0x10($sp)
/* f0ccf30: 44809000 */ mtc1 $zero,$f18
/* f0ccf34: c7aa00e4 */ lwc1 $f10,0xe4($sp)
/* f0ccf38: 3c08800a */ lui $t0,%hi(g_Vars+0x284)
/* f0ccf3c: 46125032 */ c.eq.s $f10,$f18
/* f0ccf40: 00000000 */ nop
/* f0ccf44: 45030042 */ bc1tl .L0f0cd050
/* f0ccf48: 8fbf001c */ lw $ra,0x1c($sp)
/* f0ccf4c: 8d08a244 */ lw $t0,%lo(g_Vars+0x284)($t0)
/* f0ccf50: c7a4008c */ lwc1 $f4,0x8c($sp)
/* f0ccf54: c7a80094 */ lwc1 $f8,0x94($sp)
/* f0ccf58: 8d0200bc */ lw $v0,0xbc($t0)
/* f0ccf5c: 3c0e8007 */ lui $t6,%hi(var80070e90)
/* f0ccf60: 25ce0e90 */ addiu $t6,$t6,%lo(var80070e90)
/* f0ccf64: c4460008 */ lwc1 $f6,0x8($v0)
/* f0ccf68: c44a0010 */ lwc1 $f10,0x10($v0)
/* f0ccf6c: 8dc10000 */ lw $at,0x0($t6)
/* f0ccf70: 46062081 */ sub.s $f2,$f4,$f6
/* f0ccf74: 27b8002c */ addiu $t8,$sp,0x2c
/* f0ccf78: af010000 */ sw $at,0x0($t8)
/* f0ccf7c: 460a4381 */ sub.s $f14,$f8,$f10
/* f0ccf80: 46021102 */ mul.s $f4,$f2,$f2
/* f0ccf84: 8dc10008 */ lw $at,0x8($t6)
/* f0ccf88: 8dc90004 */ lw $t1,0x4($t6)
/* f0ccf8c: 460e7182 */ mul.s $f6,$f14,$f14
/* f0ccf90: af010008 */ sw $at,0x8($t8)
/* f0ccf94: af090004 */ sw $t1,0x4($t8)
/* f0ccf98: e7ae003c */ swc1 $f14,0x3c($sp)
/* f0ccf9c: e7a20040 */ swc1 $f2,0x40($sp)
/* f0ccfa0: 0c012974 */ jal sqrtf
/* f0ccfa4: 46062300 */ add.s $f12,$f4,$f6
/* f0ccfa8: 3c013f80 */ lui $at,0x3f80
/* f0ccfac: 44814000 */ mtc1 $at,$f8
/* f0ccfb0: 3c01800a */ lui $at,%hi(g_Vars+0x4c)
/* f0ccfb4: c424a00c */ lwc1 $f4,%lo(g_Vars+0x4c)($at)
/* f0ccfb8: 46004303 */ div.s $f12,$f8,$f0
/* f0ccfbc: c7aa00e4 */ lwc1 $f10,0xe4($sp)
/* f0ccfc0: c7a20040 */ lwc1 $f2,0x40($sp)
/* f0ccfc4: c7ae003c */ lwc1 $f14,0x3c($sp)
/* f0ccfc8: 3c014220 */ lui $at,0x4220
/* f0ccfcc: 44809000 */ mtc1 $zero,$f18
/* f0ccfd0: 240a0001 */ addiu $t2,$zero,0x1
/* f0ccfd4: afaa0010 */ sw $t2,0x10($sp)
/* f0ccfd8: 8fa400e8 */ lw $a0,0xe8($sp)
/* f0ccfdc: 27a5002c */ addiu $a1,$sp,0x2c
/* f0ccfe0: 24070001 */ addiu $a3,$zero,0x1
/* f0ccfe4: 46045183 */ div.s $f6,$f10,$f4
/* f0ccfe8: 44812000 */ mtc1 $at,$f4
/* f0ccfec: 460c1082 */ mul.s $f2,$f2,$f12
/* f0ccff0: 00000000 */ nop
/* f0ccff4: 460c7382 */ mul.s $f14,$f14,$f12
/* f0ccff8: 46007207 */ neg.s $f8,$f14
/* f0ccffc: e7a600e4 */ swc1 $f6,0xe4($sp)
/* f0cd000: 46064282 */ mul.s $f10,$f8,$f6
/* f0cd004: 00000000 */ nop
/* f0cd008: 46045202 */ mul.s $f8,$f10,$f4
/* f0cd00c: c7aa002c */ lwc1 $f10,0x2c($sp)
/* f0cd010: 46085100 */ add.s $f4,$f10,$f8
/* f0cd014: 46061282 */ mul.s $f10,$f2,$f6
/* f0cd018: 44814000 */ mtc1 $at,$f8
/* f0cd01c: 3c017f1b */ lui $at,%hi(var7f1ad990)
/* f0cd020: e7a4002c */ swc1 $f4,0x2c($sp)
/* f0cd024: 46085102 */ mul.s $f4,$f10,$f8
/* f0cd028: c7aa0034 */ lwc1 $f10,0x34($sp)
/* f0cd02c: 46045200 */ add.s $f8,$f10,$f4
/* f0cd030: c42ad990 */ lwc1 $f10,%lo(var7f1ad990)($at)
/* f0cd034: 460a3102 */ mul.s $f4,$f6,$f10
/* f0cd038: e7a80034 */ swc1 $f8,0x34($sp)
/* f0cd03c: 46049400 */ add.s $f16,$f18,$f4
/* f0cd040: 44068000 */ mfc1 $a2,$f16
/* f0cd044: 0fc20a87 */ jal func0f082a1c
/* f0cd048: 00000000 */ nop
.L0f0cd04c:
/* f0cd04c: 8fbf001c */ lw $ra,0x1c($sp)
.L0f0cd050:
/* f0cd050: 27bd00e0 */ addiu $sp,$sp,0xe0
/* f0cd054: 03e00008 */ jr $ra
/* f0cd058: 00000000 */ nop
);
#endif
bool bgrabTryMoveUpwards(f32 y)
{
@ -2285,6 +2593,7 @@ bool bgrab0f0cdb04(f32 angle, bool arg2)
return result;
}
#if VERSION >= VERSION_NTSC_1_0
GLOBAL_ASM(
glabel bgrab0f0cdb68
.late_rodata
@ -2532,6 +2841,255 @@ glabel var7f1ad9c8
/* f0cdee8: 03e00008 */ jr $ra
/* f0cdeec: 27bd00b0 */ addiu $sp,$sp,0xb0
);
#else
GLOBAL_ASM(
glabel bgrab0f0cdb68
.late_rodata
glabel var7f1ad9c8
.word 0x3f8147ae
.text
/* f0cdb68: 27bdff50 */ addiu $sp,$sp,-176
/* f0cdb6c: 3c01bf80 */ lui $at,0xbf80
/* f0cdb70: 44817000 */ mtc1 $at,$f14
/* f0cdb74: afbf002c */ sw $ra,0x2c($sp)
/* f0cdb78: 3c077f1b */ lui $a3,%hi(var7f1ad958)
/* f0cdb7c: f7b80020 */ sdc1 $f24,0x20($sp)
/* f0cdb80: f7b60018 */ sdc1 $f22,0x18($sp)
/* f0cdb84: f7b40010 */ sdc1 $f20,0x10($sp)
/* f0cdb88: e7ac00b0 */ swc1 $f12,0xb0($sp)
/* f0cdb8c: 24e7d958 */ addiu $a3,$a3,%lo(var7f1ad958)
/* f0cdb90: 27a400a4 */ addiu $a0,$sp,0xa4
/* f0cdb94: 27a50098 */ addiu $a1,$sp,0x98
/* f0cdb98: 240602a6 */ addiu $a2,$zero,0x2a2
/* f0cdb9c: 0c009393 */ jal cd00024e4c
/* f0cdba0: e7ae0060 */ swc1 $f14,0x60($sp)
/* f0cdba4: c7ac00a4 */ lwc1 $f12,0xa4($sp)
/* f0cdba8: c7a40098 */ lwc1 $f4,0x98($sp)
/* f0cdbac: 4480c000 */ mtc1 $zero,$f24
/* f0cdbb0: c7b200ac */ lwc1 $f18,0xac($sp)
/* f0cdbb4: 460c2401 */ sub.s $f16,$f4,$f12
/* f0cdbb8: c7a600a0 */ lwc1 $f6,0xa0($sp)
/* f0cdbbc: c7ae0060 */ lwc1 $f14,0x60($sp)
/* f0cdbc0: 46188032 */ c.eq.s $f16,$f24
/* f0cdbc4: 46123001 */ sub.s $f0,$f6,$f18
/* f0cdbc8: 45000008 */ bc1f .L0f0cdbec
/* f0cdbcc: 46000086 */ mov.s $f2,$f0
/* f0cdbd0: 46180032 */ c.eq.s $f0,$f24
/* f0cdbd4: 3c013f80 */ lui $at,0x3f80
/* f0cdbd8: 45000004 */ bc1f .L0f0cdbec
/* f0cdbdc: 00000000 */ nop
/* f0cdbe0: 44811000 */ mtc1 $at,$f2
/* f0cdbe4: 10000012 */ b .L0f0cdc30
/* f0cdbe8: 00000000 */ nop
.L0f0cdbec:
/* f0cdbec: 46108202 */ mul.s $f8,$f16,$f16
/* f0cdbf0: e7a20078 */ swc1 $f2,0x78($sp)
/* f0cdbf4: e7ae0060 */ swc1 $f14,0x60($sp)
/* f0cdbf8: 46021282 */ mul.s $f10,$f2,$f2
/* f0cdbfc: e7b0007c */ swc1 $f16,0x7c($sp)
/* f0cdc00: 0c012974 */ jal sqrtf
/* f0cdc04: 460a4300 */ add.s $f12,$f8,$f10
/* f0cdc08: 3c013f80 */ lui $at,0x3f80
/* f0cdc0c: 44812000 */ mtc1 $at,$f4
/* f0cdc10: c7b0007c */ lwc1 $f16,0x7c($sp)
/* f0cdc14: c7a20078 */ lwc1 $f2,0x78($sp)
/* f0cdc18: 46002303 */ div.s $f12,$f4,$f0
/* f0cdc1c: c7ae0060 */ lwc1 $f14,0x60($sp)
/* f0cdc20: 460c8402 */ mul.s $f16,$f16,$f12
/* f0cdc24: 00000000 */ nop
/* f0cdc28: 460c1082 */ mul.s $f2,$f2,$f12
/* f0cdc2c: 00000000 */ nop
.L0f0cdc30:
/* f0cdc30: 3c0e800a */ lui $t6,%hi(g_Vars+0x284)
/* f0cdc34: 8dcea244 */ lw $t6,%lo(g_Vars+0x284)($t6)
/* f0cdc38: c7a800ac */ lwc1 $f8,0xac($sp)
/* f0cdc3c: 46008007 */ neg.s $f0,$f16
/* f0cdc40: 8dc200bc */ lw $v0,0xbc($t6)
/* f0cdc44: 46001506 */ mov.s $f20,$f2
/* f0cdc48: 46000586 */ mov.s $f22,$f0
/* f0cdc4c: c4460010 */ lwc1 $f6,0x10($v0)
/* f0cdc50: 3c0f8006 */ lui $t7,%hi(var8005f034)
/* f0cdc54: 27a4008c */ addiu $a0,$sp,0x8c
/* f0cdc58: 46083281 */ sub.s $f10,$f6,$f8
/* f0cdc5c: c4460008 */ lwc1 $f6,0x8($v0)
/* f0cdc60: 27a50080 */ addiu $a1,$sp,0x80
/* f0cdc64: 46005102 */ mul.s $f4,$f10,$f0
/* f0cdc68: c7aa00a4 */ lwc1 $f10,0xa4($sp)
/* f0cdc6c: 460a3181 */ sub.s $f6,$f6,$f10
/* f0cdc70: 46061182 */ mul.s $f6,$f2,$f6
/* f0cdc74: 46062100 */ add.s $f4,$f4,$f6
/* f0cdc78: 4618203c */ c.lt.s $f4,$f24
/* f0cdc7c: 00000000 */ nop
/* f0cdc80: 45000003 */ bc1f .L0f0cdc90
/* f0cdc84: 00000000 */ nop
/* f0cdc88: 46001507 */ neg.s $f20,$f2
/* f0cdc8c: 46000587 */ neg.s $f22,$f0
.L0f0cdc90:
/* f0cdc90: 8deff034 */ lw $t7,%lo(var8005f034)($t7)
/* f0cdc94: c7ac00a4 */ lwc1 $f12,0xa4($sp)
/* f0cdc98: c7b200ac */ lwc1 $f18,0xac($sp)
/* f0cdc9c: 11e00020 */ beqz $t7,.L0f0cdd20
/* f0cdca0: 00000000 */ nop
/* f0cdca4: 3c04800a */ lui $a0,%hi(var8009a918+0x1)
/* f0cdca8: 9084a919 */ lbu $a0,%lo(var8009a918+0x1)($a0)
/* f0cdcac: 3c18800a */ lui $t8,%hi(var8009a918)
/* f0cdcb0: 2702a918 */ addiu $v0,$t8,%lo(var8009a918)
/* f0cdcb4: 18800061 */ blez $a0,.L0f0cde3c
/* f0cdcb8: 0004c8c0 */ sll $t9,$a0,0x3
/* f0cdcbc: 03221821 */ addu $v1,$t9,$v0
/* f0cdcc0: c4460010 */ lwc1 $f6,0x10($v0)
.L0f0cdcc4:
/* f0cdcc4: c448000c */ lwc1 $f8,0xc($v0)
/* f0cdcc8: 24420008 */ addiu $v0,$v0,0x8
/* f0cdccc: 46123101 */ sub.s $f4,$f6,$f18
/* f0cdcd0: 0043082b */ sltu $at,$v0,$v1
/* f0cdcd4: 460c4181 */ sub.s $f6,$f8,$f12
/* f0cdcd8: 46162282 */ mul.s $f10,$f4,$f22
/* f0cdcdc: 00000000 */ nop
/* f0cdce0: 46143102 */ mul.s $f4,$f6,$f20
/* f0cdce4: 46045000 */ add.s $f0,$f10,$f4
/* f0cdce8: 4618003c */ c.lt.s $f0,$f24
/* f0cdcec: 00000000 */ nop
/* f0cdcf0: 45000007 */ bc1f .L0f0cdd10
/* f0cdcf4: 00000000 */ nop
/* f0cdcf8: 46000007 */ neg.s $f0,$f0
/* f0cdcfc: 4600703c */ c.lt.s $f14,$f0
/* f0cdd00: 00000000 */ nop
/* f0cdd04: 45000002 */ bc1f .L0f0cdd10
/* f0cdd08: 00000000 */ nop
/* f0cdd0c: 46000386 */ mov.s $f14,$f0
.L0f0cdd10:
/* f0cdd10: 5420ffec */ bnezl $at,.L0f0cdcc4
/* f0cdd14: c4460010 */ lwc1 $f6,0x10($v0)
/* f0cdd18: 10000049 */ b .L0f0cde40
/* f0cdd1c: c7ac00b0 */ lwc1 $f12,0xb0($sp)
.L0f0cdd20:
/* f0cdd20: 0c0094d9 */ jal cd00025364
/* f0cdd24: e7ae0060 */ swc1 $f14,0x60($sp)
/* f0cdd28: 1040001c */ beqz $v0,.L0f0cdd9c
/* f0cdd2c: c7ae0060 */ lwc1 $f14,0x60($sp)
/* f0cdd30: c7b200ac */ lwc1 $f18,0xac($sp)
/* f0cdd34: c7a80094 */ lwc1 $f8,0x94($sp)
/* f0cdd38: c7ac00a4 */ lwc1 $f12,0xa4($sp)
/* f0cdd3c: c7a4008c */ lwc1 $f4,0x8c($sp)
/* f0cdd40: 46124181 */ sub.s $f6,$f8,$f18
/* f0cdd44: 460c2201 */ sub.s $f8,$f4,$f12
/* f0cdd48: 46163282 */ mul.s $f10,$f6,$f22
/* f0cdd4c: c7a40088 */ lwc1 $f4,0x88($sp)
/* f0cdd50: 46144182 */ mul.s $f6,$f8,$f20
/* f0cdd54: 46122201 */ sub.s $f8,$f4,$f18
/* f0cdd58: 46065000 */ add.s $f0,$f10,$f6
/* f0cdd5c: c7a60080 */ lwc1 $f6,0x80($sp)
/* f0cdd60: 46164282 */ mul.s $f10,$f8,$f22
/* f0cdd64: 460c3101 */ sub.s $f4,$f6,$f12
/* f0cdd68: 46142202 */ mul.s $f8,$f4,$f20
/* f0cdd6c: 46085400 */ add.s $f16,$f10,$f8
/* f0cdd70: 4600803c */ c.lt.s $f16,$f0
/* f0cdd74: 00000000 */ nop
/* f0cdd78: 45020003 */ bc1fl .L0f0cdd88
/* f0cdd7c: 4618003c */ c.lt.s $f0,$f24
/* f0cdd80: 46008006 */ mov.s $f0,$f16
/* f0cdd84: 4618003c */ c.lt.s $f0,$f24
.L0f0cdd88:
/* f0cdd88: 00000000 */ nop
/* f0cdd8c: 4502002c */ bc1fl .L0f0cde40
/* f0cdd90: c7ac00b0 */ lwc1 $f12,0xb0($sp)
/* f0cdd94: 10000029 */ b .L0f0cde3c
/* f0cdd98: 46000387 */ neg.s $f14,$f0
.L0f0cdd9c:
/* f0cdd9c: 3c088007 */ lui $t0,%hi(var80070e80)
/* f0cdda0: 8d080e80 */ lw $t0,%lo(var80070e80)($t0)
/* f0cdda4: 3c09800a */ lui $t1,%hi(g_Vars+0x284)
/* f0cdda8: 51000025 */ beqzl $t0,.L0f0cde40
/* f0cddac: c7ac00b0 */ lwc1 $f12,0xb0($sp)
/* f0cddb0: 8d29a244 */ lw $t1,%lo(g_Vars+0x284)($t1)
/* f0cddb4: 24010001 */ addiu $at,$zero,0x1
/* f0cddb8: 8d241b5c */ lw $a0,0x1b5c($t1)
/* f0cddbc: 908a0000 */ lbu $t2,0x0($a0)
/* f0cddc0: 5541001f */ bnel $t2,$at,.L0f0cde40
/* f0cddc4: c7ac00b0 */ lwc1 $f12,0xb0($sp)
/* f0cddc8: 8c8b0004 */ lw $t3,0x4($a0)
/* f0cddcc: 27a5004c */ addiu $a1,$sp,0x4c
/* f0cddd0: 27a60048 */ addiu $a2,$sp,0x48
/* f0cddd4: 8d6c0010 */ lw $t4,0x10($t3)
/* f0cddd8: 27a70044 */ addiu $a3,$sp,0x44
/* f0cdddc: 000c6980 */ sll $t5,$t4,0x6
/* f0cdde0: 05a30017 */ bgezl $t5,.L0f0cde40
/* f0cdde4: c7ac00b0 */ lwc1 $f12,0xb0($sp)
/* f0cdde8: 0fc21d5b */ jal propObjGetBbox
/* f0cddec: e7ae0060 */ swc1 $f14,0x60($sp)
/* f0cddf0: 3c02800a */ lui $v0,%hi(var8009de78)
/* f0cddf4: 2442de78 */ addiu $v0,$v0,%lo(var8009de78)
/* f0cddf8: c7b200ac */ lwc1 $f18,0xac($sp)
/* f0cddfc: c4460008 */ lwc1 $f6,0x8($v0)
/* f0cde00: c7ac00a4 */ lwc1 $f12,0xa4($sp)
/* f0cde04: c4480000 */ lwc1 $f8,0x0($v0)
/* f0cde08: 46123101 */ sub.s $f4,$f6,$f18
/* f0cde0c: c7ae0060 */ lwc1 $f14,0x60($sp)
/* f0cde10: 460c4181 */ sub.s $f6,$f8,$f12
/* f0cde14: 46162282 */ mul.s $f10,$f4,$f22
/* f0cde18: c7a8004c */ lwc1 $f8,0x4c($sp)
/* f0cde1c: 46143102 */ mul.s $f4,$f6,$f20
/* f0cde20: 46045000 */ add.s $f0,$f10,$f4
/* f0cde24: 46080001 */ sub.s $f0,$f0,$f8
/* f0cde28: 4618003c */ c.lt.s $f0,$f24
/* f0cde2c: 00000000 */ nop
/* f0cde30: 45020003 */ bc1fl .L0f0cde40
/* f0cde34: c7ac00b0 */ lwc1 $f12,0xb0($sp)
/* f0cde38: 46000387 */ neg.s $f14,$f0
.L0f0cde3c:
/* f0cde3c: c7ac00b0 */ lwc1 $f12,0xb0($sp)
.L0f0cde40:
/* f0cde40: 0c0068f7 */ jal sinf
/* f0cde44: e7ae0060 */ swc1 $f14,0x60($sp)
/* f0cde48: 3c0143c8 */ lui $at,0x43c8
/* f0cde4c: 44813000 */ mtc1 $at,$f6
/* f0cde50: c7ae0060 */ lwc1 $f14,0x60($sp)
/* f0cde54: 00001025 */ or $v0,$zero,$zero
/* f0cde58: 46060302 */ mul.s $f12,$f0,$f6
/* f0cde5c: 4618603c */ c.lt.s $f12,$f24
/* f0cde60: 46006086 */ mov.s $f2,$f12
/* f0cde64: 45020003 */ bc1fl .L0f0cde74
/* f0cde68: 460e103c */ c.lt.s $f2,$f14
/* f0cde6c: 46006087 */ neg.s $f2,$f12
/* f0cde70: 460e103c */ c.lt.s $f2,$f14
.L0f0cde74:
/* f0cde74: 00000000 */ nop
/* f0cde78: 45020003 */ bc1fl .L0f0cde88
/* f0cde7c: 460ec03e */ c.le.s $f24,$f14
/* f0cde80: 46001386 */ mov.s $f14,$f2
/* f0cde84: 460ec03e */ c.le.s $f24,$f14
.L0f0cde88:
/* f0cde88: 00000000 */ nop
/* f0cde8c: 45000012 */ bc1f .L0f0cded8
/* f0cde90: 00000000 */ nop
/* f0cde94: 46147282 */ mul.s $f10,$f14,$f20
/* f0cde98: 3c017f1b */ lui $at,%hi(var7f1ad9c8)
/* f0cde9c: c420d9c8 */ lwc1 $f0,%lo(var7f1ad9c8)($at)
/* f0cdea0: e7b80058 */ swc1 $f24,0x58($sp)
/* f0cdea4: 27a40054 */ addiu $a0,$sp,0x54
/* f0cdea8: 46005102 */ mul.s $f4,$f10,$f0
/* f0cdeac: 00000000 */ nop
/* f0cdeb0: 46167202 */ mul.s $f8,$f14,$f22
/* f0cdeb4: e7a40054 */ swc1 $f4,0x54($sp)
/* f0cdeb8: 46004182 */ mul.s $f6,$f8,$f0
/* f0cdebc: 0fc3382f */ jal bgrab0f0ce0bc
/* f0cdec0: e7a6005c */ swc1 $f6,0x5c($sp)
/* f0cdec4: c7ac00b0 */ lwc1 $f12,0xb0($sp)
/* f0cdec8: 0fc336c1 */ jal bgrab0f0cdb04
/* f0cdecc: 24050001 */ addiu $a1,$zero,0x1
/* f0cded0: 10000002 */ b .L0f0cdedc
/* f0cded4: 8fbf002c */ lw $ra,0x2c($sp)
.L0f0cded8:
/* f0cded8: 8fbf002c */ lw $ra,0x2c($sp)
.L0f0cdedc:
/* f0cdedc: d7b40010 */ ldc1 $f20,0x10($sp)
/* f0cdee0: d7b60018 */ ldc1 $f22,0x18($sp)
/* f0cdee4: d7b80020 */ ldc1 $f24,0x20($sp)
/* f0cdee8: 03e00008 */ jr $ra
/* f0cdeec: 27bd00b0 */ addiu $sp,$sp,0xb0
);
#endif
void bgrab0f0cdef0(void)
{
@ -2549,7 +3107,11 @@ bool bgrab0f0cdf64(struct coord *delta, struct coord *arg1, struct coord *arg2)
bool result = bgrabCalculateNewPositiontWithPush(delta, 0, true);
if (!result) {
cd00024e4c(arg1, arg2, 0x32f, "bondgrab.c");
#if VERSION >= VERSION_NTSC_1_0
cd00024e4c(arg1, arg2, 815, "bondgrab.c");
#else
cd00024e4c(arg1, arg2, 811, "bondgrab.c");
#endif
}
return result;
@ -3614,10 +4176,6 @@ glabel var7f1ada2c
void bgrabTick(void)
{
s32 i;
struct defaultobj *obj;
struct hov *hov;
bgrabUpdatePrevPos();
bgrab0f0cdef0();
bmoveUpdateVerta();
@ -3626,57 +4184,63 @@ void bgrabTick(void)
bgrabUpdateVertical();
#if VERSION >= VERSION_NTSC_1_0
for (i = 0; g_Vars.currentplayer->prop->rooms[i] != -1; i++) {
if (g_Vars.currentplayer->prop->rooms[i] == g_Vars.currentplayer->floorroom) {
propDeregisterRooms(g_Vars.currentplayer->prop);
g_Vars.currentplayer->prop->rooms[0] = g_Vars.currentplayer->floorroom;
g_Vars.currentplayer->prop->rooms[1] = -1;
break;
{
s32 i;
for (i = 0; g_Vars.currentplayer->prop->rooms[i] != -1; i++) {
if (g_Vars.currentplayer->prop->rooms[i] == g_Vars.currentplayer->floorroom) {
propDeregisterRooms(g_Vars.currentplayer->prop);
g_Vars.currentplayer->prop->rooms[0] = g_Vars.currentplayer->floorroom;
g_Vars.currentplayer->prop->rooms[1] = -1;
break;
}
}
}
#endif
obj = g_Vars.currentplayer->grabbedprop->obj;
hov = NULL;
{
struct defaultobj *obj = g_Vars.currentplayer->grabbedprop->obj;
struct hov *hov = NULL;
if (obj->type == OBJTYPE_HOVERPROP) {
struct hoverpropobj *hoverprop = (struct hoverpropobj *)g_Vars.currentplayer->grabbedprop->obj;
hov = &hoverprop->hov;
} else if (obj->type == OBJTYPE_HOVERBIKE) {
struct hoverbikeobj *hoverbike = (struct hoverbikeobj *)g_Vars.currentplayer->grabbedprop->obj;
hov = &hoverbike->hov;
}
if (hov) {
func0f0714b8(obj, hov);
}
bmove0f0cb8c4(g_Vars.currentplayer);
objectiveCheckRoomEntered(g_Vars.currentplayer->prop->rooms[0]);
bmove0f0cc19c(&g_Vars.currentplayer->prop->pos);
currentPlayerUpdatePerimInfo();
doorsCheckAutomatic();
if (g_Vars.currentplayer->grabbedprop) {
// Determine if the grabbed prop should be force released
f32 ydiff = g_Vars.currentplayer->grabbedprop->pos.y
- objGetHov04(g_Vars.currentplayer->grabbedprop->obj)
- g_Vars.currentplayer->vv_manground;
struct prop *grabbedprop = g_Vars.currentplayer->grabbedprop;
propSetCollisionsEnabled(g_Vars.currentplayer->prop, false);
propSetCollisionsEnabled(grabbedprop, false);
if (g_Vars.currentplayer->vv_ground <= -30000
|| ydiff < -100 || ydiff > 100
|| g_Vars.currentplayer->vv_ground < g_Vars.currentplayer->vv_manground - 50
|| !cdHasLineOfSight(&g_Vars.currentplayer->prop->pos, g_Vars.currentplayer->prop->rooms,
&g_Vars.currentplayer->grabbedprop->pos, g_Vars.currentplayer->grabbedprop->rooms, CDTYPE_ALL, 12)) {
bmoveSetMode(MOVEMODE_WALK);
if (obj->type == OBJTYPE_HOVERPROP) {
struct hoverpropobj *hoverprop = (struct hoverpropobj *)g_Vars.currentplayer->grabbedprop->obj;
hov = &hoverprop->hov;
} else if (obj->type == OBJTYPE_HOVERBIKE) {
struct hoverbikeobj *hoverbike = (struct hoverbikeobj *)g_Vars.currentplayer->grabbedprop->obj;
hov = &hoverbike->hov;
}
propSetCollisionsEnabled(g_Vars.currentplayer->prop, true);
propSetCollisionsEnabled(grabbedprop, true);
if (hov) {
func0f0714b8(obj, hov);
}
bmove0f0cb8c4(g_Vars.currentplayer);
objectiveCheckRoomEntered(g_Vars.currentplayer->prop->rooms[0]);
bmove0f0cc19c(&g_Vars.currentplayer->prop->pos);
currentPlayerUpdatePerimInfo();
doorsCheckAutomatic();
if (g_Vars.currentplayer->grabbedprop) {
// Determine if the grabbed prop should be force released
f32 ydiff = g_Vars.currentplayer->grabbedprop->pos.y
- objGetHov04(g_Vars.currentplayer->grabbedprop->obj)
- g_Vars.currentplayer->vv_manground;
struct prop *grabbedprop = g_Vars.currentplayer->grabbedprop;
propSetCollisionsEnabled(g_Vars.currentplayer->prop, false);
propSetCollisionsEnabled(grabbedprop, false);
if (g_Vars.currentplayer->vv_ground <= -30000
|| ydiff < -100 || ydiff > 100
|| g_Vars.currentplayer->vv_ground < g_Vars.currentplayer->vv_manground - 50
|| !cdHasLineOfSight(&g_Vars.currentplayer->prop->pos, g_Vars.currentplayer->prop->rooms,
&g_Vars.currentplayer->grabbedprop->pos, g_Vars.currentplayer->grabbedprop->rooms, CDTYPE_ALL, 12)) {
bmoveSetMode(MOVEMODE_WALK);
}
propSetCollisionsEnabled(g_Vars.currentplayer->prop, true);
propSetCollisionsEnabled(grabbedprop, true);
}
}
}

View File

@ -51,6 +51,7 @@
#include "data.h"
#include "types.h"
#if VERSION >= VERSION_NTSC_1_0
u32 var8009d0d0[2];
s32 var8009d0d8;
u32 var8009d0dc;
@ -86,6 +87,40 @@ s32 var8009d148;
u32 var8009d14c;
struct fireslot g_Fireslots[NUM_FIRESLOTS];
#else
u32 var8009d0dc;
u32 var800a1800nb;
u32 var8009d0f0;
u32 var8009d0f4;
u32 var8009d0f8;
u32 var8009d0fc;
u32 var8009d100;
u32 var8009d104;
u32 var8009d108;
u32 var8009d10c;
u32 var8009d110;
u32 var8009d114;
u32 var8009d118;
u32 var8009d11c;
u32 var8009d120;
u32 var8009d124;
u32 var8009d128;
u32 var8009d12c;
u32 var8009d130;
u32 var8009d134;
u32 var8009d138;
u32 var8009d13c;
u32 var8009d140;
u32 var8009d144;
s32 var8009d148;
u32 var8009d14c;
u32 var8009d0d0[2];
s32 var8009d0d8;
struct audiohandle *g_BgunAudioHandles[4];
struct fireslot g_Fireslots[NUM_FIRESLOTS];
u32 fill2[1];
#endif
u32 var80070090 = 0x96969600;
u32 var80070094 = 0x96969600;
@ -5308,7 +5343,7 @@ glabel var7f1ac31c
/* f09a150: 5720001a */ bnezl $t9,.L0f09a1bc
/* f09a154: 8e0e001c */ lw $t6,0x1c($s0)
/* f09a158: 8da90000 */ lw $t1,0x0($t5)
/* f09a15c: 2d210058 */ sltiu $at,$t1,0x58
/* f09a15c: 2d210058 */ sltiu $at,$t1,0x57
/* f09a160: 10200006 */ beqz $at,.L0f09a17c
/* f09a164: 00094880 */ sll $t1,$t1,0x2
/* f09a168: 3c017f1b */ lui $at,%hi(var7f1ac1bc)

View File

@ -2044,15 +2044,13 @@ void bmove0f0cc19c(struct coord *arg)
g_Vars.currentplayer->bond2.unk10.y = (g_Vars.currentplayer->bond2.unk10.y - g_Vars.currentplayer->vv_manground) * mult;
#if VERSION >= VERSION_NTSC_1_0
g_Vars.currentplayer->bond2.unk10.y += g_Vars.currentplayer->vv_manground;
#else
#if VERSION < VERSION_NTSC_1_0
if (g_Vars.currentplayer->bond2.unk10.y < 30) {
g_Vars.currentplayer->bond2.unk10.y = 30;
}
g_Vars.currentplayer->bond2.unk10.y += g_Vars.currentplayer->vv_ground;
#endif
g_Vars.currentplayer->bond2.unk10.y += g_Vars.currentplayer->vv_manground;
}
#if VERSION >= VERSION_NTSC_1_0

View File

@ -19,7 +19,11 @@
#include "types.h"
#include "gbiex.h"
#if VERSION >= VERSION_NTSC_1_0
char var800a41c0[990];
#else
char var800a41c0[1438];
#endif
s32 var8007f840 = 0x00000000;
u8 var8007f844 = 0;
@ -14748,6 +14752,7 @@ void func0f1572f8(void)
// empty
}
#if VERSION >= VERSION_NTSC_1_0
GLOBAL_ASM(
glabel bviewRenderNvLens
/* f1472fc: 27bdffa0 */ addiu $sp,$sp,-96
@ -14917,6 +14922,177 @@ glabel bviewRenderNvLens
/* f147568: 03e00008 */ jr $ra
/* f14756c: 27bd0060 */ addiu $sp,$sp,0x60
);
#else
GLOBAL_ASM(
glabel bviewRenderNvLens
/* f141b90: 27bdffa0 */ addiu $sp,$sp,-96
/* f141b94: afbf0054 */ sw $ra,0x54($sp)
/* f141b98: afb10034 */ sw $s1,0x34($sp)
/* f141b9c: 00808825 */ or $s1,$a0,$zero
/* f141ba0: afbe0050 */ sw $s8,0x50($sp)
/* f141ba4: afb7004c */ sw $s7,0x4c($sp)
/* f141ba8: afb60048 */ sw $s6,0x48($sp)
/* f141bac: afb50044 */ sw $s5,0x44($sp)
/* f141bb0: afb40040 */ sw $s4,0x40($sp)
/* f141bb4: afb3003c */ sw $s3,0x3c($sp)
/* f141bb8: afb20038 */ sw $s2,0x38($sp)
/* f141bbc: afb00030 */ sw $s0,0x30($sp)
/* f141bc0: 0c002b27 */ jal viGetBackBuffer
/* f141bc4: f7b40028 */ sdc1 $f20,0x28($sp)
/* f141bc8: 0c002f9b */ jal viGetViewHeight
/* f141bcc: afa2005c */ sw $v0,0x5c($sp)
/* f141bd0: 0c002f97 */ jal viGetViewWidth
/* f141bd4: 00408025 */ or $s0,$v0,$zero
/* f141bd8: 0c002fb9 */ jal viGetViewTop
/* f141bdc: 0040b025 */ or $s6,$v0,$zero
/* f141be0: 0c002fb5 */ jal viGetViewLeft
/* f141be4: 00409825 */ or $s3,$v0,$zero
/* f141be8: 3c038008 */ lui $v1,0x8008
/* f141bec: 246320a0 */ addiu $v1,$v1,0x20a0
/* f141bf0: 8c6e0000 */ lw $t6,0x0($v1)
/* f141bf4: 0270a021 */ addu $s4,$s3,$s0
/* f141bf8: 0040b825 */ or $s7,$v0,$zero
/* f141bfc: 25cf0001 */ addiu $t7,$t6,0x1
/* f141c00: 29e10002 */ slti $at,$t7,0x2
/* f141c04: 0280f025 */ or $s8,$s4,$zero
/* f141c08: 14200003 */ bnez $at,.NB0f141c18
/* f141c0c: ac6f0000 */ sw $t7,0x0($v1)
/* f141c10: 1000006f */ beqz $zero,.NB0f141dd0
/* f141c14: 02201025 */ or $v0,$s1,$zero
.NB0f141c18:
/* f141c18: 3c04800b */ lui $a0,0x800b
/* f141c1c: 3c057f1b */ lui $a1,0x7f1b
/* f141c20: 24a503a0 */ addiu $a1,$a1,0x3a0
/* f141c24: 0c004e60 */ jal strcpy
/* f141c28: 24848780 */ addiu $a0,$a0,-30848
/* f141c2c: 241900bc */ addiu $t9,$zero,0xbc
/* f141c30: 3c01800a */ lui $at,0x800a
/* f141c34: a039122c */ sb $t9,0x122c($at)
/* f141c38: 3c01800a */ lui $at,0x800a
/* f141c3c: 240800be */ addiu $t0,$zero,0xbe
/* f141c40: a028122f */ sb $t0,0x122f($at)
/* f141c44: 3c01800a */ lui $at,0x800a
/* f141c48: 240900de */ addiu $t1,$zero,0xde
/* f141c4c: a0291230 */ sb $t1,0x1230($at)
/* f141c50: 3c01800a */ lui $at,0x800a
/* f141c54: 240a0050 */ addiu $t2,$zero,0x50
/* f141c58: a02a122d */ sb $t2,0x122d($at)
/* f141c5c: 3c10800a */ lui $s0,0x800a
/* f141c60: 3c01800a */ lui $at,0x800a
/* f141c64: 240b00c0 */ addiu $t3,$zero,0xc0
/* f141c68: 2610e6c0 */ addiu $s0,$s0,-6464
/* f141c6c: a02b122e */ sb $t3,0x122e($at)
/* f141c70: 8e0c0284 */ lw $t4,0x284($s0)
/* f141c74: 8d8d00bc */ lw $t5,0xbc($t4)
/* f141c78: 0fc00270 */ jal func0f0009c0
/* f141c7c: 85a40028 */ lh $a0,0x28($t5)
/* f141c80: 28410081 */ slti $at,$v0,0x81
/* f141c84: 14200004 */ bnez $at,.NB0f141c98
/* f141c88: 00402025 */ or $a0,$v0,$zero
/* f141c8c: 00402825 */ or $a1,$v0,$zero
/* f141c90: 0fc487dd */ jal func0f127334
/* f141c94: 00403025 */ or $a2,$v0,$zero
.NB0f141c98:
/* f141c98: 8e0e0288 */ lw $t6,0x288($s0)
/* f141c9c: 3c19800a */ lui $t9,0x800a
/* f141ca0: 02202025 */ or $a0,$s1,$zero
/* f141ca4: 8dcf0070 */ lw $t7,0x70($t6)
/* f141ca8: 3c0500ff */ lui $a1,0xff
/* f141cac: 000fc0c0 */ sll $t8,$t7,0x3
/* f141cb0: 030fc023 */ subu $t8,$t8,$t7
/* f141cb4: 0018c0c0 */ sll $t8,$t8,0x3
/* f141cb8: 030fc023 */ subu $t8,$t8,$t7
/* f141cbc: 0018c100 */ sll $t8,$t8,0x4
/* f141cc0: 030fc023 */ subu $t8,$t8,$t7
/* f141cc4: 0018c080 */ sll $t8,$t8,0x2
/* f141cc8: 0338c821 */ addu $t9,$t9,$t8
/* f141ccc: 8f392c48 */ lw $t9,0x2c48($t9)
/* f141cd0: 57200005 */ bnezl $t9,.NB0f141ce8
/* f141cd4: 02201025 */ or $v0,$s1,$zero
/* f141cd8: 0fc4f3ca */ jal bviewRenderMotionBlur
/* f141cdc: 24060060 */ addiu $a2,$zero,0x60
/* f141ce0: 00408825 */ or $s1,$v0,$zero
/* f141ce4: 02201025 */ or $v0,$s1,$zero
.NB0f141ce8:
/* f141ce8: 3c08e700 */ lui $t0,0xe700
/* f141cec: ac480000 */ sw $t0,0x0($v0)
/* f141cf0: ac400004 */ sw $zero,0x4($v0)
/* f141cf4: 26240008 */ addiu $a0,$s1,0x8
/* f141cf8: 2405ffff */ addiu $a1,$zero,-1
/* f141cfc: 0fc4f2e8 */ jal bviewPrepareStaticRgba16
/* f141d00: 240600ff */ addiu $a2,$zero,0xff
/* f141d04: 3c128008 */ lui $s2,0x8008
/* f141d08: 265220d8 */ addiu $s2,$s2,0x20d8
/* f141d0c: 92490000 */ lbu $t1,0x0($s2)
/* f141d10: 0274082a */ slt $at,$s3,$s4
/* f141d14: 00408825 */ or $s1,$v0,$zero
/* f141d18: 252a0001 */ addiu $t2,$t1,0x1
/* f141d1c: a24a0000 */ sb $t2,0x0($s2)
/* f141d20: 1020002a */ beqz $at,.NB0f141dcc
/* f141d24: 02608025 */ or $s0,$s3,$zero
/* f141d28: 3c013f80 */ lui $at,0x3f80
/* f141d2c: 4481a000 */ mtc1 $at,$f20
/* f141d30: 3c15fb00 */ lui $s5,0xfb00
/* f141d34: 2414000c */ addiu $s4,$zero,0xc
/* f141d38: 241300ff */ addiu $s3,$zero,0xff
.NB0f141d3c:
/* f141d3c: 924c0000 */ lbu $t4,0x0($s2)
/* f141d40: 320b0001 */ andi $t3,$s0,0x1
/* f141d44: 24030094 */ addiu $v1,$zero,0x94
/* f141d48: 318d0001 */ andi $t5,$t4,0x1
/* f141d4c: 116d000e */ beq $t3,$t5,.NB0f141d88
/* f141d50: 00000000 */ sll $zero,$zero,0x0
/* f141d54: 0c004d84 */ jal random
/* f141d58: 00000000 */ sll $zero,$zero,0x0
/* f141d5c: 0054001b */ divu $zero,$v0,$s4
/* f141d60: 00007810 */ mfhi $t7
/* f141d64: 31f800ff */ andi $t8,$t7,0xff
/* f141d68: 02781823 */ subu $v1,$s3,$t8
/* f141d6c: 307900ff */ andi $t9,$v1,0xff
/* f141d70: 16800002 */ bnez $s4,.NB0f141d7c
/* f141d74: 00000000 */ sll $zero,$zero,0x0
/* f141d78: 0007000d */ break 0x7
.NB0f141d7c:
/* f141d7c: 03201825 */ or $v1,$t9,$zero
/* f141d80: 10000002 */ beqz $zero,.NB0f141d8c
/* f141d84: 02201025 */ or $v0,$s1,$zero
.NB0f141d88:
/* f141d88: 02201025 */ or $v0,$s1,$zero
.NB0f141d8c:
/* f141d8c: 00034400 */ sll $t0,$v1,0x10
/* f141d90: 250900ff */ addiu $t1,$t0,0xff
/* f141d94: ac490004 */ sw $t1,0x4($v0)
/* f141d98: ac550000 */ sw $s5,0x0($v0)
/* f141d9c: 26240008 */ addiu $a0,$s1,0x8
/* f141da0: afb6001c */ sw $s6,0x1c($sp)
/* f141da4: afb70018 */ sw $s7,0x18($sp)
/* f141da8: e7b40014 */ swc1 $f20,0x14($sp)
/* f141dac: afb00010 */ sw $s0,0x10($sp)
/* f141db0: 8fa5005c */ lw $a1,0x5c($sp)
/* f141db4: 02003025 */ or $a2,$s0,$zero
/* f141db8: 0fc4f168 */ jal bviewRenderLensRect
/* f141dbc: 24070005 */ addiu $a3,$zero,0x5
/* f141dc0: 26100001 */ addiu $s0,$s0,0x1
/* f141dc4: 161effdd */ bne $s0,$s8,.NB0f141d3c
/* f141dc8: 00408825 */ or $s1,$v0,$zero
.NB0f141dcc:
/* f141dcc: 02201025 */ or $v0,$s1,$zero
.NB0f141dd0:
/* f141dd0: 8fbf0054 */ lw $ra,0x54($sp)
/* f141dd4: d7b40028 */ ldc1 $f20,0x28($sp)
/* f141dd8: 8fb00030 */ lw $s0,0x30($sp)
/* f141ddc: 8fb10034 */ lw $s1,0x34($sp)
/* f141de0: 8fb20038 */ lw $s2,0x38($sp)
/* f141de4: 8fb3003c */ lw $s3,0x3c($sp)
/* f141de8: 8fb40040 */ lw $s4,0x40($sp)
/* f141dec: 8fb50044 */ lw $s5,0x44($sp)
/* f141df0: 8fb60048 */ lw $s6,0x48($sp)
/* f141df4: 8fb7004c */ lw $s7,0x4c($sp)
/* f141df8: 8fbe0050 */ lw $s8,0x50($sp)
/* f141dfc: 03e00008 */ jr $ra
/* f141e00: 27bd0060 */ addiu $sp,$sp,0x60
);
#endif
// Mismatch because var8009caec and friends needs to be moved into this file,
// and regalloc near random().

View File

@ -344,7 +344,11 @@ void bwalk0f0c3b38(struct coord *reltarget, struct defaultobj *obj)
abstarget.y = g_Vars.currentplayer->prop->pos.y;
abstarget.z = reltarget->z + g_Vars.currentplayer->prop->pos.z;
#if VERSION >= VERSION_NTSC_1_0
cd00024e4c(&globalthinga, &globalthingb, 223, "bondwalk.c");
#else
cd00024e4c(&globalthinga, &globalthingb, 221, "bondwalk.c");
#endif
vector.x = globalthingb.z - globalthinga.z;
vector.y = 0;
@ -1193,7 +1197,7 @@ glabel bwalkCalculateNewPositionWithPush
/* f0c475c: 03e00008 */ jr $ra
/* f0c4760: 00000000 */ nop
);
#else
#elif VERSION >= VERSION_NTSC_1_0
GLOBAL_ASM(
glabel bwalkCalculateNewPositionWithPush
/* f0c4250: 27bdff58 */ addiu $sp,$sp,-168
@ -1536,6 +1540,349 @@ glabel bwalkCalculateNewPositionWithPush
/* f0c475c: 03e00008 */ jr $ra
/* f0c4760: 00000000 */ nop
);
#else
GLOBAL_ASM(
glabel bwalkCalculateNewPositionWithPush
/* f0c4250: 27bdff58 */ addiu $sp,$sp,-168
/* f0c4254: 8fae00b8 */ lw $t6,0xb8($sp)
/* f0c4258: afbf0024 */ sw $ra,0x24($sp)
/* f0c425c: afa400a8 */ sw $a0,0xa8($sp)
/* f0c4260: afa500ac */ sw $a1,0xac($sp)
/* f0c4264: afa600b0 */ sw $a2,0xb0($sp)
/* f0c4268: afa700b4 */ sw $a3,0xb4($sp)
/* f0c426c: 0fc30f85 */ jal bwalkCalculateNewPosition
/* f0c4270: afae0010 */ sw $t6,0x10($sp)
/* f0c4274: 24010001 */ addiu $at,$zero,0x1
/* f0c4278: 10410135 */ beq $v0,$at,.L0f0c4750
/* f0c427c: afa200a4 */ sw $v0,0xa4($sp)
/* f0c4280: 0c0093ac */ jal cdGetObstacle
/* f0c4284: 00000000 */ nop
/* f0c4288: 10400131 */ beqz $v0,.L0f0c4750
/* f0c428c: afa200a0 */ sw $v0,0xa0($sp)
/* f0c4290: 3c08800a */ lui $t0,%hi(g_Vars)
/* f0c4294: 25089fc0 */ addiu $t0,$t0,%lo(g_Vars)
/* f0c4298: 8d0f0034 */ lw $t7,0x34($t0)
/* f0c429c: 59e0012d */ blezl $t7,.L0f0c4754
/* f0c42a0: 8fbf0024 */ lw $ra,0x24($sp)
/* f0c42a4: 90430000 */ lbu $v1,0x0($v0)
/* f0c42a8: 24010002 */ addiu $at,$zero,0x2
/* f0c42ac: 54610046 */ bnel $v1,$at,.L0f0c43c8
/* f0c42b0: 24010003 */ addiu $at,$zero,0x3
/* f0c42b4: 8c430004 */ lw $v1,0x4($v0)
/* f0c42b8: 94780070 */ lhu $t8,0x70($v1)
/* f0c42bc: 33190400 */ andi $t9,$t8,0x400
/* f0c42c0: 53200124 */ beqzl $t9,.L0f0c4754
/* f0c42c4: 8fbf0024 */ lw $ra,0x24($sp)
/* f0c42c8: 8d090284 */ lw $t1,0x284($t0)
/* f0c42cc: 27a40084 */ addiu $a0,$sp,0x84
/* f0c42d0: 27a50078 */ addiu $a1,$sp,0x78
/* f0c42d4: 8d2a00d8 */ lw $t2,0xd8($t1)
/* f0c42d8: 240601d1 */ addiu $a2,$zero,0x1cc
/* f0c42dc: 3c077f1b */ lui $a3,%hi(var7f1ad75c)
/* f0c42e0: 5540011c */ bnezl $t2,.L0f0c4754
/* f0c42e4: 8fbf0024 */ lw $ra,0x24($sp)
/* f0c42e8: 0c009393 */ jal cd00024e4c
/* f0c42ec: 24e7d75c */ addiu $a3,$a3,%lo(var7f1ad75c)
/* f0c42f0: c7a40080 */ lwc1 $f4,0x80($sp)
/* f0c42f4: c7a6008c */ lwc1 $f6,0x8c($sp)
/* f0c42f8: 44801000 */ mtc1 $zero,$f2
/* f0c42fc: c7a80084 */ lwc1 $f8,0x84($sp)
/* f0c4300: 46062001 */ sub.s $f0,$f4,$f6
/* f0c4304: c7aa0078 */ lwc1 $f10,0x78($sp)
/* f0c4308: 3c08800a */ lui $t0,%hi(g_Vars)
/* f0c430c: 25089fc0 */ addiu $t0,$t0,%lo(g_Vars)
/* f0c4310: 46001032 */ c.eq.s $f2,$f0
/* f0c4314: e7a00090 */ swc1 $f0,0x90($sp)
/* f0c4318: 460a4101 */ sub.s $f4,$f8,$f10
/* f0c431c: 27a40090 */ addiu $a0,$sp,0x90
/* f0c4320: e7a20094 */ swc1 $f2,0x94($sp)
/* f0c4324: 45000004 */ bc1f .L0f0c4338
/* f0c4328: e7a40098 */ swc1 $f4,0x98($sp)
/* f0c432c: 46041032 */ c.eq.s $f2,$f4
/* f0c4330: 3c013f80 */ lui $at,0x3f80
/* f0c4334: 45010006 */ bc1t .L0f0c4350
.L0f0c4338:
/* f0c4338: 27a50094 */ addiu $a1,$sp,0x94
/* f0c433c: 0c0011e4 */ jal guNormalize
/* f0c4340: 27a60098 */ addiu $a2,$sp,0x98
/* f0c4344: 3c08800a */ lui $t0,%hi(g_Vars)
/* f0c4348: 10000004 */ b .L0f0c435c
/* f0c434c: 25089fc0 */ addiu $t0,$t0,%lo(g_Vars)
.L0f0c4350:
/* f0c4350: 44813000 */ mtc1 $at,$f6
/* f0c4354: 00000000 */ nop
/* f0c4358: e7a60098 */ swc1 $f6,0x98($sp)
.L0f0c435c:
/* f0c435c: 8d0b0284 */ lw $t3,0x284($t0)
/* f0c4360: 3c053ecc */ lui $a1,0x3ecc
/* f0c4364: 34a5cccd */ ori $a1,$a1,0xcccd
/* f0c4368: 8d6200bc */ lw $v0,0xbc($t3)
/* f0c436c: 27a60090 */ addiu $a2,$sp,0x90
/* f0c4370: 00003825 */ or $a3,$zero,$zero
/* f0c4374: 8c440004 */ lw $a0,0x4($v0)
/* f0c4378: 0fc0d05f */ jal chrDamageByLaser
/* f0c437c: afa20010 */ sw $v0,0x10($sp)
/* f0c4380: 3c01bf80 */ lui $at,0xbf80
/* f0c4384: 44814000 */ mtc1 $at,$f8
/* f0c4388: 3c048009 */ lui $a0,%hi(var80095200)
/* f0c438c: 240cffff */ addiu $t4,$zero,-1
/* f0c4390: 240dffff */ addiu $t5,$zero,-1
/* f0c4394: 240effff */ addiu $t6,$zero,-1
/* f0c4398: afae001c */ sw $t6,0x1c($sp)
/* f0c439c: afad0018 */ sw $t5,0x18($sp)
/* f0c43a0: afac0010 */ sw $t4,0x10($sp)
/* f0c43a4: 8c845200 */ lw $a0,%lo(var80095200)($a0)
/* f0c43a8: 240500f2 */ addiu $a1,$zero,0xf2
/* f0c43ac: 00003025 */ or $a2,$zero,$zero
/* f0c43b0: 2407ffff */ addiu $a3,$zero,-1
/* f0c43b4: 0c004241 */ jal sndStart
/* f0c43b8: e7a80014 */ swc1 $f8,0x14($sp)
/* f0c43bc: 100000e5 */ b .L0f0c4754
/* f0c43c0: 8fbf0024 */ lw $ra,0x24($sp)
/* f0c43c4: 24010003 */ addiu $at,$zero,0x3
.L0f0c43c8:
/* f0c43c8: 5461008b */ bnel $v1,$at,.L0f0c45f8
/* f0c43cc: 24010006 */ addiu $at,$zero,0x6
/* f0c43d0: 8d180318 */ lw $t8,0x318($t0)
/* f0c43d4: 8c4f0004 */ lw $t7,0x4($v0)
/* f0c43d8: 00001825 */ or $v1,$zero,$zero
/* f0c43dc: 1300000c */ beqz $t8,.L0f0c4410
/* f0c43e0: afaf0074 */ sw $t7,0x74($sp)
/* f0c43e4: 8d190284 */ lw $t9,0x284($t0)
/* f0c43e8: 01e02825 */ or $a1,$t7,$zero
/* f0c43ec: 24060001 */ addiu $a2,$zero,0x1
/* f0c43f0: 8f2900bc */ lw $t1,0xbc($t9)
/* f0c43f4: 8d240004 */ lw $a0,0x4($t1)
/* f0c43f8: 0fc12aa3 */ jal chrCompareTeams
/* f0c43fc: afa00044 */ sw $zero,0x44($sp)
/* f0c4400: 10400014 */ beqz $v0,.L0f0c4454
/* f0c4404: 8fa30044 */ lw $v1,0x44($sp)
/* f0c4408: 10000012 */ b .L0f0c4454
/* f0c440c: 24030001 */ addiu $v1,$zero,0x1
.L0f0c4410:
/* f0c4410: 8faa0074 */ lw $t2,0x74($sp)
/* f0c4414: 8d4b0018 */ lw $t3,0x18($t2)
/* f0c4418: 000b61c0 */ sll $t4,$t3,0x7
/* f0c441c: 0581000d */ bgez $t4,.L0f0c4454
/* f0c4420: 00000000 */ nop
/* f0c4424: 8d0d029c */ lw $t5,0x29c($t0)
/* f0c4428: 05a2000a */ bltzl $t5,.L0f0c4454
/* f0c442c: 24030001 */ addiu $v1,$zero,0x1
/* f0c4430: 8d0e02a8 */ lw $t6,0x2a8($t0)
/* f0c4434: 8d0f0284 */ lw $t7,0x284($t0)
/* f0c4438: 55cf0006 */ bnel $t6,$t7,.L0f0c4454
/* f0c443c: 24030001 */ addiu $v1,$zero,0x1
/* f0c4440: 8d580014 */ lw $t8,0x14($t2)
/* f0c4444: 0018c840 */ sll $t9,$t8,0x1
/* f0c4448: 07200002 */ bltz $t9,.L0f0c4454
/* f0c444c: 00000000 */ nop
/* f0c4450: 24030001 */ addiu $v1,$zero,0x1
.L0f0c4454:
/* f0c4454: 106000be */ beqz $v1,.L0f0c4750
/* f0c4458: 8fa200a8 */ lw $v0,0xa8($sp)
/* f0c445c: c4400008 */ lwc1 $f0,0x8($v0)
/* f0c4460: c4420000 */ lwc1 $f2,0x0($v0)
/* f0c4464: 46000282 */ mul.s $f10,$f0,$f0
/* f0c4468: 00000000 */ nop
/* f0c446c: 46021102 */ mul.s $f4,$f2,$f2
/* f0c4470: 0c012974 */ jal sqrtf
/* f0c4474: 46045300 */ add.s $f12,$f10,$f4
/* f0c4478: 3c08800a */ lui $t0,%hi(g_Vars)
/* f0c447c: 25089fc0 */ addiu $t0,$t0,%lo(g_Vars)
/* f0c4480: c5060044 */ lwc1 $f6,0x44($t0)
/* f0c4484: 8d090284 */ lw $t1,0x284($t0)
/* f0c4488: 8fa300a0 */ lw $v1,0xa0($sp)
/* f0c448c: 46060203 */ div.s $f8,$f0,$f6
/* f0c4490: 44801000 */ mtc1 $zero,$f2
/* f0c4494: e7a80054 */ swc1 $f8,0x54($sp)
/* f0c4498: 8d2200bc */ lw $v0,0xbc($t1)
/* f0c449c: c46a0008 */ lwc1 $f10,0x8($v1)
/* f0c44a0: c4660010 */ lwc1 $f6,0x10($v1)
/* f0c44a4: c4440008 */ lwc1 $f4,0x8($v0)
/* f0c44a8: c4480010 */ lwc1 $f8,0x10($v0)
/* f0c44ac: 46045381 */ sub.s $f14,$f10,$f4
/* f0c44b0: 46083401 */ sub.s $f16,$f6,$f8
/* f0c44b4: 46027032 */ c.eq.s $f14,$f2
/* f0c44b8: 00000000 */ nop
/* f0c44bc: 45000005 */ bc1f .L0f0c44d4
/* f0c44c0: 00000000 */ nop
/* f0c44c4: 46028032 */ c.eq.s $f16,$f2
/* f0c44c8: 00000000 */ nop
/* f0c44cc: 450300a1 */ bc1tl .L0f0c4754
/* f0c44d0: 8fbf0024 */ lw $ra,0x24($sp)
.L0f0c44d4:
/* f0c44d4: 460e7282 */ mul.s $f10,$f14,$f14
/* f0c44d8: e7ae0050 */ swc1 $f14,0x50($sp)
/* f0c44dc: e7b0004c */ swc1 $f16,0x4c($sp)
/* f0c44e0: 46108102 */ mul.s $f4,$f16,$f16
/* f0c44e4: 0c012974 */ jal sqrtf
/* f0c44e8: 46045300 */ add.s $f12,$f10,$f4
/* f0c44ec: 44801000 */ mtc1 $zero,$f2
/* f0c44f0: 3c08800a */ lui $t0,%hi(g_Vars)
/* f0c44f4: 25089fc0 */ addiu $t0,$t0,%lo(g_Vars)
/* f0c44f8: 4600103c */ c.lt.s $f2,$f0
/* f0c44fc: c7ae0050 */ lwc1 $f14,0x50($sp)
/* f0c4500: c7b0004c */ lwc1 $f16,0x4c($sp)
/* f0c4504: c7a60054 */ lwc1 $f6,0x54($sp)
/* f0c4508: 45020092 */ bc1fl .L0f0c4754
/* f0c450c: 8fbf0024 */ lw $ra,0x24($sp)
/* f0c4510: 46003303 */ div.s $f12,$f6,$f0
/* f0c4514: 3c013f00 */ lui $at,0x3f00
/* f0c4518: 44819000 */ mtc1 $at,$f18
/* f0c451c: 8fa40074 */ lw $a0,0x74($sp)
/* f0c4520: 8fa200a0 */ lw $v0,0xa0($sp)
/* f0c4524: 27a50068 */ addiu $a1,$sp,0x68
/* f0c4528: 27a60058 */ addiu $a2,$sp,0x58
/* f0c452c: 00003825 */ or $a3,$zero,$zero
/* f0c4530: 460c7382 */ mul.s $f14,$f14,$f12
/* f0c4534: 00000000 */ nop
/* f0c4538: 460c8402 */ mul.s $f16,$f16,$f12
/* f0c453c: 00000000 */ nop
/* f0c4540: 460e9082 */ mul.s $f2,$f18,$f14
/* f0c4544: 00000000 */ nop
/* f0c4548: 46109202 */ mul.s $f8,$f18,$f16
/* f0c454c: e4820304 */ swc1 $f2,0x304($a0)
/* f0c4550: e4880308 */ swc1 $f8,0x308($a0)
/* f0c4554: c5000044 */ lwc1 $f0,0x44($t0)
/* f0c4558: c4440008 */ lwc1 $f4,0x8($v0)
/* f0c455c: 46001282 */ mul.s $f10,$f2,$f0
/* f0c4560: 46045180 */ add.s $f6,$f10,$f4
/* f0c4564: e7a60068 */ swc1 $f6,0x68($sp)
/* f0c4568: c448000c */ lwc1 $f8,0xc($v0)
/* f0c456c: e7a8006c */ swc1 $f8,0x6c($sp)
/* f0c4570: c48a0308 */ lwc1 $f10,0x308($a0)
/* f0c4574: c4460010 */ lwc1 $f6,0x10($v0)
/* f0c4578: 46005102 */ mul.s $f4,$f10,$f0
/* f0c457c: 46062200 */ add.s $f8,$f4,$f6
/* f0c4580: 0fc079fd */ jal chrCalculatePushPos
/* f0c4584: e7a80070 */ swc1 $f8,0x70($sp)
/* f0c4588: 8fa400a0 */ lw $a0,0xa0($sp)
/* f0c458c: c7aa0068 */ lwc1 $f10,0x68($sp)
/* f0c4590: e48a0008 */ swc1 $f10,0x8($a0)
/* f0c4594: c7a4006c */ lwc1 $f4,0x6c($sp)
/* f0c4598: e484000c */ swc1 $f4,0xc($a0)
/* f0c459c: c7a60070 */ lwc1 $f6,0x70($sp)
/* f0c45a0: 0fc19711 */ jal propDeregisterRooms
/* f0c45a4: e4860010 */ swc1 $f6,0x10($a0)
/* f0c45a8: 8fa500a0 */ lw $a1,0xa0($sp)
/* f0c45ac: 27a40058 */ addiu $a0,$sp,0x58
/* f0c45b0: 0fc195e9 */ jal roomsCopy
/* f0c45b4: 24a50028 */ addiu $a1,$a1,0x28
/* f0c45b8: 0fc0882b */ jal func0f0220ac
/* f0c45bc: 8fa40074 */ lw $a0,0x74($sp)
/* f0c45c0: 8fab0074 */ lw $t3,0x74($sp)
/* f0c45c4: 27a50068 */ addiu $a1,$sp,0x68
/* f0c45c8: 0c006b4d */ jal modelSetRootPosition
/* f0c45cc: 8d640020 */ lw $a0,0x20($t3)
/* f0c45d0: 8fac00b8 */ lw $t4,0xb8($sp)
/* f0c45d4: 8fa400a8 */ lw $a0,0xa8($sp)
/* f0c45d8: 8fa500ac */ lw $a1,0xac($sp)
/* f0c45dc: 8fa600b0 */ lw $a2,0xb0($sp)
/* f0c45e0: 8fa700b4 */ lw $a3,0xb4($sp)
/* f0c45e4: 0fc30f85 */ jal bwalkCalculateNewPosition
/* f0c45e8: afac0010 */ sw $t4,0x10($sp)
/* f0c45ec: 10000058 */ b .L0f0c4750
/* f0c45f0: afa200a4 */ sw $v0,0xa4($sp)
/* f0c45f4: 24010006 */ addiu $at,$zero,0x6
.L0f0c45f8:
/* f0c45f8: 10610055 */ beq $v1,$at,.L0f0c4750
/* f0c45fc: 24010001 */ addiu $at,$zero,0x1
/* f0c4600: 54610054 */ bnel $v1,$at,.L0f0c4754
/* f0c4604: 8fbf0024 */ lw $ra,0x24($sp)
/* f0c4608: 8c460004 */ lw $a2,0x4($v0)
/* f0c460c: 8cc30040 */ lw $v1,0x40($a2)
/* f0c4610: 00036940 */ sll $t5,$v1,0x5
/* f0c4614: 05a0004e */ bltz $t5,.L0f0c4750
/* f0c4618: 00037100 */ sll $t6,$v1,0x4
/* f0c461c: 05c2004d */ bltzl $t6,.L0f0c4754
/* f0c4620: 8fbf0024 */ lw $ra,0x24($sp)
/* f0c4624: 8d030284 */ lw $v1,0x284($t0)
/* f0c4628: 8c6f1af0 */ lw $t7,0x1af0($v1)
/* f0c462c: 55e00008 */ bnezl $t7,.L0f0c4650
/* f0c4630: 8cd80010 */ lw $t8,0x10($a2)
/* f0c4634: 90ca0003 */ lbu $t2,0x3($a2)
/* f0c4638: 2401002d */ addiu $at,$zero,0x2d
/* f0c463c: 55410004 */ bnel $t2,$at,.L0f0c4650
/* f0c4640: 8cd80010 */ lw $t8,0x10($a2)
/* f0c4644: 10000042 */ b .L0f0c4750
/* f0c4648: ac621aec */ sw $v0,0x1aec($v1)
/* f0c464c: 8cd80010 */ lw $t8,0x10($a2)
.L0f0c4650:
/* f0c4650: 33190001 */ andi $t9,$t8,0x1
/* f0c4654: 5320003f */ beqzl $t9,.L0f0c4754
/* f0c4658: 8fbf0024 */ lw $ra,0x24($sp)
/* f0c465c: ac600178 */ sw $zero,0x178($v1)
/* f0c4660: 8cc90040 */ lw $t1,0x40($a2)
/* f0c4664: 24020001 */ addiu $v0,$zero,0x1
/* f0c4668: 8fa400a8 */ lw $a0,0xa8($sp)
/* f0c466c: 312b0080 */ andi $t3,$t1,0x80
/* f0c4670: 11600007 */ beqz $t3,.L0f0c4690
/* f0c4674: 00c02825 */ or $a1,$a2,$zero
/* f0c4678: 8ccc0048 */ lw $t4,0x48($a2)
/* f0c467c: 8d8d0000 */ lw $t5,0x0($t4)
/* f0c4680: 31ae1000 */ andi $t6,$t5,0x1000
/* f0c4684: 11c00002 */ beqz $t6,.L0f0c4690
/* f0c4688: 00000000 */ nop
/* f0c468c: 00001025 */ or $v0,$zero,$zero
.L0f0c4690:
/* f0c4690: 50400030 */ beqzl $v0,.L0f0c4754
/* f0c4694: 8fbf0024 */ lw $ra,0x24($sp)
/* f0c4698: 0fc30ece */ jal bwalk0f0c3b38
/* f0c469c: afa60040 */ sw $a2,0x40($sp)
/* f0c46a0: 8fa60040 */ lw $a2,0x40($sp)
/* f0c46a4: 8ccf0040 */ lw $t7,0x40($a2)
/* f0c46a8: 31ea0080 */ andi $t2,$t7,0x80
/* f0c46ac: 51400029 */ beqzl $t2,.L0f0c4754
/* f0c46b0: 8fbf0024 */ lw $ra,0x24($sp)
/* f0c46b4: 8cd80048 */ lw $t8,0x48($a2)
/* f0c46b8: 00c02025 */ or $a0,$a2,$zero
/* f0c46bc: 27a50034 */ addiu $a1,$sp,0x34
/* f0c46c0: 8f190000 */ lw $t9,0x0($t8)
/* f0c46c4: 33290800 */ andi $t1,$t9,0x800
/* f0c46c8: 51200022 */ beqzl $t1,.L0f0c4754
/* f0c46cc: 8fbf0024 */ lw $ra,0x24($sp)
/* f0c46d0: afa00034 */ sw $zero,0x34($sp)
/* f0c46d4: 0fc1cf1b */ jal func0f073c6c
/* f0c46d8: afa60040 */ sw $a2,0x40($sp)
/* f0c46dc: 8fa60040 */ lw $a2,0x40($sp)
/* f0c46e0: 8ccb0040 */ lw $t3,0x40($a2)
/* f0c46e4: 316c0080 */ andi $t4,$t3,0x80
/* f0c46e8: 11800010 */ beqz $t4,.L0f0c472c
/* f0c46ec: 00000000 */ nop
/* f0c46f0: 8cc30048 */ lw $v1,0x48($a2)
/* f0c46f4: 8c6d0000 */ lw $t5,0x0($v1)
/* f0c46f8: 35ae1000 */ ori $t6,$t5,0x1000
/* f0c46fc: 10400006 */ beqz $v0,.L0f0c4718
/* f0c4700: ac6e0000 */ sw $t6,0x0($v1)
/* f0c4704: 8cc30048 */ lw $v1,0x48($a2)
/* f0c4708: 8c6f0000 */ lw $t7,0x0($v1)
/* f0c470c: 35ea2000 */ ori $t2,$t7,0x2000
/* f0c4710: 10000006 */ b .L0f0c472c
/* f0c4714: ac6a0000 */ sw $t2,0x0($v1)
.L0f0c4718:
/* f0c4718: 8cc30048 */ lw $v1,0x48($a2)
/* f0c471c: 2401dfff */ addiu $at,$zero,-8193
/* f0c4720: 8c780000 */ lw $t8,0x0($v1)
/* f0c4724: 0301c824 */ and $t9,$t8,$at
/* f0c4728: ac790000 */ sw $t9,0x0($v1)
.L0f0c472c:
/* f0c472c: 10400008 */ beqz $v0,.L0f0c4750
/* f0c4730: 8fa400a8 */ lw $a0,0xa8($sp)
/* f0c4734: 8fa900b8 */ lw $t1,0xb8($sp)
/* f0c4738: 8fa500ac */ lw $a1,0xac($sp)
/* f0c473c: 8fa600b0 */ lw $a2,0xb0($sp)
/* f0c4740: 8fa700b4 */ lw $a3,0xb4($sp)
/* f0c4744: 0fc30f85 */ jal bwalkCalculateNewPosition
/* f0c4748: afa90010 */ sw $t1,0x10($sp)
/* f0c474c: afa200a4 */ sw $v0,0xa4($sp)
.L0f0c4750:
/* f0c4750: 8fbf0024 */ lw $ra,0x24($sp)
.L0f0c4754:
/* f0c4754: 8fa200a4 */ lw $v0,0xa4($sp)
/* f0c4758: 27bd00a8 */ addiu $sp,$sp,0xa8
/* f0c475c: 03e00008 */ jr $ra
/* f0c4760: 00000000 */ nop
);
#endif
// Mismatch: The below loads 0.5f twice in the chr push code while goal reuses it.
@ -1686,7 +2033,11 @@ s32 bwalk0f0c4764(struct coord *delta, struct coord *arg1, struct coord *arg2, s
s32 result = bwalkCalculateNewPositionWithPush(delta, 0, true, 0, types);
if (result == CDRESULT_COLLISION) {
cd00024e4c(arg1, arg2, 0x25f, "bondwalk.c");
#if VERSION >= VERSION_NTSC_1_0
cd00024e4c(arg1, arg2, 607, "bondwalk.c");
#else
cd00024e4c(arg1, arg2, 602, "bondwalk.c");
#endif
}
return result;
@ -1710,7 +2061,11 @@ s32 bwalk0f0c47d0(struct coord *a, struct coord *b, struct coord *c,
}
if (result == CDRESULT_COLLISION) {
cd00024e4c(d, e, 0x27b, "bondwalk.c");
#if VERSION >= VERSION_NTSC_1_0
cd00024e4c(d, e, 635, "bondwalk.c");
#else
cd00024e4c(d, e, 630, "bondwalk.c");
#endif
if (b->x != d->x
|| b->y != d->y
@ -6984,9 +7339,6 @@ u32 var80070e70 = 0x00000000;
void bwalkTick(void)
{
s32 i;
struct coord sStack16;
bwalkUpdatePrevPos();
bwalkUpdateTheta();
bmoveUpdateVerta();
@ -6994,12 +7346,16 @@ void bwalkTick(void)
bwalkUpdateVertical();
#if VERSION >= VERSION_NTSC_1_0
for (i = 0; g_Vars.currentplayer->prop->rooms[i] != -1; i++) {
if (g_Vars.currentplayer->floorroom == g_Vars.currentplayer->prop->rooms[i]) {
propDeregisterRooms(g_Vars.currentplayer->prop);
g_Vars.currentplayer->prop->rooms[0] = g_Vars.currentplayer->floorroom;
g_Vars.currentplayer->prop->rooms[1] = -1;
break;
{
s32 i;
for (i = 0; g_Vars.currentplayer->prop->rooms[i] != -1; i++) {
if (g_Vars.currentplayer->floorroom == g_Vars.currentplayer->prop->rooms[i]) {
propDeregisterRooms(g_Vars.currentplayer->prop);
g_Vars.currentplayer->prop->rooms[0] = g_Vars.currentplayer->floorroom;
g_Vars.currentplayer->prop->rooms[1] = -1;
break;
}
}
}
#endif
@ -7008,16 +7364,17 @@ void bwalkTick(void)
objectiveCheckRoomEntered(g_Vars.currentplayer->prop->rooms[0]);
if (g_Vars.currentplayer->walkinitmove) {
sStack16.x = (g_Vars.currentplayer->walkinitstart.x - g_Vars.currentplayer->walkinitpos.x)
struct coord coord;
coord.x = (g_Vars.currentplayer->walkinitstart.x - g_Vars.currentplayer->walkinitpos.x)
* (1.0f - g_Vars.currentplayer->walkinitt2) + g_Vars.currentplayer->prop->pos.x;
sStack16.y = (g_Vars.currentplayer->walkinitstart.y - g_Vars.currentplayer->prop->pos.y)
coord.y = (g_Vars.currentplayer->walkinitstart.y - g_Vars.currentplayer->prop->pos.y)
* (1.0f - g_Vars.currentplayer->walkinitt2) + g_Vars.currentplayer->prop->pos.y;
sStack16.z = (g_Vars.currentplayer->walkinitstart.z - g_Vars.currentplayer->walkinitpos.z)
coord.z = (g_Vars.currentplayer->walkinitstart.z - g_Vars.currentplayer->walkinitpos.z)
* (1.0f - g_Vars.currentplayer->walkinitt2) + g_Vars.currentplayer->prop->pos.z;
bmove0f0cc19c(&sStack16);
bmove0f0cc19c(&coord);
} else {
bmove0f0cc19c(&g_Vars.currentplayer->prop->pos);
}

View File

@ -4,6 +4,7 @@
#include "data.h"
#include "types.h"
#if VERSION >= VERSION_NTSC_1_0
GLOBAL_ASM(
glabel casingsReset
/* f010b20: 3c04800a */ lui $a0,%hi(var8009d0d0)
@ -46,6 +47,50 @@ glabel casingsReset
/* f010ba8: 03e00008 */ jr $ra
/* f010bac: ac4002b4 */ sw $zero,0x2b4($v0)
);
#else
GLOBAL_ASM(
glabel casingsReset
/* f010860: 3c04800a */ lui $a0,0x800a
/* f010864: 24841868 */ addiu $a0,$a0,0x1868
/* f010868: ac800000 */ sw $zero,0x0($a0)
/* f01086c: ac800004 */ sw $zero,0x4($a0)
/* f010870: 3c01800a */ lui $at,0x800a
/* f010874: 3c03800a */ lui $v1,0x800a
/* f010878: 3c02800a */ lui $v0,0x800a
/* f01087c: ac201870 */ sw $zero,0x1870($at)
/* f010880: 24421888 */ addiu $v0,$v0,0x1888
/* f010884: 24631878 */ addiu $v1,$v1,0x1878
.NB0f010888:
/* f010888: 24630004 */ addiu $v1,$v1,0x4
/* f01088c: 1462fffe */ bne $v1,$v0,.NB0f010888
/* f010890: ac60fffc */ sw $zero,-0x4($v1)
/* f010894: 3c02800a */ lui $v0,0x800a
/* f010898: 3c03800a */ lui $v1,0x800a
/* f01089c: 24422240 */ addiu $v0,$v0,0x2240
/* f0108a0: 24631cf0 */ addiu $v1,$v1,0x1cf0
.NB0f0108a4:
/* f0108a4: 24630044 */ addiu $v1,$v1,0x44
/* f0108a8: 0062082b */ sltu $at,$v1,$v0
/* f0108ac: 1420fffd */ bnez $at,.NB0f0108a4
/* f0108b0: ac60fffc */ sw $zero,-0x4($v1)
/* f0108b4: 3c018007 */ lui $at,0x8007
/* f0108b8: 3c03800a */ lui $v1,0x800a
/* f0108bc: 3c04800a */ lui $a0,0x800a
/* f0108c0: ac202be4 */ sw $zero,0x2be4($at)
/* f0108c4: 24841ce8 */ addiu $a0,$a0,0x1ce8
/* f0108c8: 24631888 */ addiu $v1,$v1,0x1888
/* f0108cc: 2402ffff */ addiu $v0,$zero,-1
.NB0f0108d0:
/* f0108d0: 24630038 */ addiu $v1,$v1,0x38
/* f0108d4: 1464fffe */ bne $v1,$a0,.NB0f0108d0
/* f0108d8: ac62ffc8 */ sw $v0,-0x38($v1)
/* f0108dc: 3c02800a */ lui $v0,0x800a
/* f0108e0: 2442e6c0 */ addiu $v0,$v0,-6464
/* f0108e4: ac4002b0 */ sw $zero,0x2b0($v0)
/* f0108e8: 03e00008 */ jr $ra
/* f0108ec: ac4002b4 */ sw $zero,0x2b4($v0)
);
#endif
// Mismatch: Two instructions are swapped
//void casingsReset(void)

View File

@ -859,17 +859,30 @@ char *cheatGetMarquee(struct menuitem *arg0)
if (g_Menus[g_MpPlayerNum].curframe->dialog == &g_CheatsBuddiesMenuDialog
&& g_Menus[g_MpPlayerNum].curframe->focuseditem == &g_CheatsBuddiesMenuItems[0]) {
// Velvet
#if VERSION >= VERSION_NTSC_1_0
sprintf(g_CheatMarqueeString, "%s: %s", langGet(L_MPWEAPONS_143), langGet(L_MPWEAPONS_117)); // "Buddy Available", "Velvet Dark"
return g_CheatMarqueeString;
#else
sprintf(g_StringPointer, "%s: %s", langGet(L_MPWEAPONS_143), langGet(L_MPWEAPONS_117)); // "Buddy Available", "Velvet Dark"
return g_StringPointer;
#endif
}
if (cheatIsUnlocked(cheat_id)) {
// Show cheat name
#if VERSION >= VERSION_NTSC_1_0
sprintf(g_CheatMarqueeString, "%s: %s\n",
g_Menus[g_MpPlayerNum].curframe->dialog == &g_CheatsBuddiesMenuDialog ? langGet(L_MPWEAPONS_143) : langGet(L_MPWEAPONS_136), // "Buddy Available", "Cheat available"
langGet(g_Cheats[cheat_id].nametextid)
);
return g_CheatMarqueeString;
#else
sprintf(g_StringPointer, "%s: %s\n",
g_Menus[g_MpPlayerNum].curframe->dialog == &g_CheatsBuddiesMenuDialog ? langGet(L_MPWEAPONS_143) : langGet(L_MPWEAPONS_136), // "Buddy Available", "Cheat available"
langGet(g_Cheats[cheat_id].nametextid)
);
return g_StringPointer;
#endif
}
// Locked
@ -883,6 +896,7 @@ char *cheatGetMarquee(struct menuitem *arg0)
*ptr = '\0';
if (g_Cheats[cheat_id].flags & CHEATFLAG_COMPLETION) {
#if VERSION >= VERSION_NTSC_1_0
sprintf(g_CheatMarqueeString, "%s %s: %s %s %s",
langGet(L_MPWEAPONS_137), // "Complete"
langGet(g_StageNames[g_Cheats[cheat_id].stage_index].name1),
@ -890,6 +904,15 @@ char *cheatGetMarquee(struct menuitem *arg0)
langGet(L_MPWEAPONS_138), // "for cheat:"
&cheatname
);
#else
sprintf(g_StringPointer, "%s %s: %s %s %s",
langGet(L_MPWEAPONS_137), // "Complete"
langGet(g_StageNames[g_Cheats[cheat_id].stage_index].name1),
langGet(g_StageNames[g_Cheats[cheat_id].stage_index].name2),
langGet(L_MPWEAPONS_138), // "for cheat:"
&cheatname
);
#endif
} else {
// Timed
strcpy(difficultyname, langGet(L_OPTIONS_251 + g_Cheats[cheat_id].difficulty));
@ -901,6 +924,7 @@ char *cheatGetMarquee(struct menuitem *arg0)
*ptr = '\0';
#if VERSION >= VERSION_NTSC_1_0
sprintf(g_CheatMarqueeString, "%s %s: %s %s %s %s %d:%02d %s %s",
langGet(L_MPWEAPONS_137), // "Complete"
langGet(g_StageNames[g_Cheats[cheat_id].stage_index].name1),
@ -913,8 +937,23 @@ char *cheatGetMarquee(struct menuitem *arg0)
langGet(L_MPWEAPONS_138), // "for cheat:"
&cheatname
);
#else
sprintf(g_StringPointer, "%s %s: %s %s %s %s %d:%02d %s %s",
langGet(L_MPWEAPONS_137), // "Complete"
langGet(g_StageNames[g_Cheats[cheat_id].stage_index].name1),
langGet(g_StageNames[g_Cheats[cheat_id].stage_index].name2),
langGet(L_MPWEAPONS_139), // "on"
&difficultyname,
langGet(L_MPWEAPONS_140), // "in under"
g_Cheats[cheat_id].time / 60,
g_Cheats[cheat_id].time % 60,
langGet(L_MPWEAPONS_138), // "for cheat:"
&cheatname
);
#endif
}
#if VERSION >= VERSION_NTSC_1_0
if (g_Cheats[cheat_id].flags & CHEATFLAG_TRANSFERPAK) {
strcat(g_CheatMarqueeString, langGet(L_MPWEAPONS_141)); // " or insert Game Boy ..."
}
@ -922,6 +961,15 @@ char *cheatGetMarquee(struct menuitem *arg0)
strcat(g_CheatMarqueeString, "\n");
return g_CheatMarqueeString;
#else
if (g_Cheats[cheat_id].flags & CHEATFLAG_TRANSFERPAK) {
strcat(g_StringPointer, langGet(L_MPWEAPONS_141)); // " or insert Game Boy ..."
}
strcat(g_StringPointer, "\n");
return g_StringPointer;
#endif
}
// No cheat selected

File diff suppressed because it is too large Load Diff

View File

@ -778,7 +778,7 @@ void chraiExecute(void *entity, s32 proptype)
u8 *cmd = g_Vars.aioffset + g_Vars.ailist;
s32 type = (cmd[0] << 8) + cmd[1];
if (type >= 0 && type <= 0x1e0) {
if (type >= 0 && type < ARRAYCOUNT(g_CommandPointers)) {
if (g_CommandPointers[type]()) {
break;
}
@ -807,7 +807,7 @@ u32 chraiGetCommandLength(u8 *ailist, u32 aioffset)
return (prop - aioffset) + 1;
}
if (type >= 0 && type < NUM_AICOMMANDS) {
if (type >= 0 && type < ARRAYCOUNT(g_CommandLengths)) {
return g_CommandLengths[type];
}

View File

@ -5679,297 +5679,297 @@ glabel var7f1b5944
glabel var7f1b5948
.word 0x3fbbc6a8
.text
/* 7f135b64: 27bdff58 */ addiu $sp,$sp,-168
/* 7f135b68: afbf001c */ sw $ra,0x1c($sp)
/* 7f135b6c: afb00018 */ sw $s0,0x18($sp)
/* 7f135b70: 0fc588b6 */ jal gfxAllocateMatrix
/* 7f135b74: 00808025 */ or $s0,$a0,$zero
/* 7f135b78: afa20064 */ sw $v0,0x64($sp)
/* 7f135b7c: 0fc53637 */ jal func0f1531dc
/* 7f135b80: 00002025 */ or $a0,$zero,$zero
/* 7f135b84: 240e0001 */ addiu $t6,$zero,0x1
/* 7f135b88: 3c018008 */ lui $at,0x8008
/* 7f135b8c: ac2e2320 */ sw $t6,0x2320($at)
/* 7f135b90: 0c002d00 */ jal vi0000b280
/* 7f135b94: 02002025 */ or $a0,$s0,$zero
/* 7f135b98: 0c002cd4 */ jal vi0000b1d0
/* 7f135b9c: 00402025 */ or $a0,$v0,$zero
/* 7f135ba0: 00402025 */ or $a0,$v0,$zero
/* 7f135ba4: 0fc4cc11 */ jal creditsClearFramebuffer
/* 7f135ba8: 240500ff */ addiu $a1,$zero,0xff
/* 7f135bac: 3c0fed00 */ lui $t7,0xed00
/* 7f135bb0: 35ef0078 */ ori $t7,$t7,0x78
/* 7f135bb4: afa20048 */ sw $v0,0x48($sp)
/* 7f135bb8: ac4f0000 */ sw $t7,0x0($v0)
/* 7f135bbc: 0c002f77 */ jal viGetWidth
/* 7f135bc0: 24500008 */ addiu $s0,$v0,0x8
/* 7f135bc4: 0c002f7b */ jal viGetHeight
/* 7f135bc8: a7a20036 */ sh $v0,0x36($sp)
/* 7f135bcc: 2458ffe2 */ addiu $t8,$v0,-30
/* 7f135bd0: 44982000 */ mtc1 $t8,$f4
/* 7f135bd4: 87aa0036 */ lh $t2,0x36($sp)
/* 7f135bd8: 3c014080 */ lui $at,0x4080
/* 7f135bdc: 468021a0 */ cvt.s.w $f6,$f4
/* 7f135be0: 448a8000 */ mtc1 $t2,$f16
/* 7f135be4: 44810000 */ mtc1 $at,$f0
/* 7f135be8: 8fb80048 */ lw $t8,0x48($sp)
/* 7f135bec: 468084a0 */ cvt.s.w $f18,$f16
/* 7f135bf0: 46003202 */ mul.s $f8,$f6,$f0
/* 7f135bf4: 00000000 */ sll $zero,$zero,0x0
/* 7f135bf8: 46009102 */ mul.s $f4,$f18,$f0
/* 7f135bfc: 4600428d */ trunc.w.s $f10,$f8
/* 7f135c00: 4600218d */ trunc.w.s $f6,$f4
/* 7f135c04: 44085000 */ mfc1 $t0,$f10
/* 7f135c08: 440c3000 */ mfc1 $t4,$f6
/* 7f135c0c: 31090fff */ andi $t1,$t0,0xfff
/* 7f135c10: 318d0fff */ andi $t5,$t4,0xfff
/* 7f135c14: 000d7300 */ sll $t6,$t5,0xc
/* 7f135c18: 012e7825 */ or $t7,$t1,$t6
/* 7f135c1c: 0fc4d645 */ jal creditsTick
/* 7f135c20: af0f0004 */ sw $t7,0x4($t8)
/* 7f135c24: 3c07800b */ lui $a3,0x800b
/* 7f135c28: 24e78730 */ addiu $a3,$a3,-30928
/* 7f135c2c: 8ce30000 */ lw $v1,0x0($a3)
/* 7f135c30: 906441f4 */ lbu $a0,0x41f4($v1)
/* 7f135c34: 14800007 */ bnez $a0,.NB7f135c54
/* 7f135c38: 00000000 */ sll $zero,$zero,0x0
/* 7f135c3c: 8c624204 */ lw $v0,0x4204($v1)
/* 7f135c40: 2c41003c */ sltiu $at,$v0,0x3c
/* 7f135c44: 14200003 */ bnez $at,.NB7f135c54
/* 7f135c48: 2c4104b1 */ sltiu $at,$v0,0x4b1
/* 7f135c4c: 142000bd */ bnez $at,.NB7f135f44
/* 7f135c50: 00000000 */ sll $zero,$zero,0x0
.NB7f135c54:
/* 7f135c54: 14800066 */ bnez $a0,.NB7f135df0
/* 7f135c58: 00000000 */ sll $zero,$zero,0x0
/* 7f135c5c: 8c794204 */ lw $t9,0x4204($v1)
/* 7f135c60: 3c058008 */ lui $a1,0x8008
/* 7f135c64: 24a51990 */ addiu $a1,$a1,0x1990
/* 7f135c68: 2f2104b1 */ sltiu $at,$t9,0x4b1
/* 7f135c6c: 14200060 */ bnez $at,.NB7f135df0
/* 7f135c70: 00000000 */ sll $zero,$zero,0x0
/* 7f135c74: 8ca80000 */ lw $t0,0x0($a1)
/* 7f135c78: 240a0001 */ addiu $t2,$zero,0x1
/* 7f135c7c: 24642ef0 */ addiu $a0,$v1,0x2ef0
/* 7f135c80: 15000007 */ bnez $t0,.NB7f135ca0
/* 7f135c84: 3c018008 */ lui $at,0x8008
/* 7f135c88: acaa0000 */ sw $t2,0x0($a1)
/* 7f135c8c: 0fc3c0ba */ jal func0f0f37a4
/* 7f135c90: ac201f30 */ sw $zero,0x1f30($at)
/* 7f135c94: 3c07800b */ lui $a3,0x800b
/* 7f135c98: 24e78730 */ addiu $a3,$a3,-30928
/* 7f135c9c: 8ce30000 */ lw $v1,0x0($a3)
.NB7f135ca0:
/* 7f135ca0: 3c028008 */ lui $v0,0x8008
/* 7f135ca4: 3c0b800a */ lui $t3,0x800a
/* 7f135ca8: 8c421f30 */ lw $v0,0x1f30($v0)
/* 7f135cac: 8d6be700 */ lw $t3,-0x1900($t3)
/* 7f135cb0: 44800000 */ mtc1 $zero,$f0
/* 7f135cb4: 004b1021 */ addu $v0,$v0,$t3
/* 7f135cb8: 2c413841 */ sltiu $at,$v0,0x3841
/* 7f135cbc: 54200003 */ bnezl $at,.NB7f135ccc
/* 7f135cc0: e460343c */ swc1 $f0,0x343c($v1)
/* 7f135cc4: 00001025 */ or $v0,$zero,$zero
/* 7f135cc8: e460343c */ swc1 $f0,0x343c($v1)
.NB7f135ccc:
/* 7f135ccc: 8cec0000 */ lw $t4,0x0($a3)
/* 7f135cd0: 3c017f1b */ lui $at,0x7f1b
/* 7f135cd4: 44829000 */ mtc1 $v0,$f18
/* 7f135cd8: e5803414 */ swc1 $f0,0x3414($t4)
/* 7f135cdc: 8ced0000 */ lw $t5,0x0($a3)
/* 7f135ce0: c428fe74 */ lwc1 $f8,-0x18c($at)
/* 7f135ce4: 3c014f80 */ lui $at,0x4f80
/* 7f135ce8: 46809120 */ cvt.s.w $f4,$f18
/* 7f135cec: e5a83438 */ swc1 $f8,0x3438($t5)
/* 7f135cf0: 8ce30000 */ lw $v1,0x0($a3)
/* 7f135cf4: c46a3438 */ lwc1 $f10,0x3438($v1)
/* 7f135cf8: e46a3410 */ swc1 $f10,0x3410($v1)
/* 7f135cfc: 8ce90000 */ lw $t1,0x0($a3)
/* 7f135d00: e5203440 */ swc1 $f0,0x3440($t1)
/* 7f135d04: 8ce30000 */ lw $v1,0x0($a3)
/* 7f135d08: c4703440 */ lwc1 $f16,0x3440($v1)
/* 7f135d0c: 04410004 */ bgez $v0,.NB7f135d20
/* 7f135d10: e4703418 */ swc1 $f16,0x3418($v1)
/* 7f135d14: 44813000 */ mtc1 $at,$f6
/* 7f135d18: 00000000 */ sll $zero,$zero,0x0
/* 7f135d1c: 46062100 */ add.s $f4,$f4,$f6
.NB7f135d20:
/* 7f135d20: 3c014661 */ lui $at,0x4661
/* 7f135d24: 44814000 */ mtc1 $at,$f8
/* 7f135d28: 3c017f1b */ lui $at,0x7f1b
/* 7f135d2c: c430fe78 */ lwc1 $f16,-0x188($at)
/* 7f135d30: 46082283 */ div.s $f10,$f4,$f8
/* 7f135d34: 3c017f1b */ lui $at,0x7f1b
/* 7f135d38: c426fe7c */ lwc1 $f6,-0x184($at)
/* 7f135d3c: 8cee0000 */ lw $t6,0x0($a3)
/* 7f135d40: 3c017f1b */ lui $at,0x7f1b
/* 7f135d44: 240804b0 */ addiu $t0,$zero,0x4b0
/* 7f135d48: 02002025 */ or $a0,$s0,$zero
/* 7f135d4c: 24060004 */ addiu $a2,$zero,0x4
/* 7f135d50: 46105482 */ mul.s $f18,$f10,$f16
/* 7f135d54: 46123101 */ sub.s $f4,$f6,$f18
/* 7f135d58: e5c43428 */ swc1 $f4,0x3428($t6)
/* 7f135d5c: 8cef0000 */ lw $t7,0x0($a3)
/* 7f135d60: c428fe80 */ lwc1 $f8,-0x180($at)
/* 7f135d64: 3c017f1b */ lui $at,0x7f1b
/* 7f135d68: e5e8342c */ swc1 $f8,0x342c($t7)
/* 7f135d6c: 8cf80000 */ lw $t8,0x0($a3)
/* 7f135d70: c42afe84 */ lwc1 $f10,-0x17c($at)
/* 7f135d74: 3c017f1b */ lui $at,0x7f1b
/* 7f135d78: e70a3430 */ swc1 $f10,0x3430($t8)
/* 7f135d7c: 8cf90000 */ lw $t9,0x0($a3)
/* 7f135d80: c430fe88 */ lwc1 $f16,-0x178($at)
/* 7f135d84: 3c018008 */ lui $at,0x8008
/* 7f135d88: e7303434 */ swc1 $f16,0x3434($t9)
/* 7f135d8c: 8cea0000 */ lw $t2,0x0($a3)
/* 7f135d90: ad482efc */ sw $t0,0x2efc($t2)
/* 7f135d94: 8ce30000 */ lw $v1,0x0($a3)
/* 7f135d98: 906c34a1 */ lbu $t4,0x34a1($v1)
/* 7f135d9c: 358d0002 */ ori $t5,$t4,0x2
/* 7f135da0: a06d34a1 */ sb $t5,0x34a1($v1)
/* 7f135da4: 8ce90000 */ lw $t1,0x0($a3)
/* 7f135da8: ad2034a4 */ sw $zero,0x34a4($t1)
/* 7f135dac: 8ce50000 */ lw $a1,0x0($a3)
/* 7f135db0: ac221f30 */ sw $v0,0x1f30($at)
/* 7f135db4: 0fc3c0fd */ jal func0f0f38b0
/* 7f135db8: 24a52ef0 */ addiu $a1,$a1,0x2ef0
/* 7f135dbc: 3c0e0102 */ lui $t6,0x102
/* 7f135dc0: 35ce0040 */ ori $t6,$t6,0x40
/* 7f135dc4: afa20040 */ sw $v0,0x40($sp)
/* 7f135dc8: ac4e0000 */ sw $t6,0x0($v0)
/* 7f135dcc: 8fa40064 */ lw $a0,0x64($sp)
/* 7f135dd0: 0c013100 */ jal osVirtualToPhysical
/* 7f135dd4: 24500008 */ addiu $s0,$v0,0x8
/* 7f135dd8: 8faf0040 */ lw $t7,0x40($sp)
/* 7f135ddc: 02002025 */ or $a0,$s0,$zero
/* 7f135de0: 240500d8 */ addiu $a1,$zero,0xd8
/* 7f135de4: 0fc4cc11 */ jal creditsClearFramebuffer
/* 7f135de8: ade20004 */ sw $v0,0x4($t7)
/* 7f135dec: 00408025 */ or $s0,$v0,$zero
.NB7f135df0:
/* 7f135df0: 0c005a28 */ jal mtx000159b0
/* 7f135df4: 27a40068 */ addiu $a0,$sp,0x68
/* 7f135df8: 27a40068 */ addiu $a0,$sp,0x68
/* 7f135dfc: 0c005bd1 */ jal mtx00016054
/* 7f135e00: 8fa50064 */ lw $a1,0x64($sp)
/* 7f135e04: 0fc2cb5e */ jal currentPlayerSetMatrix1740
/* 7f135e08: 27a40068 */ addiu $a0,$sp,0x68
/* 7f135e0c: 3c180102 */ lui $t8,0x102
/* 7f135e10: 37180040 */ ori $t8,$t8,0x40
/* 7f135e14: 02001825 */ or $v1,$s0,$zero
/* 7f135e18: ac780000 */ sw $t8,0x0($v1)
/* 7f135e1c: afa3003c */ sw $v1,0x3c($sp)
/* 7f135e20: 8fa40064 */ lw $a0,0x64($sp)
/* 7f135e24: 0c013100 */ jal osVirtualToPhysical
/* 7f135e28: 26100008 */ addiu $s0,$s0,0x8
/* 7f135e2c: 8fa3003c */ lw $v1,0x3c($sp)
/* 7f135e30: 3c01c47a */ lui $at,0xc47a
/* 7f135e34: 44810000 */ mtc1 $at,$f0
/* 7f135e38: ac620004 */ sw $v0,0x4($v1)
/* 7f135e3c: 3c01c2c8 */ lui $at,0xc2c8
/* 7f135e40: 44803000 */ mtc1 $zero,$f6
/* 7f135e44: 44809000 */ mtc1 $zero,$f18
/* 7f135e48: 44812000 */ mtc1 $at,$f4
/* 7f135e4c: 02002025 */ or $a0,$s0,$zero
/* 7f135e50: e7a00058 */ swc1 $f0,0x58($sp)
/* 7f135e54: e7a0005c */ swc1 $f0,0x5c($sp)
/* 7f135e58: e7a00060 */ swc1 $f0,0x60($sp)
/* 7f135e5c: e7a6004c */ swc1 $f6,0x4c($sp)
/* 7f135e60: e7b20050 */ swc1 $f18,0x50($sp)
/* 7f135e64: 0fc4caad */ jal creditsRenderBackground
/* 7f135e68: e7a40054 */ swc1 $f4,0x54($sp)
/* 7f135e6c: 0fc4cf66 */ jal creditsRenderSprites
/* 7f135e70: 00402025 */ or $a0,$v0,$zero
/* 7f135e74: 3c07800b */ lui $a3,0x800b
/* 7f135e78: 24e78730 */ addiu $a3,$a3,-30928
/* 7f135e7c: 8ce30000 */ lw $v1,0x0($a3)
/* 7f135e80: 00408025 */ or $s0,$v0,$zero
/* 7f135e84: 906441f4 */ lbu $a0,0x41f4($v1)
/* 7f135e88: 10800009 */ beqz $a0,.NB7f135eb0
/* 7f135e8c: 00000000 */ sll $zero,$zero,0x0
/* 7f135e90: 0fc347cf */ jal func0f0d479c
/* 7f135e94: 00402025 */ or $a0,$v0,$zero
/* 7f135e98: 0fc4d3bd */ jal func0f13a3ec
/* 7f135e9c: 00402025 */ or $a0,$v0,$zero
/* 7f135ea0: 3c03800b */ lui $v1,0x800b
/* 7f135ea4: 8c638730 */ lw $v1,-0x78d0($v1)
/* 7f135ea8: 00408025 */ or $s0,$v0,$zero
/* 7f135eac: 906441f4 */ lbu $a0,0x41f4($v1)
.NB7f135eb0:
/* 7f135eb0: 14800024 */ bnez $a0,.NB7f135f44
/* 7f135eb4: 00000000 */ sll $zero,$zero,0x0
/* 7f135eb8: 8c624204 */ lw $v0,0x4204($v1)
/* 7f135ebc: 00002825 */ or $a1,$zero,$zero
/* 7f135ec0: 240300ff */ addiu $v1,$zero,0xff
/* 7f135ec4: 2c41003c */ sltiu $at,$v0,0x3c
/* 7f135ec8: 5020000b */ beqzl $at,.NB7f135ef8
/* 7f135ecc: 2c4104b1 */ sltiu $at,$v0,0x4b1
/* 7f135ed0: 00430019 */ multu $v0,$v1
/* 7f135ed4: 2401003c */ addiu $at,$zero,0x3c
/* 7f135ed8: 00002812 */ mflo $a1
/* 7f135edc: 00000000 */ sll $zero,$zero,0x0
/* 7f135ee0: 00000000 */ sll $zero,$zero,0x0
/* 7f135ee4: 00a1001b */ divu $zero,$a1,$at
/* 7f135ee8: 00002812 */ mflo $a1
/* 7f135eec: 00000000 */ sll $zero,$zero,0x0
/* 7f135ef0: 00000000 */ sll $zero,$zero,0x0
/* 7f135ef4: 2c4104b1 */ sltiu $at,$v0,0x4b1
.NB7f135ef8:
/* 7f135ef8: 1420000d */ bnez $at,.NB7f135f30
/* 7f135efc: 240300ff */ addiu $v1,$zero,0xff
/* 7f135f00: 2c4104ec */ sltiu $at,$v0,0x4ec
/* 7f135f04: 1020000a */ beqz $at,.NB7f135f30
/* 7f135f08: 2448fb50 */ addiu $t0,$v0,-1200
/* 7f135f0c: 01030019 */ multu $t0,$v1
/* 7f135f10: 2401003c */ addiu $at,$zero,0x3c
/* 7f135f14: 00005012 */ mflo $t2
/* 7f135f18: 00000000 */ sll $zero,$zero,0x0
/* 7f135f1c: 00000000 */ sll $zero,$zero,0x0
/* 7f135f20: 0141001b */ divu $zero,$t2,$at
/* 7f135f24: 00005812 */ mflo $t3
/* 7f135f28: 006b2823 */ subu $a1,$v1,$t3
/* 7f135f2c: 00000000 */ sll $zero,$zero,0x0
.NB7f135f30:
/* 7f135f30: 10a00004 */ beqz $a1,.NB7f135f44
/* 7f135f34: 00000000 */ sll $zero,$zero,0x0
/* 7f135f38: 0fc4cc11 */ jal creditsClearFramebuffer
/* 7f135f3c: 02002025 */ or $a0,$s0,$zero
/* 7f135f40: 00408025 */ or $s0,$v0,$zero
.NB7f135f44:
/* 7f135f44: 3c0c8008 */ lui $t4,0x8008
/* 7f135f48: 8d8c1998 */ lw $t4,0x1998($t4)
/* 7f135f4c: 00002025 */ or $a0,$zero,$zero
/* 7f135f50: 51800018 */ beqzl $t4,.NB7f135fb4
/* 7f135f54: 8fbf001c */ lw $ra,0x1c($sp)
/* 7f135f58: 0c005790 */ jal joyGetButtons
/* 7f135f5c: 3405ffff */ dli $a1,0xffff
/* 7f135f60: 10400013 */ beqz $v0,.NB7f135fb0
/* 7f135f64: 240d0026 */ addiu $t5,$zero,0x26
/* 7f135f68: 3c018006 */ lui $at,0x8006
/* 7f135f6c: ac2d49f4 */ sw $t5,0x49f4($at)
/* 7f135f70: 0fc06821 */ jal setNumPlayers
/* 7f135f74: 24040001 */ addiu $a0,$zero,0x1
/* 7f135f78: 3c048006 */ lui $a0,0x8006
/* 7f135f7c: 0c003c56 */ jal mainChangeToStage
/* 7f135f80: 8c8449f4 */ lw $a0,0x49f4($a0)
/* 7f135f84: 3c01800a */ lui $at,0x800a
/* 7f135f88: ac20e954 */ sw $zero,-0x16ac($at)
/* 7f135f8c: 2402ffff */ addiu $v0,$zero,-1
/* 7f135f90: 3c01800a */ lui $at,0x800a
/* 7f135f94: ac22e958 */ sw $v0,-0x16a8($at)
/* 7f135f98: 3c01800a */ lui $at,0x800a
/* 7f135f9c: ac22e95c */ sw $v0,-0x16a4($at)
/* 7f135fa0: 0fc59ed6 */ jal lvSetDifficulty
/* 7f135fa4: 00002025 */ or $a0,$zero,$zero
/* 7f135fa8: 0c00281a */ jal viBlack
/* 7f135fac: 24040001 */ addiu $a0,$zero,0x1
.NB7f135fb0:
/* 7f135fb0: 8fbf001c */ lw $ra,0x1c($sp)
.NB7f135fb4:
/* 7f135fb4: 02001025 */ or $v0,$s0,$zero
/* 7f135fb8: 8fb00018 */ lw $s0,0x18($sp)
/* 7f135fbc: 03e00008 */ jr $ra
/* 7f135fc0: 27bd00a8 */ addiu $sp,$sp,0xa8
/* f135b64: 27bdff58 */ addiu $sp,$sp,-168
/* f135b68: afbf001c */ sw $ra,0x1c($sp)
/* f135b6c: afb00018 */ sw $s0,0x18($sp)
/* f135b70: 0fc588b6 */ jal gfxAllocateMatrix
/* f135b74: 00808025 */ or $s0,$a0,$zero
/* f135b78: afa20064 */ sw $v0,0x64($sp)
/* f135b7c: 0fc53637 */ jal func0f1531dc
/* f135b80: 00002025 */ or $a0,$zero,$zero
/* f135b84: 240e0001 */ addiu $t6,$zero,0x1
/* f135b88: 3c018008 */ lui $at,0x8008
/* f135b8c: ac2e2320 */ sw $t6,0x2320($at)
/* f135b90: 0c002d00 */ jal vi0000b280
/* f135b94: 02002025 */ or $a0,$s0,$zero
/* f135b98: 0c002cd4 */ jal vi0000b1d0
/* f135b9c: 00402025 */ or $a0,$v0,$zero
/* f135ba0: 00402025 */ or $a0,$v0,$zero
/* f135ba4: 0fc4cc11 */ jal creditsClearFramebuffer
/* f135ba8: 240500ff */ addiu $a1,$zero,0xff
/* f135bac: 3c0fed00 */ lui $t7,0xed00
/* f135bb0: 35ef0078 */ ori $t7,$t7,0x78
/* f135bb4: afa20048 */ sw $v0,0x48($sp)
/* f135bb8: ac4f0000 */ sw $t7,0x0($v0)
/* f135bbc: 0c002f77 */ jal viGetWidth
/* f135bc0: 24500008 */ addiu $s0,$v0,0x8
/* f135bc4: 0c002f7b */ jal viGetHeight
/* f135bc8: a7a20036 */ sh $v0,0x36($sp)
/* f135bcc: 2458ffe2 */ addiu $t8,$v0,-30
/* f135bd0: 44982000 */ mtc1 $t8,$f4
/* f135bd4: 87aa0036 */ lh $t2,0x36($sp)
/* f135bd8: 3c014080 */ lui $at,0x4080
/* f135bdc: 468021a0 */ cvt.s.w $f6,$f4
/* f135be0: 448a8000 */ mtc1 $t2,$f16
/* f135be4: 44810000 */ mtc1 $at,$f0
/* f135be8: 8fb80048 */ lw $t8,0x48($sp)
/* f135bec: 468084a0 */ cvt.s.w $f18,$f16
/* f135bf0: 46003202 */ mul.s $f8,$f6,$f0
/* f135bf4: 00000000 */ sll $zero,$zero,0x0
/* f135bf8: 46009102 */ mul.s $f4,$f18,$f0
/* f135bfc: 4600428d */ trunc.w.s $f10,$f8
/* f135c00: 4600218d */ trunc.w.s $f6,$f4
/* f135c04: 44085000 */ mfc1 $t0,$f10
/* f135c08: 440c3000 */ mfc1 $t4,$f6
/* f135c0c: 31090fff */ andi $t1,$t0,0xfff
/* f135c10: 318d0fff */ andi $t5,$t4,0xfff
/* f135c14: 000d7300 */ sll $t6,$t5,0xc
/* f135c18: 012e7825 */ or $t7,$t1,$t6
/* f135c1c: 0fc4d645 */ jal creditsTick
/* f135c20: af0f0004 */ sw $t7,0x4($t8)
/* f135c24: 3c07800b */ lui $a3,0x800b
/* f135c28: 24e78730 */ addiu $a3,$a3,-30928
/* f135c2c: 8ce30000 */ lw $v1,0x0($a3)
/* f135c30: 906441f4 */ lbu $a0,0x41f4($v1)
/* f135c34: 14800007 */ bnez $a0,.NB0f135c54
/* f135c38: 00000000 */ sll $zero,$zero,0x0
/* f135c3c: 8c624204 */ lw $v0,0x4204($v1)
/* f135c40: 2c41003c */ sltiu $at,$v0,0x3c
/* f135c44: 14200003 */ bnez $at,.NB0f135c54
/* f135c48: 2c4104b1 */ sltiu $at,$v0,0x4b1
/* f135c4c: 142000bd */ bnez $at,.NB0f135f44
/* f135c50: 00000000 */ sll $zero,$zero,0x0
.NB0f135c54:
/* f135c54: 14800066 */ bnez $a0,.NB0f135df0
/* f135c58: 00000000 */ sll $zero,$zero,0x0
/* f135c5c: 8c794204 */ lw $t9,0x4204($v1)
/* f135c60: 3c058008 */ lui $a1,0x8008
/* f135c64: 24a51990 */ addiu $a1,$a1,0x1990
/* f135c68: 2f2104b1 */ sltiu $at,$t9,0x4b1
/* f135c6c: 14200060 */ bnez $at,.NB0f135df0
/* f135c70: 00000000 */ sll $zero,$zero,0x0
/* f135c74: 8ca80000 */ lw $t0,0x0($a1)
/* f135c78: 240a0001 */ addiu $t2,$zero,0x1
/* f135c7c: 24642ef0 */ addiu $a0,$v1,0x2ef0
/* f135c80: 15000007 */ bnez $t0,.NB0f135ca0
/* f135c84: 3c018008 */ lui $at,0x8008
/* f135c88: acaa0000 */ sw $t2,0x0($a1)
/* f135c8c: 0fc3c0ba */ jal func0f0f37a4
/* f135c90: ac201f30 */ sw $zero,0x1f30($at)
/* f135c94: 3c07800b */ lui $a3,0x800b
/* f135c98: 24e78730 */ addiu $a3,$a3,-30928
/* f135c9c: 8ce30000 */ lw $v1,0x0($a3)
.NB0f135ca0:
/* f135ca0: 3c028008 */ lui $v0,0x8008
/* f135ca4: 3c0b800a */ lui $t3,0x800a
/* f135ca8: 8c421f30 */ lw $v0,0x1f30($v0)
/* f135cac: 8d6be700 */ lw $t3,-0x1900($t3)
/* f135cb0: 44800000 */ mtc1 $zero,$f0
/* f135cb4: 004b1021 */ addu $v0,$v0,$t3
/* f135cb8: 2c413841 */ sltiu $at,$v0,0x3841
/* f135cbc: 54200003 */ bnezl $at,.NB0f135ccc
/* f135cc0: e460343c */ swc1 $f0,0x343c($v1)
/* f135cc4: 00001025 */ or $v0,$zero,$zero
/* f135cc8: e460343c */ swc1 $f0,0x343c($v1)
.NB0f135ccc:
/* f135ccc: 8cec0000 */ lw $t4,0x0($a3)
/* f135cd0: 3c017f1b */ lui $at,0x7f1b
/* f135cd4: 44829000 */ mtc1 $v0,$f18
/* f135cd8: e5803414 */ swc1 $f0,0x3414($t4)
/* f135cdc: 8ced0000 */ lw $t5,0x0($a3)
/* f135ce0: c428fe74 */ lwc1 $f8,-0x18c($at)
/* f135ce4: 3c014f80 */ lui $at,0x4f80
/* f135ce8: 46809120 */ cvt.s.w $f4,$f18
/* f135cec: e5a83438 */ swc1 $f8,0x3438($t5)
/* f135cf0: 8ce30000 */ lw $v1,0x0($a3)
/* f135cf4: c46a3438 */ lwc1 $f10,0x3438($v1)
/* f135cf8: e46a3410 */ swc1 $f10,0x3410($v1)
/* f135cfc: 8ce90000 */ lw $t1,0x0($a3)
/* f135d00: e5203440 */ swc1 $f0,0x3440($t1)
/* f135d04: 8ce30000 */ lw $v1,0x0($a3)
/* f135d08: c4703440 */ lwc1 $f16,0x3440($v1)
/* f135d0c: 04410004 */ bgez $v0,.NB0f135d20
/* f135d10: e4703418 */ swc1 $f16,0x3418($v1)
/* f135d14: 44813000 */ mtc1 $at,$f6
/* f135d18: 00000000 */ sll $zero,$zero,0x0
/* f135d1c: 46062100 */ add.s $f4,$f4,$f6
.NB0f135d20:
/* f135d20: 3c014661 */ lui $at,0x4661
/* f135d24: 44814000 */ mtc1 $at,$f8
/* f135d28: 3c017f1b */ lui $at,0x7f1b
/* f135d2c: c430fe78 */ lwc1 $f16,-0x188($at)
/* f135d30: 46082283 */ div.s $f10,$f4,$f8
/* f135d34: 3c017f1b */ lui $at,0x7f1b
/* f135d38: c426fe7c */ lwc1 $f6,-0x184($at)
/* f135d3c: 8cee0000 */ lw $t6,0x0($a3)
/* f135d40: 3c017f1b */ lui $at,0x7f1b
/* f135d44: 240804b0 */ addiu $t0,$zero,0x4b0
/* f135d48: 02002025 */ or $a0,$s0,$zero
/* f135d4c: 24060004 */ addiu $a2,$zero,0x4
/* f135d50: 46105482 */ mul.s $f18,$f10,$f16
/* f135d54: 46123101 */ sub.s $f4,$f6,$f18
/* f135d58: e5c43428 */ swc1 $f4,0x3428($t6)
/* f135d5c: 8cef0000 */ lw $t7,0x0($a3)
/* f135d60: c428fe80 */ lwc1 $f8,-0x180($at)
/* f135d64: 3c017f1b */ lui $at,0x7f1b
/* f135d68: e5e8342c */ swc1 $f8,0x342c($t7)
/* f135d6c: 8cf80000 */ lw $t8,0x0($a3)
/* f135d70: c42afe84 */ lwc1 $f10,-0x17c($at)
/* f135d74: 3c017f1b */ lui $at,0x7f1b
/* f135d78: e70a3430 */ swc1 $f10,0x3430($t8)
/* f135d7c: 8cf90000 */ lw $t9,0x0($a3)
/* f135d80: c430fe88 */ lwc1 $f16,-0x178($at)
/* f135d84: 3c018008 */ lui $at,0x8008
/* f135d88: e7303434 */ swc1 $f16,0x3434($t9)
/* f135d8c: 8cea0000 */ lw $t2,0x0($a3)
/* f135d90: ad482efc */ sw $t0,0x2efc($t2)
/* f135d94: 8ce30000 */ lw $v1,0x0($a3)
/* f135d98: 906c34a1 */ lbu $t4,0x34a1($v1)
/* f135d9c: 358d0002 */ ori $t5,$t4,0x2
/* f135da0: a06d34a1 */ sb $t5,0x34a1($v1)
/* f135da4: 8ce90000 */ lw $t1,0x0($a3)
/* f135da8: ad2034a4 */ sw $zero,0x34a4($t1)
/* f135dac: 8ce50000 */ lw $a1,0x0($a3)
/* f135db0: ac221f30 */ sw $v0,0x1f30($at)
/* f135db4: 0fc3c0fd */ jal func0f0f38b0
/* f135db8: 24a52ef0 */ addiu $a1,$a1,0x2ef0
/* f135dbc: 3c0e0102 */ lui $t6,0x102
/* f135dc0: 35ce0040 */ ori $t6,$t6,0x40
/* f135dc4: afa20040 */ sw $v0,0x40($sp)
/* f135dc8: ac4e0000 */ sw $t6,0x0($v0)
/* f135dcc: 8fa40064 */ lw $a0,0x64($sp)
/* f135dd0: 0c013100 */ jal osVirtualToPhysical
/* f135dd4: 24500008 */ addiu $s0,$v0,0x8
/* f135dd8: 8faf0040 */ lw $t7,0x40($sp)
/* f135ddc: 02002025 */ or $a0,$s0,$zero
/* f135de0: 240500d8 */ addiu $a1,$zero,0xd8
/* f135de4: 0fc4cc11 */ jal creditsClearFramebuffer
/* f135de8: ade20004 */ sw $v0,0x4($t7)
/* f135dec: 00408025 */ or $s0,$v0,$zero
.NB0f135df0:
/* f135df0: 0c005a28 */ jal mtx000159b0
/* f135df4: 27a40068 */ addiu $a0,$sp,0x68
/* f135df8: 27a40068 */ addiu $a0,$sp,0x68
/* f135dfc: 0c005bd1 */ jal mtx00016054
/* f135e00: 8fa50064 */ lw $a1,0x64($sp)
/* f135e04: 0fc2cb5e */ jal currentPlayerSetMatrix1740
/* f135e08: 27a40068 */ addiu $a0,$sp,0x68
/* f135e0c: 3c180102 */ lui $t8,0x102
/* f135e10: 37180040 */ ori $t8,$t8,0x40
/* f135e14: 02001825 */ or $v1,$s0,$zero
/* f135e18: ac780000 */ sw $t8,0x0($v1)
/* f135e1c: afa3003c */ sw $v1,0x3c($sp)
/* f135e20: 8fa40064 */ lw $a0,0x64($sp)
/* f135e24: 0c013100 */ jal osVirtualToPhysical
/* f135e28: 26100008 */ addiu $s0,$s0,0x8
/* f135e2c: 8fa3003c */ lw $v1,0x3c($sp)
/* f135e30: 3c01c47a */ lui $at,0xc47a
/* f135e34: 44810000 */ mtc1 $at,$f0
/* f135e38: ac620004 */ sw $v0,0x4($v1)
/* f135e3c: 3c01c2c8 */ lui $at,0xc2c8
/* f135e40: 44803000 */ mtc1 $zero,$f6
/* f135e44: 44809000 */ mtc1 $zero,$f18
/* f135e48: 44812000 */ mtc1 $at,$f4
/* f135e4c: 02002025 */ or $a0,$s0,$zero
/* f135e50: e7a00058 */ swc1 $f0,0x58($sp)
/* f135e54: e7a0005c */ swc1 $f0,0x5c($sp)
/* f135e58: e7a00060 */ swc1 $f0,0x60($sp)
/* f135e5c: e7a6004c */ swc1 $f6,0x4c($sp)
/* f135e60: e7b20050 */ swc1 $f18,0x50($sp)
/* f135e64: 0fc4caad */ jal creditsRenderBackground
/* f135e68: e7a40054 */ swc1 $f4,0x54($sp)
/* f135e6c: 0fc4cf66 */ jal creditsRenderSprites
/* f135e70: 00402025 */ or $a0,$v0,$zero
/* f135e74: 3c07800b */ lui $a3,0x800b
/* f135e78: 24e78730 */ addiu $a3,$a3,-30928
/* f135e7c: 8ce30000 */ lw $v1,0x0($a3)
/* f135e80: 00408025 */ or $s0,$v0,$zero
/* f135e84: 906441f4 */ lbu $a0,0x41f4($v1)
/* f135e88: 10800009 */ beqz $a0,.NB0f135eb0
/* f135e8c: 00000000 */ sll $zero,$zero,0x0
/* f135e90: 0fc347cf */ jal func0f0d479c
/* f135e94: 00402025 */ or $a0,$v0,$zero
/* f135e98: 0fc4d3bd */ jal func0f13a3ec
/* f135e9c: 00402025 */ or $a0,$v0,$zero
/* f135ea0: 3c03800b */ lui $v1,0x800b
/* f135ea4: 8c638730 */ lw $v1,-0x78d0($v1)
/* f135ea8: 00408025 */ or $s0,$v0,$zero
/* f135eac: 906441f4 */ lbu $a0,0x41f4($v1)
.NB0f135eb0:
/* f135eb0: 14800024 */ bnez $a0,.NB0f135f44
/* f135eb4: 00000000 */ sll $zero,$zero,0x0
/* f135eb8: 8c624204 */ lw $v0,0x4204($v1)
/* f135ebc: 00002825 */ or $a1,$zero,$zero
/* f135ec0: 240300ff */ addiu $v1,$zero,0xff
/* f135ec4: 2c41003c */ sltiu $at,$v0,0x3c
/* f135ec8: 5020000b */ beqzl $at,.NB0f135ef8
/* f135ecc: 2c4104b1 */ sltiu $at,$v0,0x4b1
/* f135ed0: 00430019 */ multu $v0,$v1
/* f135ed4: 2401003c */ addiu $at,$zero,0x3c
/* f135ed8: 00002812 */ mflo $a1
/* f135edc: 00000000 */ sll $zero,$zero,0x0
/* f135ee0: 00000000 */ sll $zero,$zero,0x0
/* f135ee4: 00a1001b */ divu $zero,$a1,$at
/* f135ee8: 00002812 */ mflo $a1
/* f135eec: 00000000 */ sll $zero,$zero,0x0
/* f135ef0: 00000000 */ sll $zero,$zero,0x0
/* f135ef4: 2c4104b1 */ sltiu $at,$v0,0x4b1
.NB0f135ef8:
/* f135ef8: 1420000d */ bnez $at,.NB0f135f30
/* f135efc: 240300ff */ addiu $v1,$zero,0xff
/* f135f00: 2c4104ec */ sltiu $at,$v0,0x4ec
/* f135f04: 1020000a */ beqz $at,.NB0f135f30
/* f135f08: 2448fb50 */ addiu $t0,$v0,-1200
/* f135f0c: 01030019 */ multu $t0,$v1
/* f135f10: 2401003c */ addiu $at,$zero,0x3c
/* f135f14: 00005012 */ mflo $t2
/* f135f18: 00000000 */ sll $zero,$zero,0x0
/* f135f1c: 00000000 */ sll $zero,$zero,0x0
/* f135f20: 0141001b */ divu $zero,$t2,$at
/* f135f24: 00005812 */ mflo $t3
/* f135f28: 006b2823 */ subu $a1,$v1,$t3
/* f135f2c: 00000000 */ sll $zero,$zero,0x0
.NB0f135f30:
/* f135f30: 10a00004 */ beqz $a1,.NB0f135f44
/* f135f34: 00000000 */ sll $zero,$zero,0x0
/* f135f38: 0fc4cc11 */ jal creditsClearFramebuffer
/* f135f3c: 02002025 */ or $a0,$s0,$zero
/* f135f40: 00408025 */ or $s0,$v0,$zero
.NB0f135f44:
/* f135f44: 3c0c8008 */ lui $t4,0x8008
/* f135f48: 8d8c1998 */ lw $t4,0x1998($t4)
/* f135f4c: 00002025 */ or $a0,$zero,$zero
/* f135f50: 51800018 */ beqzl $t4,.NB0f135fb4
/* f135f54: 8fbf001c */ lw $ra,0x1c($sp)
/* f135f58: 0c005790 */ jal joyGetButtons
/* f135f5c: 3405ffff */ dli $a1,0xffff
/* f135f60: 10400013 */ beqz $v0,.NB0f135fb0
/* f135f64: 240d0026 */ addiu $t5,$zero,0x26
/* f135f68: 3c018006 */ lui $at,0x8006
/* f135f6c: ac2d49f4 */ sw $t5,0x49f4($at)
/* f135f70: 0fc06821 */ jal setNumPlayers
/* f135f74: 24040001 */ addiu $a0,$zero,0x1
/* f135f78: 3c048006 */ lui $a0,0x8006
/* f135f7c: 0c003c56 */ jal mainChangeToStage
/* f135f80: 8c8449f4 */ lw $a0,0x49f4($a0)
/* f135f84: 3c01800a */ lui $at,0x800a
/* f135f88: ac20e954 */ sw $zero,-0x16ac($at)
/* f135f8c: 2402ffff */ addiu $v0,$zero,-1
/* f135f90: 3c01800a */ lui $at,0x800a
/* f135f94: ac22e958 */ sw $v0,-0x16a8($at)
/* f135f98: 3c01800a */ lui $at,0x800a
/* f135f9c: ac22e95c */ sw $v0,-0x16a4($at)
/* f135fa0: 0fc59ed6 */ jal lvSetDifficulty
/* f135fa4: 00002025 */ or $a0,$zero,$zero
/* f135fa8: 0c00281a */ jal viBlack
/* f135fac: 24040001 */ addiu $a0,$zero,0x1
.NB0f135fb0:
/* f135fb0: 8fbf001c */ lw $ra,0x1c($sp)
.NB0f135fb4:
/* f135fb4: 02001025 */ or $v0,$s0,$zero
/* f135fb8: 8fb00018 */ lw $s0,0x18($sp)
/* f135fbc: 03e00008 */ jr $ra
/* f135fc0: 27bd00a8 */ addiu $sp,$sp,0xa8
);
#endif

View File

@ -5,9 +5,9 @@
#include "data.h"
#include "types.h"
s32 var80075d60 = 0x00000000;
u32 var80075d64 = 0x00000000;
u32 var80075d68 = 0x00000000;
s32 var80078120nb = 0x00000000;
u32 var80078124nb = 0x00000000;
u32 var80078128nb = 0x00000000;
u32 var8007812cnb = 0x00000000;
u32 var80078130nb = 0x00000000;

View File

@ -5,7 +5,7 @@
#include "data.h"
#include "types.h"
s32 var800769d0nb[] = {
s32 var80078150nb[] = {
15,
30,
45,
@ -17,7 +17,7 @@ s32 var800769d0nb[] = {
-1,
};
u32 var800769f4nb[] = {
u32 var80078174nb[] = {
8, 2,
8, 3,
8, 4,
@ -254,11 +254,11 @@ char *g_DebugMenuLabels[] = {
"-",
};
s32 var80076f04nb[] = {
s32 var80078684nb[] = {
0, -1,
};
u32 var80076f0cnb[] = {
u32 var8007868cnb[] = {
8, 2,
8, 3,
8, 4,
@ -271,35 +271,111 @@ u32 var80076f0cnb[] = {
8, 11,
};
u32 var80076f5cnb[] = {
0x00000000, 0x00000000, 0x00000000, 0x00000002,
0x00000002, 0x00000002, 0x00000002, 0x00000000,
0x00000001, 0x00000001, 0x00000001, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000001, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000001, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x80500000, 0x00040000,
0x7f000000, 0x7f100000, 0x80600000, 0x00040000,
0x70000000, 0x70100000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0xbf800000, 0x00000000,
0x3f800000, 0x00000000, 0x00000000, 0x3f800000,
0x00000000, 0x00000000, 0x3f800000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x3f800000,
0x00000000,
};
u32 var800786dcnb = 0x00000000;
u32 var800786e0nb = 0x00000000;
u32 var800786e4nb = 0x00000000;
s32 var80075d60 = 2;
u32 var80075d64 = 2;
u32 var80075d68 = 2;
u32 var800786f4nb = 0x00000002;
u32 var800786f8nb = 0x00000000;
u32 var800786fcnb = 0x00000001;
u32 var80078700nb = 0x00000001;
u32 var80078704nb = 0x00000001;
u32 var80078708nb = 0x00000000;
u32 var8007870cnb = 0x00000000;
u32 var80078710nb = 0x00000000;
u32 var80078714nb = 0x00000000;
u32 var80078718nb = 0x00000000;
u32 var8007871cnb = 0x00000000;
u32 var80078720nb = 0x00000000;
u32 var80078724nb = 0x00000000;
u32 var80078728nb = 0x00000000;
u32 var8007872cnb = 0x00000000;
u32 var80078730nb = 0x00000000;
u32 var80078734nb = 0x00000000;
u32 var80078738nb = 0x00000000;
u32 var8007873cnb = 0x00000000;
u32 var80078740nb = 0x00000000;
u32 var80078744nb = 0x00000000;
u32 var80078748nb = 0x00000000;
u32 var8007874cnb = 0x00000000;
u32 var80078750nb = 0x00000000;
u32 var80078754nb = 0x00000000;
u32 var80078758nb = 0x00000000;
u32 var8007875cnb = 0x00000000;
u32 var80078760nb = 0x00000000;
u32 var80078764nb = 0x00000000;
u32 var80078768nb = 0x00000000;
u32 var8007876cnb = 0x00000000;
u32 var80078770nb = 0x00000000;
u32 var80078774nb = 0x00000000;
u32 var80078778nb = 0x00000000;
u32 var8007877cnb = 0x00000000;
u32 var80078780nb = 0x00000000;
u32 var80078784nb = 0x00000000;
u32 var80078788nb = 0x00000000;
u32 var8007878cnb = 0x00000000;
u32 var80078790nb = 0x00000000;
u32 var80078794nb = 0x00000001;
u32 var80078798nb = 0x00000000;
u32 var8007879cnb = 0x00000000;
u32 var800787a0nb = 0x00000000;
u32 var800787a4nb = 0x00000000;
u32 var800787a8nb = 0x00000000;
u32 var800787acnb = 0x00000000;
u32 var800787b0nb = 0x00000000;
u32 var800787b4nb = 0x00000000;
u32 var800787b8nb = 0x00000000;
u32 var800787bcnb = 0x00000000;
u32 var800787c0nb = 0x00000000;
u32 var800787c4nb = 0x00000001;
u32 var800787c8nb = 0x00000000;
u32 var800787ccnb = 0x00000000;
u32 var800787d0nb = 0x00000000;
u32 var800787d4nb = 0x00000000;
u32 var800787d8nb = 0x00000000;
u32 var800787dcnb = 0x00000000;
u32 var800787e0nb = 0x00000000;
u32 var800787e4nb = 0x00000000;
u32 var800787e8nb = 0x00000000;
u32 var800787ecnb = 0x00000000;
u32 var800787f0nb = 0x00000000;
u32 var800787f4nb = 0x80500000;
u32 var800787f8nb = 0x00040000;
u32 var800787fcnb = 0x7f000000;
u32 var80078800nb = 0x7f100000;
u32 var80078804nb = 0x80600000;
u32 var80078808nb = 0x00040000;
u32 var8007880cnb = 0x70000000;
u32 var80078810nb = 0x70100000;
u32 var80078814nb = 0x00000000;
u32 var80078818nb = 0x00000000;
u32 var8007881cnb = 0x00000000;
u32 var80078820nb = 0x00000000;
u32 var80078824nb = 0x00000000;
u32 var80078828nb = 0x00000000;
u32 var8007882cnb = 0x00000000;
u32 var80078830nb = 0x00000000;
u32 var80078834nb = 0xbf800000;
u32 var80078838nb = 0x00000000;
u32 var8007883cnb = 0x3f800000;
u32 var80078840nb = 0x00000000;
u32 var80078844nb = 0x00000000;
u32 var80078848nb = 0x3f800000;
u32 var8007884cnb = 0x00000000;
u32 var80078850nb = 0x00000000;
u32 var80078854nb = 0x3f800000;
u32 var80078858nb = 0x00000000;
u32 var8007885cnb = 0x00000000;
u32 var80078860nb = 0x00000000;
u32 var80078864nb = 0x00000000;
u32 var80078868nb = 0x00000000;
u32 var8007886cnb = 0x00000000;
u32 var80078870nb = 0x00000000;
u32 var80078874nb = 0x00000000;
u32 var80078878nb = 0x3f800000;
u32 var8007887cnb = 0x00000000;
const char var7f1af378nb[] = "main";
const char var7f1af380nb[] = "scene %d";

View File

@ -1142,7 +1142,12 @@ void roomSetLightsFaulty(s32 roomnum, s32 chance)
}
}
#if VERSION >= VERSION_NTSC_1_0
g_Rooms[roomnum].unk4c = 50;
#else
g_Rooms[roomnum].unk4c = 15;
#endif
g_Rooms[roomnum].flags |= ROOMFLAG_DIRTY;
}
@ -2240,6 +2245,7 @@ void roomSetLighting(s32 roomnum, s32 operation, u8 arg2, u8 arg3, u8 arg4)
}
}
#if VERSION >= VERSION_NTSC_1_0
GLOBAL_ASM(
glabel func0f002ef8
/* f002ef8: 0004c0c0 */ sll $t8,$a0,0x3
@ -2558,6 +2564,326 @@ glabel func0f002ef8
/* f0033a8: 03e00008 */ jr $ra
/* f0033ac: 00000000 */ nop
);
#else
GLOBAL_ASM(
glabel func0f002ef8
/* f002ef8: 0004c0c0 */ sll $t8,$a0,0x3
/* f002efc: 0304c021 */ addu $t8,$t8,$a0
/* f002f00: 3c0e800a */ lui $t6,%hi(g_Rooms)
/* f002f04: 8dce4928 */ lw $t6,%lo(g_Rooms)($t6)
/* f002f08: 27bdff28 */ addiu $sp,$sp,-216
/* f002f0c: 0018c080 */ sll $t8,$t8,0x2
/* f002f10: 0304c023 */ subu $t8,$t8,$a0
/* f002f14: 0018c080 */ sll $t8,$t8,0x2
/* f002f18: afbf0044 */ sw $ra,0x44($sp)
/* f002f1c: afa400d8 */ sw $a0,0xd8($sp)
/* f002f20: afa500dc */ sw $a1,0xdc($sp)
/* f002f24: 01d8c821 */ addu $t9,$t6,$t8
/* f002f28: 972a000a */ lhu $t2,0xa($t9)
/* f002f2c: 3c0f800a */ lui $t7,%hi(g_BgLightsFileData)
/* f002f30: 8def4cd8 */ lw $t7,%lo(g_BgLightsFileData)($t7)
/* f002f34: 01456021 */ addu $t4,$t2,$a1
/* f002f38: 000c6900 */ sll $t5,$t4,0x4
/* f002f3c: 01ac6821 */ addu $t5,$t5,$t4
/* f002f40: 000d6840 */ sll $t5,$t5,0x1
/* f002f44: 01af1821 */ addu $v1,$t5,$t7
/* f002f48: 80780005 */ lb $t8,0x5($v1)
/* f002f4c: 07020004 */ bltzl $t8,.L0f002f60
/* f002f50: 94790004 */ lhu $t9,0x4($v1)
/* f002f54: 10000112 */ b .L0f0033a0
/* f002f58: 00001025 */ or $v0,$zero,$zero
/* f002f5c: 94790004 */ lhu $t9,0x4($v1)
.L0f002f60:
/* f002f60: 00195ec0 */ sll $t3,$t9,0x1b
/* f002f64: 05610102 */ bgez $t3,.L0f003370
/* f002f68: 00000000 */ nop
/* f002f6c: 0c004b70 */ jal random
/* f002f70: afa300d4 */ sw $v1,0xd4($sp)
/* f002f74: 304c0007 */ andi $t4,$v0,0x7
/* f002f78: 15800005 */ bnez $t4,.L0f002f90
/* f002f7c: 8fa300d4 */ lw $v1,0xd4($sp)
/* f002f80: 906d0005 */ lbu $t5,0x5($v1)
/* f002f84: 31afffef */ andi $t7,$t5,0xffef
/* f002f88: 10000104 */ b .L0f00339c
/* f002f8c: a06f0005 */ sb $t7,0x5($v1)
.L0f002f90:
/* f002f90: 0c004b70 */ jal random
/* f002f94: afa300d4 */ sw $v1,0xd4($sp)
/* f002f98: 304e0001 */ andi $t6,$v0,0x1
/* f002f9c: 15c000ff */ bnez $t6,.L0f00339c
/* f002fa0: 8fa300d4 */ lw $v1,0xd4($sp)
/* f002fa4: 0c004b70 */ jal random
/* f002fa8: afa300d4 */ sw $v1,0xd4($sp)
/* f002fac: 44822000 */ mtc1 $v0,$f4
/* f002fb0: 04410005 */ bgez $v0,.L0f002fc8
/* f002fb4: 468021a0 */ cvt.s.w $f6,$f4
/* f002fb8: 3c014f80 */ lui $at,0x4f80
/* f002fbc: 44814000 */ mtc1 $at,$f8
/* f002fc0: 00000000 */ nop
/* f002fc4: 46083180 */ add.s $f6,$f6,$f8
.L0f002fc8:
/* f002fc8: 3c012f80 */ lui $at,0x2f80
/* f002fcc: 44815000 */ mtc1 $at,$f10
/* f002fd0: 3c013f80 */ lui $at,0x3f80
/* f002fd4: 44814000 */ mtc1 $at,$f8
/* f002fd8: 460a3002 */ mul.s $f0,$f6,$f10
/* f002fdc: 46000100 */ add.s $f4,$f0,$f0
/* f002fe0: 46082301 */ sub.s $f12,$f4,$f8
/* f002fe4: 0c004b70 */ jal random
/* f002fe8: e7ac0070 */ swc1 $f12,0x70($sp)
/* f002fec: 44823000 */ mtc1 $v0,$f6
/* f002ff0: 8fa300d4 */ lw $v1,0xd4($sp)
/* f002ff4: c7ac0070 */ lwc1 $f12,0x70($sp)
/* f002ff8: 04410005 */ bgez $v0,.L0f003010
/* f002ffc: 468032a0 */ cvt.s.w $f10,$f6
/* f003000: 3c014f80 */ lui $at,0x4f80
/* f003004: 44812000 */ mtc1 $at,$f4
/* f003008: 00000000 */ nop
/* f00300c: 46045280 */ add.s $f10,$f10,$f4
.L0f003010:
/* f003010: 3c012f80 */ lui $at,0x2f80
/* f003014: 44814000 */ mtc1 $at,$f8
/* f003018: 3c013f80 */ lui $at,0x3f80
/* f00301c: 44812000 */ mtc1 $at,$f4
/* f003020: 46085002 */ mul.s $f0,$f10,$f8
/* f003024: 2409ffff */ addiu $t1,$zero,-1
/* f003028: 3c077f1a */ lui $a3,%hi(var7f1a7bb4)
/* f00302c: 24e77bb4 */ addiu $a3,$a3,%lo(var7f1a7bb4)
/* f003030: 2406060a */ addiu $a2,$zero,0x622
/* f003034: 46000180 */ add.s $f6,$f0,$f0
/* f003038: 46043081 */ sub.s $f2,$f6,$f4
/* f00303c: e7a2006c */ swc1 $f2,0x6c($sp)
/* f003040: 8468000a */ lh $t0,0xa($v1)
/* f003044: 84780010 */ lh $t8,0x10($v1)
/* f003048: 846f0016 */ lh $t7,0x16($v1)
/* f00304c: 846a0012 */ lh $t2,0x12($v1)
/* f003050: 0308c823 */ subu $t9,$t8,$t0
/* f003054: 44995000 */ mtc1 $t9,$f10
/* f003058: 01e87023 */ subu $t6,$t7,$t0
/* f00305c: 448e2000 */ mtc1 $t6,$f4
/* f003060: 468053a0 */ cvt.s.w $f14,$f10
/* f003064: 8464000c */ lh $a0,0xc($v1)
/* f003068: 846c0014 */ lh $t4,0x14($v1)
/* f00306c: 8465000e */ lh $a1,0xe($v1)
/* f003070: 01445823 */ subu $t3,$t2,$a0
/* f003074: 468022a0 */ cvt.s.w $f10,$f4
/* f003078: 448b4000 */ mtc1 $t3,$f8
/* f00307c: 01856823 */ subu $t5,$t4,$a1
/* f003080: 448d3000 */ mtc1 $t5,$f6
/* f003084: 460e6382 */ mul.s $f14,$f12,$f14
/* f003088: e7aa00bc */ swc1 $f10,0xbc($sp)
/* f00308c: 84780018 */ lh $t8,0x18($v1)
/* f003090: 46804420 */ cvt.s.w $f16,$f8
/* f003094: 0304c823 */ subu $t9,$t8,$a0
/* f003098: 44994000 */ mtc1 $t9,$f8
/* f00309c: 27a40098 */ addiu $a0,$sp,0x98
/* f0030a0: 468034a0 */ cvt.s.w $f18,$f6
/* f0030a4: 46106402 */ mul.s $f16,$f12,$f16
/* f0030a8: 00000000 */ nop
/* f0030ac: 46126482 */ mul.s $f18,$f12,$f18
/* f0030b0: c7ac006c */ lwc1 $f12,0x6c($sp)
/* f0030b4: 468041a0 */ cvt.s.w $f6,$f8
/* f0030b8: e7a600c0 */ swc1 $f6,0xc0($sp)
/* f0030bc: 846a001a */ lh $t2,0x1a($v1)
/* f0030c0: 01455823 */ subu $t3,$t2,$a1
/* f0030c4: 448b2000 */ mtc1 $t3,$f4
/* f0030c8: 27a500a4 */ addiu $a1,$sp,0xa4
/* f0030cc: 46802220 */ cvt.s.w $f8,$f4
/* f0030d0: 460a1102 */ mul.s $f4,$f2,$f10
/* f0030d4: 44885000 */ mtc1 $t0,$f10
/* f0030d8: 46066002 */ mul.s $f0,$f12,$f6
/* f0030dc: e7a800c4 */ swc1 $f8,0xc4($sp)
/* f0030e0: 46086082 */ mul.s $f2,$f12,$f8
/* f0030e4: e7a400bc */ swc1 $f4,0xbc($sp)
/* f0030e8: c7a800bc */ lwc1 $f8,0xbc($sp)
/* f0030ec: 46805120 */ cvt.s.w $f4,$f10
/* f0030f0: 460e2180 */ add.s $f6,$f4,$f14
/* f0030f4: 46083280 */ add.s $f10,$f6,$f8
/* f0030f8: e7aa0098 */ swc1 $f10,0x98($sp)
/* f0030fc: 846c000a */ lh $t4,0xa($v1)
/* f003100: 448c2000 */ mtc1 $t4,$f4
/* f003104: 00000000 */ nop
/* f003108: 468021a0 */ cvt.s.w $f6,$f4
/* f00310c: 46103200 */ add.s $f8,$f6,$f16
/* f003110: 46004280 */ add.s $f10,$f8,$f0
/* f003114: e7aa009c */ swc1 $f10,0x9c($sp)
/* f003118: 846d000a */ lh $t5,0xa($v1)
/* f00311c: 448d2000 */ mtc1 $t5,$f4
/* f003120: 00000000 */ nop
/* f003124: 468021a0 */ cvt.s.w $f6,$f4
/* f003128: 46123200 */ add.s $f8,$f6,$f18
/* f00312c: 46024280 */ add.s $f10,$f8,$f2
/* f003130: e7aa00a0 */ swc1 $f10,0xa0($sp)
/* f003134: 806f0007 */ lb $t7,0x7($v1)
/* f003138: 448f2000 */ mtc1 $t7,$f4
/* f00313c: 00000000 */ nop
/* f003140: 468021a0 */ cvt.s.w $f6,$f4
/* f003144: e7a6008c */ swc1 $f6,0x8c($sp)
/* f003148: 806e0008 */ lb $t6,0x8($v1)
/* f00314c: 448e4000 */ mtc1 $t6,$f8
/* f003150: 00000000 */ nop
/* f003154: 468042a0 */ cvt.s.w $f10,$f8
/* f003158: c7a8008c */ lwc1 $f8,0x8c($sp)
/* f00315c: e7aa0090 */ swc1 $f10,0x90($sp)
/* f003160: 80780009 */ lb $t8,0x9($v1)
/* f003164: 46004287 */ neg.s $f10,$f8
/* f003168: afa90068 */ sw $t1,0x68($sp)
/* f00316c: 44982000 */ mtc1 $t8,$f4
/* f003170: e7aa0080 */ swc1 $f10,0x80($sp)
/* f003174: 468021a0 */ cvt.s.w $f6,$f4
/* f003178: c7a40090 */ lwc1 $f4,0x90($sp)
/* f00317c: e7a60094 */ swc1 $f6,0x94($sp)
/* f003180: c7a80094 */ lwc1 $f8,0x94($sp)
/* f003184: 46002187 */ neg.s $f6,$f4
/* f003188: 46004287 */ neg.s $f10,$f8
/* f00318c: e7a60084 */ swc1 $f6,0x84($sp)
/* f003190: 0fc5dc59 */ jal func0f177164
/* f003194: e7aa0088 */ swc1 $f10,0x88($sp)
/* f003198: c7b200a4 */ lwc1 $f18,0xa4($sp)
/* f00319c: c7b00080 */ lwc1 $f16,0x80($sp)
/* f0031a0: c7ae00a8 */ lwc1 $f14,0xa8($sp)
/* f0031a4: c7ac0084 */ lwc1 $f12,0x84($sp)
/* f0031a8: 46109400 */ add.s $f16,$f18,$f16
/* f0031ac: c7b200ac */ lwc1 $f18,0xac($sp)
/* f0031b0: c7aa0088 */ lwc1 $f10,0x88($sp)
/* f0031b4: 460c7300 */ add.s $f12,$f14,$f12
/* f0031b8: 27a400a4 */ addiu $a0,$sp,0xa4
/* f0031bc: 3c077f1a */ lui $a3,%hi(var7f1a7bc0)
/* f0031c0: 460a9280 */ add.s $f10,$f18,$f10
/* f0031c4: e7b000a4 */ swc1 $f16,0xa4($sp)
/* f0031c8: e7ac00a8 */ swc1 $f12,0xa8($sp)
/* f0031cc: 00802825 */ or $a1,$a0,$zero
/* f0031d0: e7aa00ac */ swc1 $f10,0xac($sp)
/* f0031d4: 2406060c */ addiu $a2,$zero,0x624
/* f0031d8: 0fc5dc59 */ jal func0f177164
/* f0031dc: 24e77bc0 */ addiu $a3,$a3,%lo(var7f1a7bc0)
/* f0031e0: 8fa400d8 */ lw $a0,0xd8($sp)
/* f0031e4: 0004c880 */ sll $t9,$a0,0x2
/* f0031e8: 0324c821 */ addu $t9,$t9,$a0
/* f0031ec: 0019c880 */ sll $t9,$t9,0x2
/* f0031f0: 0c004b70 */ jal random
/* f0031f4: afb90058 */ sw $t9,0x58($sp)
/* f0031f8: 30430003 */ andi $v1,$v0,0x3
/* f0031fc: 1060000a */ beqz $v1,.L0f003228
/* f003200: 8fa90068 */ lw $t1,0x68($sp)
/* f003204: 24010001 */ addiu $at,$zero,0x1
/* f003208: 10610009 */ beq $v1,$at,.L0f003230
/* f00320c: 24010002 */ addiu $at,$zero,0x2
/* f003210: 10610009 */ beq $v1,$at,.L0f003238
/* f003214: 24010003 */ addiu $at,$zero,0x3
/* f003218: 5061000a */ beql $v1,$at,.L0f003244
/* f00321c: 24090014 */ addiu $t1,$zero,0x14
/* f003220: 10000009 */ b .L0f003248
/* f003224: 8fa400d8 */ lw $a0,0xd8($sp)
.L0f003228:
/* f003228: 10000006 */ b .L0f003244
/* f00322c: 24090011 */ addiu $t1,$zero,0x11
.L0f003230:
/* f003230: 10000004 */ b .L0f003244
/* f003234: 24090012 */ addiu $t1,$zero,0x12
.L0f003238:
/* f003238: 10000002 */ b .L0f003244
/* f00323c: 24090013 */ addiu $t1,$zero,0x13
/* f003240: 24090014 */ addiu $t1,$zero,0x14
.L0f003244:
/* f003244: 8fa400d8 */ lw $a0,0xd8($sp)
.L0f003248:
/* f003248: 8fa500dc */ lw $a1,0xdc($sp)
/* f00324c: 27a60074 */ addiu $a2,$sp,0x74
/* f003250: 0fc0037f */ jal lightGetBboxCentre
/* f003254: afa90068 */ sw $t1,0x68($sp)
/* f003258: 3c0b800a */ lui $t3,%hi(g_BgRooms)
/* f00325c: 8d6b4cc4 */ lw $t3,%lo(g_BgRooms)($t3)
/* f003260: 8fac0058 */ lw $t4,0x58($sp)
/* f003264: c7a60074 */ lwc1 $f6,0x74($sp)
/* f003268: c7a40078 */ lwc1 $f4,0x78($sp)
/* f00326c: 016c1821 */ addu $v1,$t3,$t4
/* f003270: c4680004 */ lwc1 $f8,0x4($v1)
/* f003274: 8fa90068 */ lw $t1,0x68($sp)
/* f003278: 27ad008c */ addiu $t5,$sp,0x8c
/* f00327c: 46083280 */ add.s $f10,$f6,$f8
/* f003280: 8fa400d8 */ lw $a0,0xd8($sp)
/* f003284: 00002825 */ or $a1,$zero,$zero
/* f003288: 27a60074 */ addiu $a2,$sp,0x74
/* f00328c: e7aa0074 */ swc1 $f10,0x74($sp)
/* f003290: c4660008 */ lwc1 $f6,0x8($v1)
/* f003294: c7aa007c */ lwc1 $f10,0x7c($sp)
/* f003298: 27a700a4 */ addiu $a3,$sp,0xa4
/* f00329c: 46062200 */ add.s $f8,$f4,$f6
/* f0032a0: e7a80078 */ swc1 $f8,0x78($sp)
/* f0032a4: c464000c */ lwc1 $f4,0xc($v1)
/* f0032a8: afad0010 */ sw $t5,0x10($sp)
/* f0032ac: afa90014 */ sw $t1,0x14($sp)
/* f0032b0: 46045180 */ add.s $f6,$f10,$f4
/* f0032b4: 0fc4be7c */ jal sparksCreate
/* f0032b8: e7a6007c */ swc1 $f6,0x7c($sp)
/* f0032bc: 0c004b70 */ jal random
/* f0032c0: 00000000 */ nop
/* f0032c4: 304f0003 */ andi $t7,$v0,0x3
/* f0032c8: 15e00008 */ bnez $t7,.L0f0032ec
/* f0032cc: 8fae00d8 */ lw $t6,0xd8($sp)
/* f0032d0: 2418ffff */ addiu $t8,$zero,-1
/* f0032d4: a7ae0064 */ sh $t6,0x64($sp)
/* f0032d8: a7b80066 */ sh $t8,0x66($sp)
/* f0032dc: 27a40074 */ addiu $a0,$sp,0x74
/* f0032e0: 27a50064 */ addiu $a1,$sp,0x64
/* f0032e4: 0fc4ba08 */ jal smokeCreateSimple
/* f0032e8: 24060007 */ addiu $a2,$zero,0x7
.L0f0032ec:
/* f0032ec: 8fa400d8 */ lw $a0,0xd8($sp)
/* f0032f0: 24050040 */ addiu $a1,$zero,0x40
/* f0032f4: 0fc010e3 */ jal roomAdjustLighting
/* f0032f8: 24060050 */ addiu $a2,$zero,0x50
/* f0032fc: 0fc25480 */ jal func0f095200
/* f003300: 00000000 */ nop
/* f003304: 3c01bf80 */ lui $at,0xbf80
/* f003308: 44810000 */ mtc1 $at,$f0
/* f00330c: 8faf00d8 */ lw $t7,0xd8($sp)
/* f003310: 00023400 */ sll $a2,$v0,0x10
/* f003314: 0006cc03 */ sra $t9,$a2,0x10
/* f003318: 240affff */ addiu $t2,$zero,-1
/* f00331c: 240b0400 */ addiu $t3,$zero,0x400
/* f003320: 240c0010 */ addiu $t4,$zero,0x10
/* f003324: 27ad0074 */ addiu $t5,$sp,0x74
/* f003328: afad0020 */ sw $t5,0x20($sp)
/* f00332c: afac001c */ sw $t4,0x1c($sp)
/* f003330: afab0014 */ sw $t3,0x14($sp)
/* f003334: afaa0010 */ sw $t2,0x10($sp)
/* f003338: 03203025 */ or $a2,$t9,$zero
/* f00333c: 00002025 */ or $a0,$zero,$zero
/* f003340: 00002825 */ or $a1,$zero,$zero
/* f003344: 2407ffff */ addiu $a3,$zero,-1
/* f003348: afa00018 */ sw $zero,0x18($sp)
/* f00334c: afa00028 */ sw $zero,0x28($sp)
/* f003350: afaf002c */ sw $t7,0x2c($sp)
/* f003354: e7a00024 */ swc1 $f0,0x24($sp)
/* f003358: e7a00030 */ swc1 $f0,0x30($sp)
/* f00335c: e7a00034 */ swc1 $f0,0x34($sp)
/* f003360: 0fc24e7e */ jal func0f0939f8
/* f003364: e7a00038 */ swc1 $f0,0x38($sp)
/* f003368: 1000000d */ b .L0f0033a0
/* f00336c: 24020001 */ addiu $v0,$zero,0x1
.L0f003370:
/* f003370: 0c004b70 */ jal random
/* f003374: afa300d4 */ sw $v1,0xd4($sp)
/* f003378: 24010050 */ addiu $at,$zero,0x50
/* f00337c: 0041001b */ divu $zero,$v0,$at
/* f003380: 00007010 */ mfhi $t6
/* f003384: 8fa300d4 */ lw $v1,0xd4($sp)
/* f003388: 55c00005 */ bnezl $t6,.L0f0033a0
/* f00338c: 00001025 */ or $v0,$zero,$zero
/* f003390: 90790005 */ lbu $t9,0x5($v1)
/* f003394: 372a0010 */ ori $t2,$t9,0x10
/* f003398: a06a0005 */ sb $t2,0x5($v1)
.L0f00339c:
/* f00339c: 00001025 */ or $v0,$zero,$zero
.L0f0033a0:
/* f0033a0: 8fbf0044 */ lw $ra,0x44($sp)
/* f0033a4: 27bd00d8 */ addiu $sp,$sp,0xd8
/* f0033a8: 03e00008 */ jr $ra
/* f0033ac: 00000000 */ nop
);
#endif
void lightingTick(void)
{

View File

@ -921,7 +921,7 @@ s32 menudialogSolo2PEndscreenFailed(s32 operation, struct menudialog *dialog, un
struct menuinputs *inputs = data->dialog2.inputs;
if (inputs->select || inputs->back || inputs->start) {
g_Menus[g_MpPlayerNum].endscreen.unke1c = 6;
g_Menus[g_MpPlayerNum].endscreen.unke1c = VERSION >= VERSION_NTSC_1_0 ? 6 : 3;
}
if (g_Menus[g_MpPlayerNum].endscreen.unke1c) {

View File

@ -2035,7 +2035,10 @@ const char var7f1b1dd8nb[] = "ob.c";
#endif
struct fileinfo g_FileInfo[NUM_FILES];
#if VERSION >= VERSION_NTSC_1_0
u32 var800aa570;
#endif
void *filetable[] = {
/*0x0000*/ NULL,
@ -4198,6 +4201,7 @@ glabel func0f166eb4
);
#endif
#if VERSION >= VERSION_NTSC_1_0
GLOBAL_ASM(
glabel func0f166f74
/* f166f74: 27bdffd0 */ addiu $sp,$sp,-48
@ -4233,6 +4237,43 @@ glabel func0f166f74
/* f166fe8: 03e00008 */ jr $ra
/* f166fec: 27bd0030 */ addiu $sp,$sp,0x30
);
#else
GLOBAL_ASM(
glabel func0f166f74
/* f166f74: 27bdffd0 */ addiu $sp,$sp,-48
/* f166f78: afb20020 */ sw $s2,0x20($sp)
/* f166f7c: afb1001c */ sw $s1,0x1c($sp)
/* f166f80: afb40028 */ sw $s4,0x28($sp)
/* f166f84: afb00018 */ sw $s0,0x18($sp)
/* f166f88: 3c11800a */ lui $s1,%hi(g_FileInfo)
/* f166f8c: 3c128008 */ lui $s2,%hi(filetable)
/* f166f90: afbf002c */ sw $ra,0x2c($sp)
/* f166f94: afb30024 */ sw $s3,0x24($sp)
/* f166f98: 26522060 */ addiu $s2,$s2,%lo(filetable)
/* f166f9c: 26316680 */ addiu $s1,$s1,%lo(g_FileInfo)
/* f166fa0: 24100001 */ addiu $s0,$zero,0x1
/* f166fa4: 241407de */ addiu $s4,$zero,0x7dd
/* f166fa8: 001070c0 */ sll $t6,$s0,0x3
.L0f166fac:
/* f166fac: 022e1021 */ addu $v0,$s1,$t6
/* f166fb0: 00107880 */ sll $t7,$s0,0x2
/* f166fb4: ac400000 */ sw $zero,0x0($v0)
/* f166fb8: ac400004 */ sw $zero,0x4($v0)
/* f166fbc: 0fc59b95 */ jal fileGetRomSizeByTableAddress
/* f166fc0: 024f2021 */ addu $a0,$s2,$t7
/* f166fc4: 26100001 */ addiu $s0,$s0,0x1
/* f166fc8: 5614fff8 */ bnel $s0,$s4,.L0f166fac
/* f166fcc: 001070c0 */ sll $t6,$s0,0x3
/* f166fd0: 8fbf002c */ lw $ra,0x2c($sp)
/* f166fd4: 8fb00018 */ lw $s0,0x18($sp)
/* f166fd8: 8fb1001c */ lw $s1,0x1c($sp)
/* f166fdc: 8fb20020 */ lw $s2,0x20($sp)
/* f166fe0: 8fb30024 */ lw $s3,0x24($sp)
/* f166fe4: 8fb40028 */ lw $s4,0x28($sp)
/* f166fe8: 03e00008 */ jr $ra
/* f166fec: 27bd0030 */ addiu $sp,$sp,0x30
);
#endif
//void func0f166f74(void)
//{
@ -4617,7 +4658,8 @@ void func0f1672f0(u8 arg0)
{
s32 i;
for (i = 1; i < 2014; i++) {
// Minus 1 because the last entry in the file table is just a marker
for (i = 1; i < ARRAYCOUNT(filetable) - 1; i++) {
if (arg0 == 4) {
g_FileInfo[i].size = 0;
}

View File

@ -112,16 +112,15 @@ void filelistsTick(void)
var80075bf4 = true;
}
i = 0;
updateall = false;
for (; i < 5; i++) {
#if VERSION >= VERSION_NTSC_1_0
for (i = 0, updateall = false; i < 5; i++) {
if (pak0f1167d8(i) && var800a2330[i] != pakGetUnk264(i)) {
updateall = true;
var800a2330[i] = pakGetUnk264(i);
}
}
#else
for (i = 0, updateall = false; i < 5; i++) {
s32 tmp = pakGetUnk264(i);
pak0f11698c(i);
@ -134,8 +133,8 @@ void filelistsTick(void)
updateall = true;
var800a2330[i] = tmp;
}
#endif
}
#endif
for (i = 0; i < 4; i++) {
if (g_FileLists[i] != NULL) {
@ -273,6 +272,7 @@ void filelistUpdate(struct filelist *list)
}
}
#if VERSION >= VERSION_NTSC_1_0
GLOBAL_ASM(
glabel pheadAllocateTextures
/* f111260: 000470c0 */ sll $t6,$a0,0x3
@ -377,6 +377,112 @@ glabel pheadAllocateTextures
/* f1113d8: 03e00008 */ jr $ra
/* f1113dc: 00000000 */ nop
);
#else
GLOBAL_ASM(
glabel pheadAllocateTextures
/* f10b6bc: 000470c0 */ sll $t6,$a0,0x3
/* f10b6c0: 01c47023 */ subu $t6,$t6,$a0
/* f10b6c4: 000e70c0 */ sll $t6,$t6,0x3
/* f10b6c8: 01c47023 */ subu $t6,$t6,$a0
/* f10b6cc: 000e7100 */ sll $t6,$t6,0x4
/* f10b6d0: 27bdffe0 */ addiu $sp,$sp,-32
/* f10b6d4: 01c47023 */ subu $t6,$t6,$a0
/* f10b6d8: 3c0f800a */ lui $t7,0x800a
/* f10b6dc: afb00018 */ sw $s0,0x18($sp)
/* f10b6e0: 25ef27c0 */ addiu $t7,$t7,0x27c0
/* f10b6e4: 000e7080 */ sll $t6,$t6,0x2
/* f10b6e8: 01cf8021 */ addu $s0,$t6,$t7
/* f10b6ec: 8e030db4 */ lw $v1,0xdb4($s0)
/* f10b6f0: afbf001c */ sw $ra,0x1c($sp)
/* f10b6f4: 14600017 */ bnez $v1,.NB0f10b754
/* f10b6f8: 00000000 */ sll $zero,$zero,0x0
/* f10b6fc: 54a00011 */ bnezl $a1,.NB0f10b744
/* f10b700: 92090d9c */ lbu $t1,0xd9c($s0)
/* f10b704: 92190d9c */ lbu $t9,0xd9c($s0)
/* f10b708: 24040890 */ addiu $a0,$zero,0x890
/* f10b70c: 37280040 */ ori $t0,$t9,0x40
/* f10b710: 0fc5c691 */ jal align16
/* f10b714: a2080d9c */ sb $t0,0xd9c($s0)
/* f10b718: 00402025 */ or $a0,$v0,$zero
/* f10b71c: 0fc5636f */ jal func0f15e5b8
/* f10b720: 24050001 */ addiu $a1,$zero,0x1
/* f10b724: 0fc5c691 */ jal align16
/* f10b728: 24040890 */ addiu $a0,$zero,0x890
/* f10b72c: 0c004cc9 */ jal func00012ab0
/* f10b730: 00402025 */ or $a0,$v0,$zero
/* f10b734: ae020db4 */ sw $v0,0xdb4($s0)
/* f10b738: 10000006 */ beqz $zero,.NB0f10b754
/* f10b73c: 00401825 */ or $v1,$v0,$zero
/* f10b740: 92090d9c */ lbu $t1,0xd9c($s0)
.NB0f10b744:
/* f10b744: ae050db4 */ sw $a1,0xdb4($s0)
/* f10b748: 00a01825 */ or $v1,$a1,$zero
/* f10b74c: 312affbf */ andi $t2,$t1,0xffbf
/* f10b750: a20a0d9c */ sb $t2,0xd9c($s0)
.NB0f10b754:
/* f10b754: 14600006 */ bnez $v1,.NB0f10b770
/* f10b758: 3c047f1b */ lui $a0,0x7f1b
/* f10b75c: 3c057f1b */ lui $a1,0x7f1b
/* f10b760: 24a5d6d4 */ addiu $a1,$a1,-10540
/* f10b764: 2484d6c8 */ addiu $a0,$a0,-10552
/* f10b768: 0c003068 */ jal faultAssert
/* f10b76c: 240601c2 */ addiu $a2,$zero,0x1c2
.NB0f10b770:
/* f10b770: 00001025 */ or $v0,$zero,$zero
/* f10b774: 24030080 */ addiu $v1,$zero,0x80
.NB0f10b778:
/* f10b778: 8e0b0db4 */ lw $t3,0xdb4($s0)
/* f10b77c: 01626021 */ addu $t4,$t3,$v0
/* f10b780: ad800800 */ sw $zero,0x800($t4)
/* f10b784: 8e0d0db4 */ lw $t5,0xdb4($s0)
/* f10b788: 01a27021 */ addu $t6,$t5,$v0
/* f10b78c: 24420008 */ addiu $v0,$v0,0x8
/* f10b790: 1443fff9 */ bne $v0,$v1,.NB0f10b778
/* f10b794: a5c00804 */ sh $zero,0x804($t6)
/* f10b798: 8e0f0db4 */ lw $t7,0xdb4($s0)
/* f10b79c: 24020010 */ addiu $v0,$zero,0x10
/* f10b7a0: 24090004 */ addiu $t1,$zero,0x4
/* f10b7a4: ade00880 */ sw $zero,0x880($t7)
/* f10b7a8: 8e180db4 */ lw $t8,0xdb4($s0)
/* f10b7ac: 240d0001 */ addiu $t5,$zero,0x1
/* f10b7b0: 00001825 */ or $v1,$zero,$zero
/* f10b7b4: a3020888 */ sb $v0,0x888($t8)
/* f10b7b8: 8e190db4 */ lw $t9,0xdb4($s0)
/* f10b7bc: 24050010 */ addiu $a1,$zero,0x10
/* f10b7c0: 24040080 */ addiu $a0,$zero,0x80
/* f10b7c4: a3220889 */ sb $v0,0x889($t9)
/* f10b7c8: 8e080db4 */ lw $t0,0xdb4($s0)
/* f10b7cc: a100088a */ sb $zero,0x88a($t0)
/* f10b7d0: 8e0a0db4 */ lw $t2,0xdb4($s0)
/* f10b7d4: a149088b */ sb $t1,0x88b($t2)
/* f10b7d8: 8e0b0db4 */ lw $t3,0xdb4($s0)
/* f10b7dc: a160088c */ sb $zero,0x88c($t3)
/* f10b7e0: 8e0c0db4 */ lw $t4,0xdb4($s0)
/* f10b7e4: a180088d */ sb $zero,0x88d($t4)
/* f10b7e8: 8e0e0db4 */ lw $t6,0xdb4($s0)
/* f10b7ec: a1cd088e */ sb $t5,0x88e($t6)
/* f10b7f0: 8e0f0db4 */ lw $t7,0xdb4($s0)
/* f10b7f4: a1e0088f */ sb $zero,0x88f($t7)
/* f10b7f8: 00001025 */ or $v0,$zero,$zero
.NB0f10b7fc:
/* f10b7fc: 8e190db4 */ lw $t9,0xdb4($s0)
/* f10b800: 000341c0 */ sll $t0,$v1,0x7
/* f10b804: 0040c025 */ or $t8,$v0,$zero
/* f10b808: 03284821 */ addu $t1,$t9,$t0
/* f10b80c: 01225021 */ addu $t2,$t1,$v0
/* f10b810: 24420001 */ addiu $v0,$v0,0x1
/* f10b814: 1444fff9 */ bne $v0,$a0,.NB0f10b7fc
/* f10b818: a1580000 */ sb $t8,0x0($t2)
/* f10b81c: 24630001 */ addiu $v1,$v1,0x1
/* f10b820: 5465fff6 */ bnel $v1,$a1,.NB0f10b7fc
/* f10b824: 00001025 */ or $v0,$zero,$zero
/* f10b828: 8fbf001c */ lw $ra,0x1c($sp)
/* f10b82c: 8fb00018 */ lw $s0,0x18($sp)
/* f10b830: 27bd0020 */ addiu $sp,$sp,0x20
/* f10b834: 03e00008 */ jr $ra
/* f10b838: 00000000 */ sll $zero,$zero,0x0
);
#endif
const char var7f1b3a08[] = "tc != NULL";
const char var7f1b3a14[] = "gamefile.c";

View File

@ -32,14 +32,12 @@ struct fileguid g_GameFileGuid;
struct menudialog g_FilemgrCopyMenuDialog;
struct menudialog g_FilemgrConfirmDeleteMenuDialog;
struct menudialog g_FilemgrDeleteMenuDialog;
struct menudialog g_FilemgrDuplicateNameMenuDialog;
struct menudialog g_FilemgrEnterNameMenuDialog;
struct menudialog g_FilemgrErrorMenuDialog;
struct menudialog g_FilemgrFileInUseMenuDialog;
struct menudialog g_FilemgrFileLostMenuDialog;
struct menudialog g_FilemgrFileSavedMenuDialog;
struct menudialog g_FilemgrFileSelectMenuDialog;
struct menudialog g_FilemgrRenameMenuDialog;
struct menudialog g_FilemgrSaveElsewhereMenuDialog;
struct menudialog g_FilemgrSaveErrorMenuDialog;
struct menudialog g_FilemgrSelectLocationMenuDialog;
@ -48,6 +46,11 @@ struct menudialog g_PakGameNotesMenuDialog;
struct menudialog g_PakNotOriginalMenuDialog;
struct pakdata *g_EditingPak;
#if VERSION >= VERSION_NTSC_1_0
struct menudialog g_FilemgrDuplicateNameMenuDialog;
struct menudialog g_FilemgrRenameMenuDialog;
#endif
#if VERSION >= VERSION_PAL_FINAL
s32 func0f1088d0pf(s32 operation, struct menuitem *item, union handlerdata *data);
@ -213,7 +216,11 @@ void filemgrSetDevice1BySerial(s32 deviceserial)
if (device >= 0) {
g_Menus[g_MpPlayerNum].fm.device1 = device;
} else {
#if VERSION >= VERSION_NTSC_1_0
g_Menus[g_MpPlayerNum].fm.device1 = SAVEDEVICE_INVALID;
#else
g_Menus[g_MpPlayerNum].fm.device1 = 0x7f;
#endif
}
}
@ -706,8 +713,7 @@ void filemgrRetrySave(s32 context)
#if VERSION >= VERSION_NTSC_1_0
filemgrEraseCorruptFile();
#else
// Argument is wrong/mismatching
func0f0f3704(&g_FilemgrSaveErrorMenuDialog);
func0f0f3704(&g_FilemgrFileLostMenuDialog);
#endif
}
}
@ -1101,13 +1107,11 @@ bool filemgrSaveOrLoad(struct fileguid *guid, s32 fileop, u32 playernum)
if (FILEOP_IS_SAVE(g_Menus[g_MpPlayerNum].fm.fileop)) {
menuPushDialog(&g_FilemgrSaveErrorMenuDialog);
} else {
// File couldn't be loaded
#if VERSION >= VERSION_NTSC_1_0
// File couldn't be loaded - delete it
filemgrEraseCorruptFile();
#else
// ntsc-beta shows an error instead
// Note: This argument is wrong/mismatching
menuPushDialog(&g_FilemgrSaveErrorMenuDialog);
menuPushDialog(&g_FilemgrFileLostMenuDialog);
#endif
}
@ -2255,11 +2259,19 @@ s32 pakGameNoteListMenuHandler(s32 operation, struct menuitem *item, union handl
Gfx *gdl;
struct menuitemrenderdata *renderdata;
OSPfsState *note;
#if VERSION >= VERSION_NTSC_1_0
char tmpname[40];
char tmpext[12];
char generalbuffer[60];
char extbuffer[60];
char pagesbuffer[60];
#else
char tmpname[20];
char tmpext[8];
char generalbuffer[28];
char extbuffer[28];
char pagesbuffer[28];
#endif
s32 textwidth;
s32 textheight;

View File

@ -880,13 +880,13 @@ struct prop *propAllocateEyespy(struct pad *pad, s16 room)
s32 inlift;
struct prop *lift;
f32 ground;
u32 stack[2];
rooms[0] = room;
rooms[1] = -1;
#if PIRACYCHECKS
{
u32 stack[2];
u32 checksum = 0;
s32 *ptr = (s32 *)&lvInit;
s32 *end = (s32 *)&lvConfigureFade;

View File

@ -16,7 +16,7 @@ u8 *g_GeCreditsData;
u32 setupGetCommandLength(u32 *cmd)
{
#if VERSION < VERSION_NTSC_1_0
static u32 crash1;
static u32 crash1 = 0;
mainOverrideVariable("crash1", &crash1);
#endif

View File

@ -60,7 +60,11 @@ const char var7f1ab680[] = "AISOUND: Channel %d -> Setting params : Vol=%d, Pad=
const char var7f1ab6e8[] = "AISOUND : This channel has a marker -> Shall start and use ID = %d(%x)\n";
struct audiochannel *g_AudioChannels = NULL;
#if VERSION >= VERSION_NTSC_1_0
u32 g_AudioPrevUuid = 0x00000000;
#endif
s8 var8006ae18 = 0;
s8 var8006ae1c = 0;
s8 var8006ae20 = 0;
@ -72,10 +76,6 @@ u32 var8006ae34 = 0x00000000;
u32 var8006ae38 = 0x00000000;
bool g_PropsndPrintChannels = false;
#if VERSION < VERSION_NTSC_1_0
u32 nbdata[3] = {0};
#endif
u32 var8006ae40 = 0x00000000;
u32 var8006ae44 = 0x00000000;
u32 var8006ae48 = 0x00000001;

View File

@ -139,6 +139,7 @@ void beamCreate(struct beam *beam, s32 weaponnum, struct coord *from, struct coo
}
}
#if VERSION >= VERSION_NTSC_1_0
GLOBAL_ASM(
glabel func0f0ac138
.late_rodata
@ -381,6 +382,250 @@ glabel var7f1acc48
/* f0ac4b0: 03e00008 */ jr $ra
/* f0ac4b4: 00000000 */ nop
);
#else
GLOBAL_ASM(
glabel func0f0ac138
.late_rodata
glabel var7f1acc48
.word 0x3db2b17a
.text
/* f0a9e98: 3c0e800a */ lui $t6,0x800a
/* f0a9e9c: 8dcee944 */ lw $t6,-0x16bc($t6)
/* f0a9ea0: 27bdff88 */ addiu $sp,$sp,-120
/* f0a9ea4: afbf0014 */ sw $ra,0x14($sp)
/* f0a9ea8: afa40078 */ sw $a0,0x78($sp)
/* f0a9eac: 0fc2cd16 */ jal currentPlayerGetMatrix1740
/* f0a9eb0: afae0074 */ sw $t6,0x74($sp)
/* f0a9eb4: 8fa40078 */ lw $a0,0x78($sp)
/* f0a9eb8: 8faf0074 */ lw $t7,0x74($sp)
/* f0a9ebc: c4460008 */ lwc1 $f6,0x8($v0)
/* f0a9ec0: 00042900 */ sll $a1,$a0,0x4
/* f0a9ec4: 00a42823 */ subu $a1,$a1,$a0
/* f0a9ec8: 00052880 */ sll $a1,$a1,0x2
/* f0a9ecc: 00a42821 */ addu $a1,$a1,$a0
/* f0a9ed0: 000528c0 */ sll $a1,$a1,0x3
/* f0a9ed4: 00a42821 */ addu $a1,$a1,$a0
/* f0a9ed8: 00052880 */ sll $a1,$a1,0x2
/* f0a9edc: 01e51821 */ addu $v1,$t7,$a1
/* f0a9ee0: c4640b94 */ lwc1 $f4,0xb94($v1)
/* f0a9ee4: c46a0b98 */ lwc1 $f10,0xb98($v1)
/* f0a9ee8: c4500018 */ lwc1 $f16,0x18($v0)
/* f0a9eec: 46062202 */ mul.s $f8,$f4,$f6
/* f0a9ef0: c4660b9c */ lwc1 $f6,0xb9c($v1)
/* f0a9ef4: 24630638 */ addiu $v1,$v1,0x638
/* f0a9ef8: 46105482 */ mul.s $f18,$f10,$f16
/* f0a9efc: c44a0028 */ lwc1 $f10,0x28($v0)
/* f0a9f00: 460a3402 */ mul.s $f16,$f6,$f10
/* f0a9f04: c4660380 */ lwc1 $f6,0x380($v1)
/* f0a9f08: 46124100 */ add.s $f4,$f8,$f18
/* f0a9f0c: c4520038 */ lwc1 $f18,0x38($v0)
/* f0a9f10: 46102200 */ add.s $f8,$f4,$f16
/* f0a9f14: 46089000 */ add.s $f0,$f18,$f8
/* f0a9f18: 46000007 */ neg.s $f0,$f0
/* f0a9f1c: 4606003c */ c.lt.s $f0,$f6
/* f0a9f20: 00000000 */ sll $zero,$zero,0x0
/* f0a9f24: 450300b9 */ bc1tl .NB0f0aa20c
/* f0a9f28: 8fbf0014 */ lw $ra,0x14($sp)
/* f0a9f2c: afa30028 */ sw $v1,0x28($sp)
/* f0a9f30: 0fc27dd7 */ jal bgunGetWeaponNum
/* f0a9f34: afa5002c */ sw $a1,0x2c($sp)
/* f0a9f38: 8fa30028 */ lw $v1,0x28($sp)
/* f0a9f3c: 2401001d */ addiu $at,$zero,0x1d
/* f0a9f40: 00402825 */ or $a1,$v0,$zero
/* f0a9f44: 90780000 */ lbu $t8,0x0($v1)
/* f0a9f48: 246401dc */ addiu $a0,$v1,0x1dc
/* f0a9f4c: 24660374 */ addiu $a2,$v1,0x374
/* f0a9f50: 17010006 */ bne $t8,$at,.NB0f0a9f6c
/* f0a9f54: 2467055c */ addiu $a3,$v1,0x55c
/* f0a9f58: 90790003 */ lbu $t9,0x3($v1)
/* f0a9f5c: 24010001 */ addiu $at,$zero,0x1
/* f0a9f60: 57210003 */ bnel $t9,$at,.NB0f0a9f70
/* f0a9f64: afa30028 */ sw $v1,0x28($sp)
/* f0a9f68: 2405fffe */ addiu $a1,$zero,-2
.NB0f0a9f6c:
/* f0a9f6c: afa30028 */ sw $v1,0x28($sp)
.NB0f0a9f70:
/* f0a9f70: afa40024 */ sw $a0,0x24($sp)
/* f0a9f74: afa50060 */ sw $a1,0x60($sp)
/* f0a9f78: 0fc2a6f4 */ jal beamCreate
/* f0a9f7c: afa70018 */ sw $a3,0x18($sp)
/* f0a9f80: 8fa40024 */ lw $a0,0x24($sp)
/* f0a9f84: 3c08800a */ lui $t0,0x800a
/* f0a9f88: 24010006 */ addiu $at,$zero,0x6
/* f0a9f8c: 80890001 */ lb $t1,0x1($a0)
/* f0a9f90: 2508e6c0 */ addiu $t0,$t0,-6464
/* f0a9f94: 8fa30028 */ lw $v1,0x28($sp)
/* f0a9f98: 1521000a */ bne $t1,$at,.NB0f0a9fc4
/* f0a9f9c: 8faa0074 */ lw $t2,0x74($sp)
/* f0a9fa0: 8fab002c */ lw $t3,0x2c($sp)
/* f0a9fa4: 240ffffd */ addiu $t7,$zero,-3
/* f0a9fa8: 014b6021 */ addu $t4,$t2,$t3
/* f0a9fac: c58a0874 */ lwc1 $f10,0x874($t4)
/* f0a9fb0: 4600510d */ trunc.w.s $f4,$f10
/* f0a9fb4: 440e2000 */ mfc1 $t6,$f4
/* f0a9fb8: 00000000 */ sll $zero,$zero,0x0
/* f0a9fbc: 01eec023 */ subu $t8,$t7,$t6
/* f0a9fc0: a0980001 */ sb $t8,0x1($a0)
.NB0f0a9fc4:
/* f0a9fc4: 8fb90074 */ lw $t9,0x74($sp)
/* f0a9fc8: 8f2900bc */ lw $t1,0xbc($t9)
/* f0a9fcc: 8d270004 */ lw $a3,0x4($t1)
/* f0a9fd0: 50e0008e */ beqzl $a3,.NB0f0aa20c
/* f0a9fd4: 8fbf0014 */ lw $ra,0x14($sp)
/* f0a9fd8: 8d0a006c */ lw $t2,0x6c($t0)
/* f0a9fdc: 00003025 */ or $a2,$zero,$zero
/* f0a9fe0: 00002025 */ or $a0,$zero,$zero
/* f0a9fe4: 11400003 */ beqz $t2,.NB0f0a9ff4
/* f0a9fe8: 00002825 */ or $a1,$zero,$zero
/* f0a9fec: 10000001 */ beqz $zero,.NB0f0a9ff4
/* f0a9ff0: 24060001 */ addiu $a2,$zero,0x1
.NB0f0a9ff4:
/* f0a9ff4: 8d0b0068 */ lw $t3,0x68($t0)
/* f0a9ff8: 8fb90078 */ lw $t9,0x78($sp)
/* f0a9ffc: 00001025 */ or $v0,$zero,$zero
/* f0aa000: 11600003 */ beqz $t3,.NB0f0aa010
/* f0aa004: 00f94821 */ addu $t1,$a3,$t9
/* f0aa008: 10000001 */ beqz $zero,.NB0f0aa010
/* f0aa00c: 24040001 */ addiu $a0,$zero,0x1
.NB0f0aa010:
/* f0aa010: 8d0c0064 */ lw $t4,0x64($t0)
/* f0aa014: 11800003 */ beqz $t4,.NB0f0aa024
/* f0aa018: 00000000 */ sll $zero,$zero,0x0
/* f0aa01c: 10000001 */ beqz $zero,.NB0f0aa024
/* f0aa020: 24050001 */ addiu $a1,$zero,0x1
.NB0f0aa024:
/* f0aa024: 8d0d0070 */ lw $t5,0x70($t0)
/* f0aa028: 11a00003 */ beqz $t5,.NB0f0aa038
/* f0aa02c: 00000000 */ sll $zero,$zero,0x0
/* f0aa030: 10000001 */ beqz $zero,.NB0f0aa038
/* f0aa034: 24020001 */ addiu $v0,$zero,0x1
.NB0f0aa038:
/* f0aa038: 00457821 */ addu $t7,$v0,$a1
/* f0aa03c: 01e47021 */ addu $t6,$t7,$a0
/* f0aa040: 01c6c021 */ addu $t8,$t6,$a2
/* f0aa044: 2b010002 */ slti $at,$t8,0x2
/* f0aa048: 54200070 */ bnezl $at,.NB0f0aa20c
/* f0aa04c: 8fbf0014 */ lw $ra,0x14($sp)
/* f0aa050: afa90020 */ sw $t1,0x20($sp)
/* f0aa054: 8124017c */ lb $a0,0x17c($t1)
/* f0aa058: 2401ffff */ addiu $at,$zero,-1
/* f0aa05c: 54810008 */ bnel $a0,$at,.NB0f0aa080
/* f0aa060: 2401ffff */ addiu $at,$zero,-1
/* f0aa064: 0fc2938f */ jal bgunAllocateFireslot
/* f0aa068: afa30028 */ sw $v1,0x28($sp)
/* f0aa06c: 8fa50020 */ lw $a1,0x20($sp)
/* f0aa070: 8fa30028 */ lw $v1,0x28($sp)
/* f0aa074: a0a2017c */ sb $v0,0x17c($a1)
/* f0aa078: 80a4017c */ lb $a0,0x17c($a1)
/* f0aa07c: 2401ffff */ addiu $at,$zero,-1
.NB0f0aa080:
/* f0aa080: 10810061 */ beq $a0,$at,.NB0f0aa208
/* f0aa084: 8fac0078 */ lw $t4,0x78($sp)
/* f0aa088: 8fab0074 */ lw $t3,0x74($sp)
/* f0aa08c: 000c6880 */ sll $t5,$t4,0x2
/* f0aa090: 01ac6823 */ subu $t5,$t5,$t4
/* f0aa094: 000d6880 */ sll $t5,$t5,0x2
/* f0aa098: 016d1021 */ addu $v0,$t3,$t5
/* f0aa09c: c452197c */ lwc1 $f18,0x197c($v0)
/* f0aa0a0: c470055c */ lwc1 $f16,0x55c($v1)
/* f0aa0a4: 27a40050 */ addiu $a0,$sp,0x50
/* f0aa0a8: 27a50054 */ addiu $a1,$sp,0x54
/* f0aa0ac: 46128201 */ sub.s $f8,$f16,$f18
/* f0aa0b0: 27a60058 */ addiu $a2,$sp,0x58
/* f0aa0b4: e7a80050 */ swc1 $f8,0x50($sp)
/* f0aa0b8: c44a1980 */ lwc1 $f10,0x1980($v0)
/* f0aa0bc: c4660560 */ lwc1 $f6,0x560($v1)
/* f0aa0c0: 460a3101 */ sub.s $f4,$f6,$f10
/* f0aa0c4: e7a40054 */ swc1 $f4,0x54($sp)
/* f0aa0c8: c4521984 */ lwc1 $f18,0x1984($v0)
/* f0aa0cc: c4700564 */ lwc1 $f16,0x564($v1)
/* f0aa0d0: afa30028 */ sw $v1,0x28($sp)
/* f0aa0d4: afa20024 */ sw $v0,0x24($sp)
/* f0aa0d8: 46128201 */ sub.s $f8,$f16,$f18
/* f0aa0dc: 0c0012a8 */ jal guNormalize
/* f0aa0e0: e7a80058 */ swc1 $f8,0x58($sp)
/* f0aa0e4: 8fa30028 */ lw $v1,0x28($sp)
/* f0aa0e8: 27a40044 */ addiu $a0,$sp,0x44
/* f0aa0ec: 27a50048 */ addiu $a1,$sp,0x48
/* f0aa0f0: c466055c */ lwc1 $f6,0x55c($v1)
/* f0aa0f4: c46a0374 */ lwc1 $f10,0x374($v1)
/* f0aa0f8: 27a6004c */ addiu $a2,$sp,0x4c
/* f0aa0fc: 460a3101 */ sub.s $f4,$f6,$f10
/* f0aa100: e7a40044 */ swc1 $f4,0x44($sp)
/* f0aa104: c4720378 */ lwc1 $f18,0x378($v1)
/* f0aa108: c4700560 */ lwc1 $f16,0x560($v1)
/* f0aa10c: 46128201 */ sub.s $f8,$f16,$f18
/* f0aa110: e7a80048 */ swc1 $f8,0x48($sp)
/* f0aa114: c46a037c */ lwc1 $f10,0x37c($v1)
/* f0aa118: c4660564 */ lwc1 $f6,0x564($v1)
/* f0aa11c: 460a3101 */ sub.s $f4,$f6,$f10
/* f0aa120: 0c0012a8 */ jal guNormalize
/* f0aa124: e7a4004c */ swc1 $f4,0x4c($sp)
/* f0aa128: c7b00050 */ lwc1 $f16,0x50($sp)
/* f0aa12c: c7b20044 */ lwc1 $f18,0x44($sp)
/* f0aa130: c7a60054 */ lwc1 $f6,0x54($sp)
/* f0aa134: c7aa0048 */ lwc1 $f10,0x48($sp)
/* f0aa138: 46128202 */ mul.s $f8,$f16,$f18
/* f0aa13c: c7b2004c */ lwc1 $f18,0x4c($sp)
/* f0aa140: 460a3102 */ mul.s $f4,$f6,$f10
/* f0aa144: c7a60058 */ lwc1 $f6,0x58($sp)
/* f0aa148: 46069282 */ mul.s $f10,$f18,$f6
/* f0aa14c: 46044400 */ add.s $f16,$f8,$f4
/* f0aa150: 0fc25258 */ jal func0f0969d0
/* f0aa154: 46105300 */ add.s $f12,$f10,$f16
/* f0aa158: 3c017f1a */ lui $at,0x7f1a
/* f0aa15c: c4286f98 */ lwc1 $f8,0x6f98($at)
/* f0aa160: 3c0a800a */ lui $t2,0x800a
/* f0aa164: 8fa20024 */ lw $v0,0x24($sp)
/* f0aa168: 4600403c */ c.lt.s $f8,$f0
/* f0aa16c: 2401fffe */ addiu $at,$zero,-2
/* f0aa170: 8faf0060 */ lw $t7,0x60($sp)
/* f0aa174: 254a1888 */ addiu $t2,$t2,0x1888
/* f0aa178: 45000003 */ bc1f .NB0f0aa188
/* f0aa17c: 8fae0020 */ lw $t6,0x20($sp)
/* f0aa180: 55e10022 */ bnel $t7,$at,.NB0f0aa20c
/* f0aa184: 8fbf0014 */ lw $ra,0x14($sp)
.NB0f0aa188:
/* f0aa188: 81d8017c */ lb $t8,0x17c($t6)
/* f0aa18c: 8fa50060 */ lw $a1,0x60($sp)
/* f0aa190: 2446197c */ addiu $a2,$v0,0x197c
/* f0aa194: 0018c8c0 */ sll $t9,$t8,0x3
/* f0aa198: 0338c823 */ subu $t9,$t9,$t8
/* f0aa19c: 0019c8c0 */ sll $t9,$t9,0x3
/* f0aa1a0: 2729000c */ addiu $t1,$t9,0xc
/* f0aa1a4: 012a2021 */ addu $a0,$t1,$t2
/* f0aa1a8: 0fc2a6f4 */ jal beamCreate
/* f0aa1ac: 8fa70018 */ lw $a3,0x18($sp)
/* f0aa1b0: 8fac0020 */ lw $t4,0x20($sp)
/* f0aa1b4: 3c0f800a */ lui $t7,0x800a
/* f0aa1b8: 25ef1888 */ addiu $t7,$t7,0x1888
/* f0aa1bc: 818b017c */ lb $t3,0x17c($t4)
/* f0aa1c0: 8fb80074 */ lw $t8,0x74($sp)
/* f0aa1c4: 8fb9002c */ lw $t9,0x2c($sp)
/* f0aa1c8: 000b68c0 */ sll $t5,$t3,0x3
/* f0aa1cc: 01ab6823 */ subu $t5,$t5,$t3
/* f0aa1d0: 000d68c0 */ sll $t5,$t5,0x3
/* f0aa1d4: 01af1021 */ addu $v0,$t5,$t7
/* f0aa1d8: 804e000d */ lb $t6,0xd($v0)
/* f0aa1dc: 24010006 */ addiu $at,$zero,0x6
/* f0aa1e0: 03194821 */ addu $t1,$t8,$t9
/* f0aa1e4: 55c10009 */ bnel $t6,$at,.NB0f0aa20c
/* f0aa1e8: 8fbf0014 */ lw $ra,0x14($sp)
/* f0aa1ec: c5240874 */ lwc1 $f4,0x874($t1)
/* f0aa1f0: 240bfffd */ addiu $t3,$zero,-3
/* f0aa1f4: 4600248d */ trunc.w.s $f18,$f4
/* f0aa1f8: 440c9000 */ mfc1 $t4,$f18
/* f0aa1fc: 00000000 */ sll $zero,$zero,0x0
/* f0aa200: 016c6823 */ subu $t5,$t3,$t4
/* f0aa204: a04d000d */ sb $t5,0xd($v0)
.NB0f0aa208:
/* f0aa208: 8fbf0014 */ lw $ra,0x14($sp)
.NB0f0aa20c:
/* f0aa20c: 27bd0078 */ addiu $sp,$sp,0x78
/* f0aa210: 03e00008 */ jr $ra
/* f0aa214: 00000000 */ sll $zero,$zero,0x0
);
#endif
GLOBAL_ASM(
glabel func0f0ac4b8

View File

@ -22,7 +22,7 @@ struct weapon *weaponFindById(s32 itemid)
return NULL;
}
if (itemid >= NUM_WEAPONS) {
if (itemid >= ARRAYCOUNT(g_Weapons)) {
return NULL;
}

View File

@ -508,6 +508,7 @@ f32 playerChooseGeneralSpawnLocation(f32 chrwidth, struct coord *pos, s16 *rooms
return playerChooseSpawnLocation(chrwidth, pos, rooms, prop, g_SpawnPoints, g_NumSpawnPoints);
}
#if VERSION >= VERSION_NTSC_1_0
GLOBAL_ASM(
glabel currentPlayerStartNewLife
.late_rodata
@ -881,6 +882,381 @@ glabel var7f1ad568
/* f0b77c4: 03e00008 */ jr $ra
/* f0b77c8: 27bd0118 */ addiu $sp,$sp,0x118
);
#else
GLOBAL_ASM(
glabel currentPlayerStartNewLife
.late_rodata
glabel var7f1ad534
.word 0x40c907a9
glabel var7f1ad538
.word 0x40c907a9
glabel var7f1ad53c
.word currentPlayerStartNewLife+0x374 # f0b7650
glabel var7f1ad540
.word currentPlayerStartNewLife+0x38c # f0b7668
glabel var7f1ad544
.word currentPlayerStartNewLife+0x3c4 # f0b76a0
glabel var7f1ad548
.word currentPlayerStartNewLife+0x3e4 # f0b76c0
glabel var7f1ad54c
.word currentPlayerStartNewLife+0x3ec # f0b76c8
glabel var7f1ad550
.word currentPlayerStartNewLife+0x3f4 # f0b76d0
glabel var7f1ad554
.word currentPlayerStartNewLife+0x3fc # f0b76d8
glabel var7f1ad558
.word currentPlayerStartNewLife+0x404 # f0b76e0
glabel var7f1ad55c
.word currentPlayerStartNewLife+0x404 # f0b76e0
glabel var7f1ad560
.word currentPlayerStartNewLife+0x37c # f0b7658
glabel var7f1ad564
.word currentPlayerStartNewLife+0x37c # f0b7658
glabel var7f1ad568
.word currentPlayerStartNewLife+0x384 # f0b7660
.text
/* f0b72dc: 27bdfee8 */ addiu $sp,$sp,-280
/* f0b72e0: 3c0f8007 */ lui $t7,%hi(var80070780)
/* f0b72e4: afbf003c */ sw $ra,0x3c($sp)
/* f0b72e8: afb20038 */ sw $s2,0x38($sp)
/* f0b72ec: afb10034 */ sw $s1,0x34($sp)
/* f0b72f0: afb00030 */ sw $s0,0x30($sp)
/* f0b72f4: 25ef0780 */ addiu $t7,$t7,%lo(var80070780)
/* f0b72f8: 8de10000 */ lw $at,0x0($t7)
/* f0b72fc: 27ae010c */ addiu $t6,$sp,0x10c
/* f0b7300: 8de80004 */ lw $t0,0x4($t7)
/* f0b7304: adc10000 */ sw $at,0x0($t6)
/* f0b7308: 8de10008 */ lw $at,0x8($t7)
/* f0b730c: 3c12800a */ lui $s2,%hi(g_Vars)
/* f0b7310: 26529fc0 */ addiu $s2,$s2,%lo(g_Vars)
/* f0b7314: 3c11800a */ lui $s1,%hi(g_StageSetup+0xc)
/* f0b7318: adc80004 */ sw $t0,0x4($t6)
/* f0b731c: adc10008 */ sw $at,0x8($t6)
/* f0b7320: 8e31d03c */ lw $s1,%lo(g_StageSetup+0xc)($s1)
/* f0b7324: 0fc47788 */ jal pakEnableRumbleForPlayer
/* f0b7328: 8244028f */ lb $a0,0x28f($s2)
/* f0b732c: 8e490284 */ lw $t1,0x284($s2)
/* f0b7330: a12019b3 */ sb $zero,0x19b3($t1)
/* f0b7334: 8e4a0298 */ lw $t2,0x298($s2)
/* f0b7338: 05430010 */ bgezl $t2,.L0f0b737c
/* f0b733c: 8e580284 */ lw $t8,0x284($s2)
/* f0b7340: 8e4b0284 */ lw $t3,0x284($s2)
/* f0b7344: 8d6c00bc */ lw $t4,0xbc($t3)
/* f0b7348: 8d82001c */ lw $v0,0x1c($t4)
/* f0b734c: 5040000b */ beqzl $v0,.L0f0b737c
/* f0b7350: 8e580284 */ lw $t8,0x284($s2)
/* f0b7354: 8c430004 */ lw $v1,0x4($v0)
.L0f0b7358:
/* f0b7358: 50600005 */ beqzl $v1,.L0f0b7370
/* f0b735c: 8c420020 */ lw $v0,0x20($v0)
/* f0b7360: 8c6d0040 */ lw $t5,0x40($v1)
/* f0b7364: 35b90004 */ ori $t9,$t5,0x4
/* f0b7368: ac790040 */ sw $t9,0x40($v1)
/* f0b736c: 8c420020 */ lw $v0,0x20($v0)
.L0f0b7370:
/* f0b7370: 5440fff9 */ bnezl $v0,.L0f0b7358
/* f0b7374: 8c430004 */ lw $v1,0x4($v0)
/* f0b7378: 8e580284 */ lw $t8,0x284($s2)
.L0f0b737c:
/* f0b737c: 8f0e00bc */ lw $t6,0xbc($t8)
/* f0b7380: 0fc52719 */ jal chrInitSplats
/* f0b7384: 8dc40004 */ lw $a0,0x4($t6)
/* f0b7388: 0fc2ddf3 */ jal currentPlayerResetToDefault
/* f0b738c: 00000000 */ nop
/* f0b7390: 8e4f0284 */ lw $t7,0x284($s2)
/* f0b7394: 24020007 */ addiu $v0,$zero,0x7
/* f0b7398: 240b0002 */ addiu $t3,$zero,0x2
/* f0b739c: ade000d8 */ sw $zero,0xd8($t7)
/* f0b73a0: 8e480284 */ lw $t0,0x284($s2)
/* f0b73a4: 2404ffff */ addiu $a0,$zero,-1
/* f0b73a8: ad021924 */ sw $v0,0x1924($t0)
/* f0b73ac: 8e490284 */ lw $t1,0x284($s2)
/* f0b73b0: ad22193c */ sw $v0,0x193c($t1)
/* f0b73b4: 8e4a0284 */ lw $t2,0x284($s2)
/* f0b73b8: ad4016d8 */ sw $zero,0x16d8($t2)
/* f0b73bc: 8e4c0284 */ lw $t4,0x284($s2)
/* f0b73c0: 0fc37e87 */ jal currentPlayerSetHudmsgsOn
/* f0b73c4: ad8b17a4 */ sw $t3,0x17a4($t4)
/* f0b73c8: 8e4d0284 */ lw $t5,0x284($s2)
/* f0b73cc: 3c0141f0 */ lui $at,0x41f0
/* f0b73d0: 44816000 */ mtc1 $at,$f12
/* f0b73d4: 27a5010c */ addiu $a1,$sp,0x10c
/* f0b73d8: 27a600fc */ addiu $a2,$sp,0xfc
/* f0b73dc: 0fc6185f */ jal scenarioChooseSpawnLocation
/* f0b73e0: 8da700bc */ lw $a3,0xbc($t5)
/* f0b73e4: 3c017f1b */ lui $at,%hi(var7f1ad534)
/* f0b73e8: c424d534 */ lwc1 $f4,%lo(var7f1ad534)($at)
/* f0b73ec: 8e500284 */ lw $s0,0x284($s2)
/* f0b73f0: 27a4010c */ addiu $a0,$sp,0x10c
/* f0b73f4: 46002181 */ sub.s $f6,$f4,$f0
/* f0b73f8: 2619161e */ addiu $t9,$s0,0x161e
/* f0b73fc: 2618161c */ addiu $t8,$s0,0x161c
/* f0b7400: 260e19b0 */ addiu $t6,$s0,0x19b0
/* f0b7404: e7a600f8 */ swc1 $f6,0xf8($sp)
/* f0b7408: afae0018 */ sw $t6,0x18($sp)
/* f0b740c: afb80014 */ sw $t8,0x14($sp)
/* f0b7410: afb90010 */ sw $t9,0x10($sp)
/* f0b7414: 3c0541f0 */ lui $a1,0x41f0
/* f0b7418: 27a600fc */ addiu $a2,$sp,0xfc
/* f0b741c: afa0001c */ sw $zero,0x1c($sp)
/* f0b7420: afa00020 */ sw $zero,0x20($sp)
/* f0b7424: 0c00a86c */ jal cdFindGroundY
/* f0b7428: 2607161a */ addiu $a3,$s0,0x161a
/* f0b742c: 8e500284 */ lw $s0,0x284($s2)
/* f0b7430: 3c0143b4 */ lui $at,0x43b4
/* f0b7434: 44819000 */ mtc1 $at,$f18
/* f0b7438: c60819c4 */ lwc1 $f8,0x19c4($s0)
/* f0b743c: 3c017f1b */ lui $at,%hi(var7f1ad538)
/* f0b7440: 27a5010c */ addiu $a1,$sp,0x10c
/* f0b7444: 46004280 */ add.s $f10,$f8,$f0
/* f0b7448: e7aa0110 */ swc1 $f10,0x110($sp)
/* f0b744c: e6000074 */ swc1 $f0,0x74($s0)
/* f0b7450: c7b000f8 */ lwc1 $f16,0xf8($sp)
/* f0b7454: c426d538 */ lwc1 $f6,%lo(var7f1ad538)($at)
/* f0b7458: 8e4f0284 */ lw $t7,0x284($s2)
/* f0b745c: 46128102 */ mul.s $f4,$f16,$f18
/* f0b7460: 46062203 */ div.s $f8,$f4,$f6
/* f0b7464: e5e80144 */ swc1 $f8,0x144($t7)
/* f0b7468: 8e480284 */ lw $t0,0x284($s2)
/* f0b746c: e5000078 */ swc1 $f0,0x78($t0)
/* f0b7470: 8e440284 */ lw $a0,0x284($s2)
/* f0b7474: 0fc2e168 */ jal func0f0b85a0
/* f0b7478: 2484036c */ addiu $a0,$a0,0x36c
/* f0b747c: 0c0068f7 */ jal sinf
/* f0b7480: c7ac00f8 */ lwc1 $f12,0xf8($sp)
/* f0b7484: 8e490284 */ lw $t1,0x284($s2)
/* f0b7488: 46000287 */ neg.s $f10,$f0
/* f0b748c: 44808000 */ mtc1 $zero,$f16
/* f0b7490: e52a036c */ swc1 $f10,0x36c($t1)
/* f0b7494: 8e4a0284 */ lw $t2,0x284($s2)
/* f0b7498: e5500370 */ swc1 $f16,0x370($t2)
/* f0b749c: 0c0068f4 */ jal cosf
/* f0b74a0: c7ac00f8 */ lwc1 $f12,0xf8($sp)
/* f0b74a4: 8e4b0284 */ lw $t3,0x284($s2)
/* f0b74a8: e5600374 */ swc1 $f0,0x374($t3)
/* f0b74ac: 8e4c0284 */ lw $t4,0x284($s2)
/* f0b74b0: c7a2010c */ lwc1 $f2,0x10c($sp)
/* f0b74b4: e5820310 */ swc1 $f2,0x310($t4)
/* f0b74b8: 8e4d0284 */ lw $t5,0x284($s2)
/* f0b74bc: 8db900bc */ lw $t9,0xbc($t5)
/* f0b74c0: e7220008 */ swc1 $f2,0x8($t9)
/* f0b74c4: 8e580284 */ lw $t8,0x284($s2)
/* f0b74c8: c7a20110 */ lwc1 $f2,0x110($sp)
/* f0b74cc: e7020314 */ swc1 $f2,0x314($t8)
/* f0b74d0: 8e4e0284 */ lw $t6,0x284($s2)
/* f0b74d4: 8dcf00bc */ lw $t7,0xbc($t6)
/* f0b74d8: e5e2000c */ swc1 $f2,0xc($t7)
/* f0b74dc: 8e480284 */ lw $t0,0x284($s2)
/* f0b74e0: c7a20114 */ lwc1 $f2,0x114($sp)
/* f0b74e4: e5020318 */ swc1 $f2,0x318($t0)
/* f0b74e8: 8e490284 */ lw $t1,0x284($s2)
/* f0b74ec: 8d2a00bc */ lw $t2,0xbc($t1)
/* f0b74f0: e5420010 */ swc1 $f2,0x10($t2)
/* f0b74f4: 8e4b0284 */ lw $t3,0x284($s2)
/* f0b74f8: 0fc19711 */ jal propDeregisterRooms
/* f0b74fc: 8d6400bc */ lw $a0,0xbc($t3)
/* f0b7500: 8e4d0284 */ lw $t5,0x284($s2)
/* f0b7504: 87ac00fc */ lh $t4,0xfc($sp)
/* f0b7508: 2418ffff */ addiu $t8,$zero,-1
/* f0b750c: 8db900bc */ lw $t9,0xbc($t5)
/* f0b7510: 27a4010c */ addiu $a0,$sp,0x10c
/* f0b7514: a72c0028 */ sh $t4,0x28($t9)
/* f0b7518: 8e4e0284 */ lw $t6,0x284($s2)
/* f0b751c: 8dcf00bc */ lw $t7,0xbc($t6)
/* f0b7520: a5f8002a */ sh $t8,0x2a($t7)
/* f0b7524: 8e500284 */ lw $s0,0x284($s2)
/* f0b7528: 87a700fc */ lh $a3,0xfc($sp)
/* f0b752c: 26050394 */ addiu $a1,$s0,0x394
/* f0b7530: 0fc30709 */ jal currentPlayerSetCamPropertiesWithRoom
/* f0b7534: 26060388 */ addiu $a2,$s0,0x388
/* f0b7538: 8e480298 */ lw $t0,0x298($s2)
/* f0b753c: 27a2005c */ addiu $v0,$sp,0x5c
/* f0b7540: 27a300e0 */ addiu $v1,$sp,0xe0
/* f0b7544: 05000023 */ bltz $t0,.L0f0b75d4
.L0f0b7548:
/* f0b7548: 24420004 */ addiu $v0,$v0,0x4
/* f0b754c: 1443fffe */ bne $v0,$v1,.L0f0b7548
/* f0b7550: ac40fffc */ sw $zero,-0x4($v0)
/* f0b7554: 24100001 */ addiu $s0,$zero,0x1
.L0f0b7558:
/* f0b7558: 0fc446b5 */ jal invHasSingleWeaponOrProp
/* f0b755c: 02002025 */ or $a0,$s0,$zero
/* f0b7560: 1040000a */ beqz $v0,.L0f0b758c
/* f0b7564: 02002025 */ or $a0,$s0,$zero
/* f0b7568: 0fc2a685 */ jal bgunGetAmmoTypeForWeapon
/* f0b756c: 00002825 */ or $a1,$zero,$zero
/* f0b7570: 04400006 */ bltz $v0,.L0f0b758c
/* f0b7574: 28410021 */ slti $at,$v0,0x21
/* f0b7578: 10200004 */ beqz $at,.L0f0b758c
/* f0b757c: 24090001 */ addiu $t1,$zero,0x1
/* f0b7580: 00025080 */ sll $t2,$v0,0x2
/* f0b7584: 03aa5821 */ addu $t3,$sp,$t2
/* f0b7588: ad69005c */ sw $t1,0x5c($t3)
.L0f0b758c:
/* f0b758c: 26100001 */ addiu $s0,$s0,0x1
/* f0b7590: 2401005e */ addiu $at,$zero,0x5d
/* f0b7594: 1601fff0 */ bne $s0,$at,.L0f0b7558
/* f0b7598: 00000000 */ nop
/* f0b759c: 00001825 */ or $v1,$zero,$zero
/* f0b75a0: 27a2005c */ addiu $v0,$sp,0x5c
/* f0b75a4: 27a400e0 */ addiu $a0,$sp,0xe0
.L0f0b75a8:
/* f0b75a8: 8c4d0000 */ lw $t5,0x0($v0)
/* f0b75ac: 24420004 */ addiu $v0,$v0,0x4
/* f0b75b0: 15a00004 */ bnez $t5,.L0f0b75c4
/* f0b75b4: 00000000 */ nop
/* f0b75b8: 8e4c0284 */ lw $t4,0x284($s2)
/* f0b75bc: 0183c821 */ addu $t9,$t4,$v1
/* f0b75c0: af2017a8 */ sw $zero,0x17a8($t9)
.L0f0b75c4:
/* f0b75c4: 1444fff8 */ bne $v0,$a0,.L0f0b75a8
/* f0b75c8: 24630004 */ addiu $v1,$v1,0x4
/* f0b75cc: 1000000a */ b .L0f0b75f8
/* f0b75d0: 00000000 */ nop
.L0f0b75d4:
/* f0b75d4: 0fc44580 */ jal invClear
/* f0b75d8: 00000000 */ nop
/* f0b75dc: 00001825 */ or $v1,$zero,$zero
/* f0b75e0: 24020084 */ addiu $v0,$zero,0x84
.L0f0b75e4:
/* f0b75e4: 8e4e0284 */ lw $t6,0x284($s2)
/* f0b75e8: 01c3c021 */ addu $t8,$t6,$v1
/* f0b75ec: 24630004 */ addiu $v1,$v1,0x4
/* f0b75f0: 1462fffc */ bne $v1,$v0,.L0f0b75e4
/* f0b75f4: af0017a8 */ sw $zero,0x17a8($t8)
.L0f0b75f8:
/* f0b75f8: 0fc44762 */ jal invGiveSingleWeapon
/* f0b75fc: 24040001 */ addiu $a0,$zero,0x1
/* f0b7600: 5220003c */ beqzl $s1,.L0f0b76f4
/* f0b7604: 8e4c0298 */ lw $t4,0x298($s2)
/* f0b7608: 8e4f029c */ lw $t7,0x29c($s2)
/* f0b760c: 05e20006 */ bltzl $t7,.L0f0b7628
/* f0b7610: 8e220000 */ lw $v0,0x0($s1)
/* f0b7614: 8e4802a8 */ lw $t0,0x2a8($s2)
/* f0b7618: 8e490284 */ lw $t1,0x284($s2)
/* f0b761c: 51090035 */ beql $t0,$t1,.L0f0b76f4
/* f0b7620: 8e4c0298 */ lw $t4,0x298($s2)
/* f0b7624: 8e220000 */ lw $v0,0x0($s1)
.L0f0b7628:
/* f0b7628: 2410000c */ addiu $s0,$zero,0xc
/* f0b762c: 12020030 */ beq $s0,$v0,.L0f0b76f0
/* f0b7630: 2c41000c */ sltiu $at,$v0,0xc
.L0f0b7634:
/* f0b7634: 1020002a */ beqz $at,.L0f0b76e0
/* f0b7638: 00025080 */ sll $t2,$v0,0x2
/* f0b763c: 3c017f1b */ lui $at,%hi(var7f1ad53c)
/* f0b7640: 002a0821 */ addu $at,$at,$t2
/* f0b7644: 8c2ad53c */ lw $t2,%lo(var7f1ad53c)($at)
/* f0b7648: 01400008 */ jr $t2
/* f0b764c: 00000000 */ nop
/* f0b7650: 10000024 */ b .L0f0b76e4
/* f0b7654: 2631000c */ addiu $s1,$s1,12
/* f0b7658: 10000022 */ b .L0f0b76e4
/* f0b765c: 2631000c */ addiu $s1,$s1,0xc
/* f0b7660: 10000020 */ b .L0f0b76e4
/* f0b7664: 26310008 */ addiu $s1,$s1,0x8
/* f0b7668: 8e2b000c */ lw $t3,0xc($s1)
/* f0b766c: 1560000a */ bnez $t3,.L0f0b7698
/* f0b7670: 00000000 */ nop
/* f0b7674: 8e250008 */ lw $a1,0x8($s1)
/* f0b7678: 04a00005 */ bltz $a1,.L0f0b7690
/* f0b767c: 00000000 */ nop
/* f0b7680: 0fc4478a */ jal invGiveDoubleWeapon
/* f0b7684: 8e240004 */ lw $a0,0x4($s1)
/* f0b7688: 10000016 */ b .L0f0b76e4
/* f0b768c: 26310010 */ addiu $s1,$s1,0x10
.L0f0b7690:
/* f0b7690: 0fc44762 */ jal invGiveSingleWeapon
/* f0b7694: 8e240004 */ lw $a0,0x4($s1)
.L0f0b7698:
/* f0b7698: 10000012 */ b .L0f0b76e4
/* f0b769c: 26310010 */ addiu $s1,$s1,0x10
/* f0b76a0: 8e2d000c */ lw $t5,0xc($s1)
/* f0b76a4: 15a00004 */ bnez $t5,.L0f0b76b8
/* f0b76a8: 00000000 */ nop
/* f0b76ac: 8e240004 */ lw $a0,0x4($s1)
/* f0b76b0: 0fc2a58a */ jal bgunSetAmmoQuantity
/* f0b76b4: 8e250008 */ lw $a1,0x8($s1)
.L0f0b76b8:
/* f0b76b8: 1000000a */ b .L0f0b76e4
/* f0b76bc: 26310010 */ addiu $s1,$s1,0x10
/* f0b76c0: 10000008 */ b .L0f0b76e4
/* f0b76c4: 26310020 */ addiu $s1,$s1,0x20
/* f0b76c8: 10000006 */ b .L0f0b76e4
/* f0b76cc: 26310008 */ addiu $s1,$s1,0x8
/* f0b76d0: 10000004 */ b .L0f0b76e4
/* f0b76d4: 26310008 */ addiu $s1,$s1,0x8
/* f0b76d8: 10000002 */ b .L0f0b76e4
/* f0b76dc: 26310028 */ addiu $s1,$s1,0x28
.L0f0b76e0:
/* f0b76e0: 26310004 */ addiu $s1,$s1,0x4
.L0f0b76e4:
/* f0b76e4: 8e220000 */ lw $v0,0x0($s1)
/* f0b76e8: 5602ffd2 */ bnel $s0,$v0,.L0f0b7634
/* f0b76ec: 2c41000c */ sltiu $at,$v0,0xc
.L0f0b76f0:
/* f0b76f0: 8e4c0298 */ lw $t4,0x298($s2)
.L0f0b76f4:
/* f0b76f4: 8e500284 */ lw $s0,0x284($s2)
/* f0b76f8: 05800011 */ bltz $t4,.L0f0b7740
/* f0b76fc: 00000000 */ nop
/* f0b7700: 44801000 */ mtc1 $zero,$f2
/* f0b7704: c6001c5c */ lwc1 $f0,0x1c5c($s0)
/* f0b7708: 4600103c */ c.lt.s $f2,$f0
/* f0b770c: 00000000 */ nop
/* f0b7710: 4500000b */ bc1f .L0f0b7740
/* f0b7714: 00000000 */ nop
/* f0b7718: e60000dc */ swc1 $f0,0xdc($s0)
/* f0b771c: 8e590284 */ lw $t9,0x284($s2)
/* f0b7720: e72200e4 */ swc1 $f2,0xe4($t9)
/* f0b7724: 8e4e0284 */ lw $t6,0x284($s2)
/* f0b7728: e5c200e8 */ swc1 $f2,0xe8($t6)
/* f0b772c: 8e580284 */ lw $t8,0x284($s2)
/* f0b7730: e70200ec */ swc1 $f2,0xec($t8)
/* f0b7734: 8e4f0284 */ lw $t7,0x284($s2)
/* f0b7738: e5e200f0 */ swc1 $f2,0xf0($t7)
/* f0b773c: 8e500284 */ lw $s0,0x284($s2)
.L0f0b7740:
/* f0b7740: 0fc32e31 */ jal bmove0f0cb8c4
/* f0b7744: 02002025 */ or $a0,$s0,$zero
/* f0b7748: 0fc2e00b */ jal currentPlayerSpawn
/* f0b774c: 00000000 */ nop
/* f0b7750: 8e480318 */ lw $t0,0x318($s2)
/* f0b7754: 3c013f80 */ lui $at,0x3f80
/* f0b7758: 5100000a */ beqzl $t0,.L0f0b7784
/* f0b775c: 44806000 */ mtc1 $zero,$f12
/* f0b7760: 3c0142f0 */ lui $at,0x42f0
/* f0b7764: 44816000 */ mtc1 $at,$f12
/* f0b7768: 3c013f80 */ lui $at,0x3f80
/* f0b776c: 44817000 */ mtc1 $at,$f14
/* f0b7770: 0fc2ed5f */ jal currentPlayerStartChrFade
/* f0b7774: 00000000 */ nop
/* f0b7778: 10000006 */ b .L0f0b7794
/* f0b777c: 8e490284 */ lw $t1,0x284($s2)
/* f0b7780: 44806000 */ mtc1 $zero,$f12
.L0f0b7784:
/* f0b7784: 44817000 */ mtc1 $at,$f14
/* f0b7788: 0fc2ed5f */ jal currentPlayerStartChrFade
/* f0b778c: 00000000 */ nop
/* f0b7790: 8e490284 */ lw $t1,0x284($s2)
.L0f0b7794:
/* f0b7794: 8d2a00bc */ lw $t2,0xbc($t1)
/* f0b7798: 8d420004 */ lw $v0,0x4($t2)
/* f0b779c: 50400006 */ beqzl $v0,.L0f0b77b8
/* f0b77a0: 8fbf003c */ lw $ra,0x3c($sp)
/* f0b77a4: 8c4b0018 */ lw $t3,0x18($v0)
/* f0b77a8: 2401fbff */ addiu $at,$zero,-1025
/* f0b77ac: 01616824 */ and $t5,$t3,$at
/* f0b77b0: ac4d0018 */ sw $t5,0x18($v0)
/* f0b77b4: 8fbf003c */ lw $ra,0x3c($sp)
.L0f0b77b8:
/* f0b77b8: 8fb00030 */ lw $s0,0x30($sp)
/* f0b77bc: 8fb10034 */ lw $s1,0x34($sp)
/* f0b77c0: 8fb20038 */ lw $s2,0x38($sp)
/* f0b77c4: 03e00008 */ jr $ra
/* f0b77c8: 27bd0118 */ addiu $sp,$sp,0x118
);
#endif
// Mismatch: assigns to bondprevpos and player->prop->pos have extra loads
// from pos.

File diff suppressed because it is too large Load Diff

View File

@ -701,6 +701,7 @@ void currentPlayerSetAspectRatio(f32 aspect)
g_Vars.currentplayer->aspect = aspect;
}
#if VERSION >= VERSION_NTSC_1_0
GLOBAL_ASM(
glabel weaponGetModel
.late_rodata
@ -941,6 +942,248 @@ glabel var7f1b522c
/* f128ce8: 03e00008 */ jr $ra
/* f128cec: 00601025 */ or $v0,$v1,$zero
);
#else
GLOBAL_ASM(
glabel weaponGetModel
.late_rodata
glabel var7f1b5168
.word weaponGetModel+0x60 # f128b54
glabel var7f1b516c
.word weaponGetModel+0x60 # f128b54
glabel var7f1b5170
.word weaponGetModel+0x68 # f128b5c
glabel var7f1b5174
.word weaponGetModel+0x98 # f128b8c
glabel var7f1b5178
.word weaponGetModel+0xa0 # f128b94
glabel var7f1b517c
.word weaponGetModel+0x70 # f128b64
glabel var7f1b5180
.word weaponGetModel+0x78 # f128b6c
glabel var7f1b5184
.word weaponGetModel+0x90 # f128b84
glabel var7f1b5188
.word weaponGetModel+0x80 # f128b74
glabel var7f1b518c
.word weaponGetModel+0x88 # f128b7c
glabel var7f1b5190
.word weaponGetModel+0xa8 # f128b9c
glabel var7f1b5194
.word weaponGetModel+0xd0 # f128bc4
glabel var7f1b5198
.word weaponGetModel+0xd8 # f128bcc
glabel var7f1b519c
.word weaponGetModel+0xe0 # f128bd4
glabel var7f1b51a0
.word weaponGetModel+0xe8 # f128bdc
glabel var7f1b51a4
.word weaponGetModel+0xb8 # f128bac
glabel var7f1b51a8
.word weaponGetModel+0xc8 # f128bbc
glabel var7f1b51ac
.word weaponGetModel+0xb0 # f128ba4
glabel var7f1b51b0
.word weaponGetModel+0xc0 # f128bb4
glabel var7f1b51b4
.word weaponGetModel+0xf0 # f128be4
glabel var7f1b51b8
.word weaponGetModel+0xf8 # f128bec
glabel var7f1b51bc
.word weaponGetModel+0x120 # f128c14
glabel var7f1b51c0
.word weaponGetModel+0x118 # f128c0c
glabel var7f1b51c4
.word weaponGetModel+0x108 # f128bfc
glabel var7f1b51c8
.word weaponGetModel+0x100 # f128bf4
glabel var7f1b51cc
.word weaponGetModel+0x110 # f128c04
glabel var7f1b51d0
.word weaponGetModel+0x138 # f128c2c
glabel var7f1b51d4
.word weaponGetModel+0x128 # f128c1c
glabel var7f1b51d8
.word weaponGetModel+0x140 # f128c34
glabel var7f1b51dc
.word weaponGetModel+0x130 # f128c24
glabel var7f1b51e0
.word weaponGetModel+0x158 # f128c4c
glabel var7f1b51e4
.word weaponGetModel+0x150 # f128c44
glabel var7f1b51e8
.word weaponGetModel+0x170 # f128c64
glabel var7f1b51ec
.word weaponGetModel+0x168 # f128c5c
glabel var7f1b51f0
.word weaponGetModel+0x160 # f128c54
glabel var7f1b51f4
.word weaponGetModel+0x1c8 # f128cbc
glabel var7f1b51f8
.word weaponGetModel+0x188 # f128c7c
glabel var7f1b51fc
.word weaponGetModel+0x190 # f128c84
glabel var7f1b5200
.word weaponGetModel+0x198 # f128c8c
glabel var7f1b5204
.word weaponGetModel+0x1a0 # f128c94
glabel var7f1b5208
.word weaponGetModel+0x1a8 # f128c9c
glabel var7f1b520c
.word weaponGetModel+0x1b0 # f128ca4
glabel var7f1b5210
.word weaponGetModel+0x1b8 # f128cac
glabel var7f1b5214
.word weaponGetModel+0x1c0 # f128cb4
glabel var7f1b5218
.word weaponGetModel+0x148 # f128c3c
glabel var7f1b521c
.word weaponGetModel+0x1e0 # f128cd4
glabel var7f1b5220
.word weaponGetModel+0x1e0 # f128cd4
glabel var7f1b5224
.word weaponGetModel+0x1e0 # f128cd4
glabel var7f1b5228
.word weaponGetModel+0x1e0 # f128cd4
glabel var7f1b522c
.word weaponGetModel+0x180 # f128c74
.text
/* f128af4: 28810052 */ slti $at,$a0,0x51
/* f128af8: 14200007 */ bnez $at,.L0f128b18
/* f128afc: 24010052 */ addiu $at,$zero,0x51
/* f128b00: 10810072 */ beq $a0,$at,.L0f128ccc
/* f128b04: 24010057 */ addiu $at,$zero,0x56
/* f128b08: 10810058 */ beq $a0,$at,.L0f128c6c
/* f128b0c: 00000000 */ nop
/* f128b10: 10000071 */ b .L0f128cd8
/* f128b14: 2881002d */ slti $at,$a0,0x2d
.L0f128b18:
/* f128b18: 28810032 */ slti $at,$a0,0x32
/* f128b1c: 14200005 */ bnez $at,.L0f128b34
/* f128b20: 24010051 */ addiu $at,$zero,0x50
/* f128b24: 10810067 */ beq $a0,$at,.L0f128cc4
/* f128b28: 00000000 */ nop
/* f128b2c: 1000006a */ b .L0f128cd8
/* f128b30: 2881002d */ slti $at,$a0,0x2d
.L0f128b34:
/* f128b34: 2c810032 */ sltiu $at,$a0,0x32
/* f128b38: 10200066 */ beqz $at,.L0f128cd4
/* f128b3c: 00047080 */ sll $t6,$a0,0x2
/* f128b40: 3c017f1b */ lui $at,%hi(var7f1b5168)
/* f128b44: 002e0821 */ addu $at,$at,$t6
/* f128b48: 8c2e5168 */ lw $t6,%lo(var7f1b5168)($at)
/* f128b4c: 01c00008 */ jr $t6
/* f128b50: 00000000 */ nop
/* f128b54: 03e00008 */ jr $ra
/* f128b58: 2402ffff */ addiu $v0,$zero,-1
/* f128b5c: 03e00008 */ jr $ra
/* f128b60: 240200f5 */ addiu $v0,$zero,0xf5
/* f128b64: 03e00008 */ jr $ra
/* f128b68: 240200f6 */ addiu $v0,$zero,0xf6
/* f128b6c: 03e00008 */ jr $ra
/* f128b70: 240200f7 */ addiu $v0,$zero,0xf7
/* f128b74: 03e00008 */ jr $ra
/* f128b78: 240200f8 */ addiu $v0,$zero,0xf8
/* f128b7c: 03e00008 */ jr $ra
/* f128b80: 240200f9 */ addiu $v0,$zero,0xf9
/* f128b84: 03e00008 */ jr $ra
/* f128b88: 240200fa */ addiu $v0,$zero,0xfa
/* f128b8c: 03e00008 */ jr $ra
/* f128b90: 240200fb */ addiu $v0,$zero,0xfb
/* f128b94: 03e00008 */ jr $ra
/* f128b98: 240200fc */ addiu $v0,$zero,0xfc
/* f128b9c: 03e00008 */ jr $ra
/* f128ba0: 240200fd */ addiu $v0,$zero,0xfd
/* f128ba4: 03e00008 */ jr $ra
/* f128ba8: 240200fe */ addiu $v0,$zero,0xfe
/* f128bac: 03e00008 */ jr $ra
/* f128bb0: 240200ff */ addiu $v0,$zero,0xff
/* f128bb4: 03e00008 */ jr $ra
/* f128bb8: 24020100 */ addiu $v0,$zero,0x100
/* f128bbc: 03e00008 */ jr $ra
/* f128bc0: 24020101 */ addiu $v0,$zero,0x101
/* f128bc4: 03e00008 */ jr $ra
/* f128bc8: 24020102 */ addiu $v0,$zero,0x102
/* f128bcc: 03e00008 */ jr $ra
/* f128bd0: 24020103 */ addiu $v0,$zero,0x103
/* f128bd4: 03e00008 */ jr $ra
/* f128bd8: 24020104 */ addiu $v0,$zero,0x104
/* f128bdc: 03e00008 */ jr $ra
/* f128be0: 24020105 */ addiu $v0,$zero,0x105
/* f128be4: 03e00008 */ jr $ra
/* f128be8: 24020106 */ addiu $v0,$zero,0x106
/* f128bec: 03e00008 */ jr $ra
/* f128bf0: 24020107 */ addiu $v0,$zero,0x107
/* f128bf4: 03e00008 */ jr $ra
/* f128bf8: 24020108 */ addiu $v0,$zero,0x108
/* f128bfc: 03e00008 */ jr $ra
/* f128c00: 24020109 */ addiu $v0,$zero,0x109
/* f128c04: 03e00008 */ jr $ra
/* f128c08: 2402010a */ addiu $v0,$zero,0x10a
/* f128c0c: 03e00008 */ jr $ra
/* f128c10: 2402010b */ addiu $v0,$zero,0x10b
/* f128c14: 03e00008 */ jr $ra
/* f128c18: 2402010c */ addiu $v0,$zero,0x10c
/* f128c1c: 03e00008 */ jr $ra
/* f128c20: 2402010d */ addiu $v0,$zero,0x10d
/* f128c24: 03e00008 */ jr $ra
/* f128c28: 24020195 */ addiu $v0,$zero,0x195
/* f128c2c: 03e00008 */ jr $ra
/* f128c30: 2402010f */ addiu $v0,$zero,0x10f
/* f128c34: 03e00008 */ jr $ra
/* f128c38: 2402010e */ addiu $v0,$zero,0x10e
/* f128c3c: 03e00008 */ jr $ra
/* f128c40: 2402010e */ addiu $v0,$zero,0x10e
/* f128c44: 03e00008 */ jr $ra
/* f128c48: 24020110 */ addiu $v0,$zero,0x110
/* f128c4c: 03e00008 */ jr $ra
/* f128c50: 24020112 */ addiu $v0,$zero,0x112
/* f128c54: 03e00008 */ jr $ra
/* f128c58: 24020115 */ addiu $v0,$zero,0x115
/* f128c5c: 03e00008 */ jr $ra
/* f128c60: 24020114 */ addiu $v0,$zero,0x114
/* f128c64: 03e00008 */ jr $ra
/* f128c68: 24020113 */ addiu $v0,$zero,0x113
.L0f128c6c:
/* f128c6c: 03e00008 */ jr $ra
/* f128c70: 24020011 */ addiu $v0,$zero,0x11
/* f128c74: 03e00008 */ jr $ra
/* f128c78: 2402012e */ addiu $v0,$zero,0x12e
/* f128c7c: 03e00008 */ jr $ra
/* f128c80: 24020117 */ addiu $v0,$zero,0x117
/* f128c84: 03e00008 */ jr $ra
/* f128c88: 24020118 */ addiu $v0,$zero,0x118
/* f128c8c: 03e00008 */ jr $ra
/* f128c90: 24020119 */ addiu $v0,$zero,0x119
/* f128c94: 03e00008 */ jr $ra
/* f128c98: 2402011a */ addiu $v0,$zero,0x11a
/* f128c9c: 03e00008 */ jr $ra
/* f128ca0: 2402011b */ addiu $v0,$zero,0x11b
/* f128ca4: 03e00008 */ jr $ra
/* f128ca8: 2402011c */ addiu $v0,$zero,0x11c
/* f128cac: 03e00008 */ jr $ra
/* f128cb0: 2402011d */ addiu $v0,$zero,0x11d
/* f128cb4: 03e00008 */ jr $ra
/* f128cb8: 2402011e */ addiu $v0,$zero,0x11e
/* f128cbc: 03e00008 */ jr $ra
/* f128cc0: 2402ffff */ addiu $v0,$zero,-1
.L0f128cc4:
/* f128cc4: 03e00008 */ jr $ra
/* f128cc8: 24020198 */ addiu $v0,$zero,0x198
.L0f128ccc:
/* f128ccc: 03e00008 */ jr $ra
/* f128cd0: 24020197 */ addiu $v0,$zero,0x197
.L0f128cd4:
/* f128cd4: 2881002d */ slti $at,$a0,0x2d
.L0f128cd8:
/* f128cd8: 10200003 */ beqz $at,.L0f128ce8
/* f128cdc: 2403ffff */ addiu $v1,$zero,-1
/* f128ce0: 03e00008 */ jr $ra
/* f128ce4: 2402010c */ addiu $v0,$zero,0x10c
.L0f128ce8:
/* f128ce8: 03e00008 */ jr $ra
/* f128cec: 00601025 */ or $v0,$v1,$zero
);
#endif
//s32 weaponGetModel(s32 weapon)
//{

File diff suppressed because it is too large Load Diff

View File

@ -109,6 +109,8 @@ void func0f19ab40(void)
#else
const char var7f1b3750nb[] = "VM: Page Misses %d (%d Replaces)";
const char var7f1b3774nb[] = "VM: TLB Misses %d";
const char var7f1b3788nb[] = "";
const char var7f1b378cnb[] = "";
GLOBAL_ASM(
glabel func0f19ab40

View File

@ -798,8 +798,13 @@ void gamefileLoadDefaults(struct gamefile *file)
file->autodifficulty = 0;
file->autostageindex = 0;
file->totaltime = 0;
#if VERSION >= VERSION_NTSC_1_0
sndSetSfxVolume(0x5000);
optionsSetMusicVolume(0x5000);
#else
sndSetSfxVolume(0x7f80);
optionsSetMusicVolume(0x7f80);
#endif
sndSetSoundMode(SOUNDMODE_STEREO);
optionsSetControlMode(player1, CONTROLMODE_11);
optionsSetControlMode(player2, CONTROLMODE_11);
@ -876,7 +881,12 @@ void gamefileLoadDefaults(struct gamefile *file)
g_GameFile.firingrangescores[i] = 0;
}
for (i = 0; i < ARRAYCOUNT(g_GameFile.weaponsfound); i++) {
#if VERSION >= VERSION_NTSC_1_0
for (i = 0; i < ARRAYCOUNT(g_GameFile.weaponsfound); i++)
#else
for (i = 0; i < ARRAYCOUNT(g_GameFile.weaponsfound) - 2; i++)
#endif
{
g_GameFile.weaponsfound[i] = 0;
}
@ -997,6 +1007,7 @@ s32 gamefileLoad(s32 device)
return -1;
}
#if VERSION >= VERSION_NTSC_1_0
s32 gamefileSave(s32 device, s32 fileid, u16 deviceserial)
{
u32 stack;
@ -1147,6 +1158,470 @@ s32 gamefileSave(s32 device, s32 fileid, u16 deviceserial)
return -1;
}
#else
GLOBAL_ASM(
glabel gamefileSave
/* f10a380: 27bdfeb8 */ addiu $sp,$sp,-328
/* f10a384: afb4002c */ sw $s4,0x2c($sp)
/* f10a388: 3c14800a */ lui $s4,0x800a
/* f10a38c: 2694e6c0 */ addiu $s4,$s4,-6464
/* f10a390: 8e820298 */ lw $v0,0x298($s4)
/* f10a394: afbf0034 */ sw $ra,0x34($sp)
/* f10a398: afb50030 */ sw $s5,0x30($sp)
/* f10a39c: afb30028 */ sw $s3,0x28($sp)
/* f10a3a0: afb20024 */ sw $s2,0x24($sp)
/* f10a3a4: afb10020 */ sw $s1,0x20($sp)
/* f10a3a8: afb0001c */ sw $s0,0x1c($sp)
/* f10a3ac: afa40148 */ sw $a0,0x148($sp)
/* f10a3b0: afa5014c */ sw $a1,0x14c($sp)
/* f10a3b4: 04410005 */ bgez $v0,.NB0f10a3cc
/* f10a3b8: afa60150 */ sw $a2,0x150($sp)
/* f10a3bc: 8e8e029c */ lw $t6,0x29c($s4)
/* f10a3c0: 24110004 */ addiu $s1,$zero,0x4
/* f10a3c4: 05c00003 */ bltz $t6,.NB0f10a3d4
/* f10a3c8: 00000000 */ sll $zero,$zero,0x0
.NB0f10a3cc:
/* f10a3cc: 10000001 */ beqz $zero,.NB0f10a3d4
/* f10a3d0: 00008825 */ or $s1,$zero,$zero
.NB0f10a3d4:
/* f10a3d4: 04410005 */ bgez $v0,.NB0f10a3ec
/* f10a3d8: 24120001 */ addiu $s2,$zero,0x1
/* f10a3dc: 8e8f029c */ lw $t7,0x29c($s4)
/* f10a3e0: 24130005 */ addiu $s3,$zero,0x5
/* f10a3e4: 05e00003 */ bltz $t7,.NB0f10a3f4
/* f10a3e8: 00000000 */ sll $zero,$zero,0x0
.NB0f10a3ec:
/* f10a3ec: 10000001 */ beqz $zero,.NB0f10a3f4
/* f10a3f0: 24130001 */ addiu $s3,$zero,0x1
.NB0f10a3f4:
/* f10a3f4: 3c018007 */ lui $at,0x8007
/* f10a3f8: ac327f70 */ sw $s2,0x7f70($at)
/* f10a3fc: 0fc5339c */ jal optionsGetForwardPitch
/* f10a400: 02202025 */ or $a0,$s1,$zero
/* f10a404: 3c10800a */ lui $s0,0x800a
/* f10a408: 26106704 */ addiu $s0,$s0,0x6704
/* f10a40c: 02002825 */ or $a1,$s0,$zero
/* f10a410: 00002025 */ or $a0,$zero,$zero
/* f10a414: 0fc460eb */ jal pakSetBitflag
/* f10a418: 00403025 */ or $a2,$v0,$zero
/* f10a41c: 0fc533a5 */ jal optionsGetAutoAim
/* f10a420: 02202025 */ or $a0,$s1,$zero
/* f10a424: 02402025 */ or $a0,$s2,$zero
/* f10a428: 02002825 */ or $a1,$s0,$zero
/* f10a42c: 0fc460eb */ jal pakSetBitflag
/* f10a430: 00403025 */ or $a2,$v0,$zero
/* f10a434: 0fc533b7 */ jal optionsGetAimControl
/* f10a438: 02202025 */ or $a0,$s1,$zero
/* f10a43c: 24040002 */ addiu $a0,$zero,0x2
/* f10a440: 02002825 */ or $a1,$s0,$zero
/* f10a444: 0fc460eb */ jal pakSetBitflag
/* f10a448: 00403025 */ or $a2,$v0,$zero
/* f10a44c: 0fc533c0 */ jal optionsGetSightOnScreen
/* f10a450: 02202025 */ or $a0,$s1,$zero
/* f10a454: 24040003 */ addiu $a0,$zero,0x3
/* f10a458: 02002825 */ or $a1,$s0,$zero
/* f10a45c: 0fc460eb */ jal pakSetBitflag
/* f10a460: 00403025 */ or $a2,$v0,$zero
/* f10a464: 0fc533ae */ jal optionsGetLookAhead
/* f10a468: 02202025 */ or $a0,$s1,$zero
/* f10a46c: 24040004 */ addiu $a0,$zero,0x4
/* f10a470: 02002825 */ or $a1,$s0,$zero
/* f10a474: 0fc460eb */ jal pakSetBitflag
/* f10a478: 00403025 */ or $a2,$v0,$zero
/* f10a47c: 0fc533c9 */ jal optionsGetAmmoOnScreen
/* f10a480: 02202025 */ or $a0,$s1,$zero
/* f10a484: 24040005 */ addiu $a0,$zero,0x5
/* f10a488: 02002825 */ or $a1,$s0,$zero
/* f10a48c: 0fc460eb */ jal pakSetBitflag
/* f10a490: 00403025 */ or $a2,$v0,$zero
/* f10a494: 0fc53405 */ jal optionsGetHeadRoll
/* f10a498: 02202025 */ or $a0,$s1,$zero
/* f10a49c: 24040009 */ addiu $a0,$zero,0x9
/* f10a4a0: 02002825 */ or $a1,$s0,$zero
/* f10a4a4: 0fc460eb */ jal pakSetBitflag
/* f10a4a8: 00403025 */ or $a2,$v0,$zero
/* f10a4ac: 0fc533d2 */ jal optionsGetShowGunFunction
/* f10a4b0: 02202025 */ or $a0,$s1,$zero
/* f10a4b4: 2404000a */ addiu $a0,$zero,0xa
/* f10a4b8: 02002825 */ or $a1,$s0,$zero
/* f10a4bc: 0fc460eb */ jal pakSetBitflag
/* f10a4c0: 00403025 */ or $a2,$v0,$zero
/* f10a4c4: 0fc533db */ jal optionsGetAlwaysShowTarget
/* f10a4c8: 02202025 */ or $a0,$s1,$zero
/* f10a4cc: 24040015 */ addiu $a0,$zero,0x15
/* f10a4d0: 02002825 */ or $a1,$s0,$zero
/* f10a4d4: 0fc460eb */ jal pakSetBitflag
/* f10a4d8: 00403025 */ or $a2,$v0,$zero
/* f10a4dc: 0fc533e4 */ jal optionsGetShowZoomRange
/* f10a4e0: 02202025 */ or $a0,$s1,$zero
/* f10a4e4: 24040017 */ addiu $a0,$zero,0x17
/* f10a4e8: 02002825 */ or $a1,$s0,$zero
/* f10a4ec: 0fc460eb */ jal pakSetBitflag
/* f10a4f0: 00403025 */ or $a2,$v0,$zero
/* f10a4f4: 0fc533f6 */ jal optionsGetShowMissionTime
/* f10a4f8: 02202025 */ or $a0,$s1,$zero
/* f10a4fc: 2404001a */ addiu $a0,$zero,0x1a
/* f10a500: 02002825 */ or $a1,$s0,$zero
/* f10a504: 0fc460eb */ jal pakSetBitflag
/* f10a508: 00403025 */ or $a2,$v0,$zero
/* f10a50c: 0fc533ed */ jal optionsGetPaintball
/* f10a510: 02202025 */ or $a0,$s1,$zero
/* f10a514: 24040020 */ addiu $a0,$zero,0x20
/* f10a518: 02002825 */ or $a1,$s0,$zero
/* f10a51c: 0fc460eb */ jal pakSetBitflag
/* f10a520: 00403025 */ or $a2,$v0,$zero
/* f10a524: 0fc5339c */ jal optionsGetForwardPitch
/* f10a528: 02602025 */ or $a0,$s3,$zero
/* f10a52c: 2404000c */ addiu $a0,$zero,0xc
/* f10a530: 02002825 */ or $a1,$s0,$zero
/* f10a534: 0fc460eb */ jal pakSetBitflag
/* f10a538: 00403025 */ or $a2,$v0,$zero
/* f10a53c: 0fc533a5 */ jal optionsGetAutoAim
/* f10a540: 02602025 */ or $a0,$s3,$zero
/* f10a544: 2404000d */ addiu $a0,$zero,0xd
/* f10a548: 02002825 */ or $a1,$s0,$zero
/* f10a54c: 0fc460eb */ jal pakSetBitflag
/* f10a550: 00403025 */ or $a2,$v0,$zero
/* f10a554: 0fc533b7 */ jal optionsGetAimControl
/* f10a558: 02602025 */ or $a0,$s3,$zero
/* f10a55c: 2404000e */ addiu $a0,$zero,0xe
/* f10a560: 02002825 */ or $a1,$s0,$zero
/* f10a564: 0fc460eb */ jal pakSetBitflag
/* f10a568: 00403025 */ or $a2,$v0,$zero
/* f10a56c: 0fc533c0 */ jal optionsGetSightOnScreen
/* f10a570: 02602025 */ or $a0,$s3,$zero
/* f10a574: 2404000f */ addiu $a0,$zero,0xf
/* f10a578: 02002825 */ or $a1,$s0,$zero
/* f10a57c: 0fc460eb */ jal pakSetBitflag
/* f10a580: 00403025 */ or $a2,$v0,$zero
/* f10a584: 0fc533ae */ jal optionsGetLookAhead
/* f10a588: 02602025 */ or $a0,$s3,$zero
/* f10a58c: 24040010 */ addiu $a0,$zero,0x10
/* f10a590: 02002825 */ or $a1,$s0,$zero
/* f10a594: 0fc460eb */ jal pakSetBitflag
/* f10a598: 00403025 */ or $a2,$v0,$zero
/* f10a59c: 0fc533c9 */ jal optionsGetAmmoOnScreen
/* f10a5a0: 02602025 */ or $a0,$s3,$zero
/* f10a5a4: 24040011 */ addiu $a0,$zero,0x11
/* f10a5a8: 02002825 */ or $a1,$s0,$zero
/* f10a5ac: 0fc460eb */ jal pakSetBitflag
/* f10a5b0: 00403025 */ or $a2,$v0,$zero
/* f10a5b4: 0fc53405 */ jal optionsGetHeadRoll
/* f10a5b8: 02602025 */ or $a0,$s3,$zero
/* f10a5bc: 24040012 */ addiu $a0,$zero,0x12
/* f10a5c0: 02002825 */ or $a1,$s0,$zero
/* f10a5c4: 0fc460eb */ jal pakSetBitflag
/* f10a5c8: 00403025 */ or $a2,$v0,$zero
/* f10a5cc: 0fc533d2 */ jal optionsGetShowGunFunction
/* f10a5d0: 02602025 */ or $a0,$s3,$zero
/* f10a5d4: 24040013 */ addiu $a0,$zero,0x13
/* f10a5d8: 02002825 */ or $a1,$s0,$zero
/* f10a5dc: 0fc460eb */ jal pakSetBitflag
/* f10a5e0: 00403025 */ or $a2,$v0,$zero
/* f10a5e4: 0fc533db */ jal optionsGetAlwaysShowTarget
/* f10a5e8: 02602025 */ or $a0,$s3,$zero
/* f10a5ec: 24040016 */ addiu $a0,$zero,0x16
/* f10a5f0: 02002825 */ or $a1,$s0,$zero
/* f10a5f4: 0fc460eb */ jal pakSetBitflag
/* f10a5f8: 00403025 */ or $a2,$v0,$zero
/* f10a5fc: 0fc533e4 */ jal optionsGetShowZoomRange
/* f10a600: 02602025 */ or $a0,$s3,$zero
/* f10a604: 24040018 */ addiu $a0,$zero,0x18
/* f10a608: 02002825 */ or $a1,$s0,$zero
/* f10a60c: 0fc460eb */ jal pakSetBitflag
/* f10a610: 00403025 */ or $a2,$v0,$zero
/* f10a614: 0fc533f6 */ jal optionsGetShowMissionTime
/* f10a618: 02602025 */ or $a0,$s3,$zero
/* f10a61c: 2404001b */ addiu $a0,$zero,0x1b
/* f10a620: 02002825 */ or $a1,$s0,$zero
/* f10a624: 0fc460eb */ jal pakSetBitflag
/* f10a628: 00403025 */ or $a2,$v0,$zero
/* f10a62c: 0fc533ed */ jal optionsGetPaintball
/* f10a630: 02602025 */ or $a0,$s3,$zero
/* f10a634: 24040021 */ addiu $a0,$zero,0x21
/* f10a638: 02002825 */ or $a1,$s0,$zero
/* f10a63c: 0fc460eb */ jal pakSetBitflag
/* f10a640: 00403025 */ or $a2,$v0,$zero
/* f10a644: 0fc53588 */ jal optionsGetScreenSplit
/* f10a648: 00000000 */ sll $zero,$zero,0x0
/* f10a64c: 24040019 */ addiu $a0,$zero,0x19
/* f10a650: 02002825 */ or $a1,$s0,$zero
/* f10a654: 0fc460eb */ jal pakSetBitflag
/* f10a658: 00403025 */ or $a2,$v0,$zero
/* f10a65c: 0fc53582 */ jal optionsGetScreenRatio
/* f10a660: 00000000 */ sll $zero,$zero,0x0
/* f10a664: 24040007 */ addiu $a0,$zero,0x7
/* f10a668: 02002825 */ or $a1,$s0,$zero
/* f10a66c: 0fc460eb */ jal pakSetBitflag
/* f10a670: 00403025 */ or $a2,$v0,$zero
/* f10a674: 0fc5351c */ jal optionsGetEffectiveScreenSize
/* f10a678: 00000000 */ sll $zero,$zero,0x0
/* f10a67c: 00523026 */ xor $a2,$v0,$s2
/* f10a680: 2cc60001 */ sltiu $a2,$a2,0x1
/* f10a684: 24040006 */ addiu $a0,$zero,0x6
/* f10a688: 0fc460eb */ jal pakSetBitflag
/* f10a68c: 02002825 */ or $a1,$s0,$zero
/* f10a690: 0fc5351c */ jal optionsGetEffectiveScreenSize
/* f10a694: 00000000 */ sll $zero,$zero,0x0
/* f10a698: 24150002 */ addiu $s5,$zero,0x2
/* f10a69c: 00553026 */ xor $a2,$v0,$s5
/* f10a6a0: 2cc60001 */ sltiu $a2,$a2,0x1
/* f10a6a4: 24040008 */ addiu $a0,$zero,0x8
/* f10a6a8: 0fc460eb */ jal pakSetBitflag
/* f10a6ac: 02002825 */ or $a1,$s0,$zero
/* f10a6b0: 3c188007 */ lui $t8,0x8007
/* f10a6b4: 8f182d88 */ lw $t8,0x2d88($t8)
/* f10a6b8: 24040022 */ addiu $a0,$zero,0x22
/* f10a6bc: 02002825 */ or $a1,$s0,$zero
/* f10a6c0: 02583026 */ xor $a2,$s2,$t8
/* f10a6c4: 0fc460eb */ jal pakSetBitflag
/* f10a6c8: 2cc60001 */ sltiu $a2,$a2,0x1
/* f10a6cc: 0fc533ff */ jal optionsGetInGameSubtitles
/* f10a6d0: 00000000 */ sll $zero,$zero,0x0
/* f10a6d4: 2404000b */ addiu $a0,$zero,0xb
/* f10a6d8: 02002825 */ or $a1,$s0,$zero
/* f10a6dc: 0fc460eb */ jal pakSetBitflag
/* f10a6e0: 00403025 */ or $a2,$v0,$zero
/* f10a6e4: 0fc53402 */ jal optionsGetCutsceneSubtitles
/* f10a6e8: 00000000 */ sll $zero,$zero,0x0
/* f10a6ec: 24040014 */ addiu $a0,$zero,0x14
/* f10a6f0: 02002825 */ or $a1,$s0,$zero
/* f10a6f4: 0fc460eb */ jal pakSetBitflag
/* f10a6f8: 00403025 */ or $a2,$v0,$zero
/* f10a6fc: 24040040 */ addiu $a0,$zero,0x40
/* f10a700: 02002825 */ or $a1,$s0,$zero
/* f10a704: 0fc460eb */ jal pakSetBitflag
/* f10a708: 928604e3 */ lbu $a2,0x4e3($s4)
/* f10a70c: 0fc5351c */ jal optionsGetEffectiveScreenSize
/* f10a710: 00000000 */ sll $zero,$zero,0x0
/* f10a714: 50400002 */ beqzl $v0,.NB0f10a720
/* f10a718: 8e990450 */ lw $t9,0x450($s4)
/* f10a71c: 8e990450 */ lw $t9,0x450($s4)
.NB0f10a720:
/* f10a720: 2404001f */ addiu $a0,$zero,0x1f
/* f10a724: 02002825 */ or $a1,$s0,$zero
/* f10a728: 02593026 */ xor $a2,$s2,$t9
/* f10a72c: 0fc460eb */ jal pakSetBitflag
/* f10a730: 2cc60001 */ sltiu $a2,$a2,0x1
/* f10a734: 8e880448 */ lw $t0,0x448($s4)
/* f10a738: 2404001c */ addiu $a0,$zero,0x1c
/* f10a73c: 02002825 */ or $a1,$s0,$zero
/* f10a740: 02483026 */ xor $a2,$s2,$t0
/* f10a744: 0fc460eb */ jal pakSetBitflag
/* f10a748: 2cc60001 */ sltiu $a2,$a2,0x1
/* f10a74c: 8e890454 */ lw $t1,0x454($s4)
/* f10a750: 2404001d */ addiu $a0,$zero,0x1d
/* f10a754: 02002825 */ or $a1,$s0,$zero
/* f10a758: 02493026 */ xor $a2,$s2,$t1
/* f10a75c: 0fc460eb */ jal pakSetBitflag
/* f10a760: 2cc60001 */ sltiu $a2,$a2,0x1
/* f10a764: 8e8a044c */ lw $t2,0x44c($s4)
/* f10a768: 2404001e */ addiu $a0,$zero,0x1e
/* f10a76c: 02002825 */ or $a1,$s0,$zero
/* f10a770: 024a3026 */ xor $a2,$s2,$t2
/* f10a774: 0fc460eb */ jal pakSetBitflag
/* f10a778: 2cc60001 */ sltiu $a2,$a2,0x1
/* f10a77c: 8fab0148 */ lw $t3,0x148($sp)
/* f10a780: 27b4004c */ addiu $s4,$sp,0x4c
/* f10a784: 2402ffff */ addiu $v0,$zero,-1
/* f10a788: 056000ae */ bltz $t3,.NB0f10aa44
/* f10a78c: 00000000 */ sll $zero,$zero,0x0
/* f10a790: 0fc34ad1 */ jal savebufferClear
/* f10a794: 02802025 */ or $a0,$s4,$zero
/* f10a798: 3c12800a */ lui $s2,0x800a
/* f10a79c: 265266f0 */ addiu $s2,$s2,0x66f0
/* f10a7a0: 02402825 */ or $a1,$s2,$zero
/* f10a7a4: 0fc34b23 */ jal func0f0d55a4
/* f10a7a8: 02802025 */ or $a0,$s4,$zero
/* f10a7ac: 9245000b */ lbu $a1,0xb($s2)
/* f10a7b0: 02802025 */ or $a0,$s4,$zero
/* f10a7b4: 24060005 */ addiu $a2,$zero,0x5
/* f10a7b8: 000560c2 */ srl $t4,$a1,0x3
/* f10a7bc: 0fc34a9e */ jal savebufferOr
/* f10a7c0: 01802825 */ or $a1,$t4,$zero
/* f10a7c4: 02802025 */ or $a0,$s4,$zero
/* f10a7c8: 8e450010 */ lw $a1,0x10($s2)
/* f10a7cc: 0fc34a9e */ jal savebufferOr
/* f10a7d0: 24060020 */ addiu $a2,$zero,0x20
/* f10a7d4: 8e450008 */ lw $a1,0x8($s2)
/* f10a7d8: 02802025 */ or $a0,$s4,$zero
/* f10a7dc: 24060002 */ addiu $a2,$zero,0x2
/* f10a7e0: 30ad0007 */ andi $t5,$a1,0x7
/* f10a7e4: 0fc34a9e */ jal savebufferOr
/* f10a7e8: 01a02825 */ or $a1,$t5,$zero
/* f10a7ec: 02802025 */ or $a0,$s4,$zero
/* f10a7f0: 9245000c */ lbu $a1,0xc($s2)
/* f10a7f4: 0fc34a9e */ jal savebufferOr
/* f10a7f8: 24060005 */ addiu $a2,$zero,0x5
/* f10a7fc: 3c078006 */ lui $a3,0x8006
/* f10a800: 94e7f6e8 */ lhu $a3,-0x918($a3)
/* f10a804: 02802025 */ or $a0,$s4,$zero
/* f10a808: 24060006 */ addiu $a2,$zero,0x6
/* f10a80c: 000771c3 */ sra $t6,$a3,0x7
/* f10a810: 0fc34a9e */ jal savebufferOr
/* f10a814: 000e2882 */ srl $a1,$t6,0x2
/* f10a818: 0fc5358f */ jal optionsGetMusicVolume
/* f10a81c: 00000000 */ sll $zero,$zero,0x0
/* f10a820: 000229c3 */ sra $a1,$v0,0x7
/* f10a824: 00057882 */ srl $t7,$a1,0x2
/* f10a828: 01e02825 */ or $a1,$t7,$zero
/* f10a82c: 02802025 */ or $a0,$s4,$zero
/* f10a830: 0fc34a9e */ jal savebufferOr
/* f10a834: 24060006 */ addiu $a2,$zero,0x6
/* f10a838: 3c078006 */ lui $a3,0x8006
/* f10a83c: 8ce5f6ec */ lw $a1,-0x914($a3)
/* f10a840: 02802025 */ or $a0,$s4,$zero
/* f10a844: 0fc34a9e */ jal savebufferOr
/* f10a848: 24060002 */ addiu $a2,$zero,0x2
/* f10a84c: 0fc53380 */ jal optionsGetControlMode
/* f10a850: 02202025 */ or $a0,$s1,$zero
/* f10a854: 02802025 */ or $a0,$s4,$zero
/* f10a858: 00402825 */ or $a1,$v0,$zero
/* f10a85c: 0fc34a9e */ jal savebufferOr
/* f10a860: 24060003 */ addiu $a2,$zero,0x3
/* f10a864: 0fc53380 */ jal optionsGetControlMode
/* f10a868: 02602025 */ or $a0,$s3,$zero
/* f10a86c: 02802025 */ or $a0,$s4,$zero
/* f10a870: 00402825 */ or $a1,$v0,$zero
/* f10a874: 0fc34a9e */ jal savebufferOr
/* f10a878: 24060003 */ addiu $a2,$zero,0x3
/* f10a87c: 3c10800a */ lui $s0,0x800a
/* f10a880: 3c11800a */ lui $s1,0x800a
/* f10a884: 263166fa */ addiu $s1,$s1,0x66fa
/* f10a888: 261066f0 */ addiu $s0,$s0,0x66f0
/* f10a88c: 02802025 */ or $a0,$s4,$zero
.NB0f10a890:
/* f10a890: 92050014 */ lbu $a1,0x14($s0)
/* f10a894: 0fc34a9e */ jal savebufferOr
/* f10a898: 24060008 */ addiu $a2,$zero,0x8
/* f10a89c: 26100001 */ addiu $s0,$s0,0x1
/* f10a8a0: 0211082b */ sltu $at,$s0,$s1
/* f10a8a4: 5420fffa */ bnezl $at,.NB0f10a890
/* f10a8a8: 02802025 */ or $a0,$s4,$zero
/* f10a8ac: 02802025 */ or $a0,$s4,$zero
/* f10a8b0: 9645001e */ lhu $a1,0x1e($s2)
/* f10a8b4: 0fc34a9e */ jal savebufferOr
/* f10a8b8: 24060010 */ addiu $a2,$zero,0x10
/* f10a8bc: 3c15800a */ lui $s5,0x800a
/* f10a8c0: 26b566f0 */ addiu $s5,$s5,0x66f0
/* f10a8c4: 24130006 */ addiu $s3,$zero,0x6
/* f10a8c8: 00008825 */ or $s1,$zero,$zero
.NB0f10a8cc:
/* f10a8cc: 02a09025 */ or $s2,$s5,$zero
.NB0f10a8d0:
/* f10a8d0: 02802025 */ or $a0,$s4,$zero
/* f10a8d4: 96450020 */ lhu $a1,0x20($s2)
/* f10a8d8: 0fc34a9e */ jal savebufferOr
/* f10a8dc: 2406000c */ addiu $a2,$zero,0xc
/* f10a8e0: 26310002 */ addiu $s1,$s1,0x2
/* f10a8e4: 1633fffa */ bne $s1,$s3,.NB0f10a8d0
/* f10a8e8: 26520002 */ addiu $s2,$s2,0x2
/* f10a8ec: 3c18800a */ lui $t8,0x800a
/* f10a8f0: 2718676e */ addiu $t8,$t8,0x676e
/* f10a8f4: 26b50006 */ addiu $s5,$s5,0x6
/* f10a8f8: 02b8082b */ sltu $at,$s5,$t8
/* f10a8fc: 5420fff3 */ bnezl $at,.NB0f10a8cc
/* f10a900: 00008825 */ or $s1,$zero,$zero
/* f10a904: 00008825 */ or $s1,$zero,$zero
/* f10a908: 24120005 */ addiu $s2,$zero,0x5
/* f10a90c: 24100001 */ addiu $s0,$zero,0x1
.NB0f10a910:
/* f10a910: 02202025 */ or $a0,$s1,$zero
.NB0f10a914:
/* f10a914: 0fc65912 */ jal mpIsChallengeCompletedByAnyPlayerWithNumPlayers
/* f10a918: 02002825 */ or $a1,$s0,$zero
/* f10a91c: 02802025 */ or $a0,$s4,$zero
/* f10a920: 00402825 */ or $a1,$v0,$zero
/* f10a924: 0fc34a9e */ jal savebufferOr
/* f10a928: 24060001 */ addiu $a2,$zero,0x1
/* f10a92c: 26100001 */ addiu $s0,$s0,0x1
/* f10a930: 5612fff8 */ bnel $s0,$s2,.NB0f10a914
/* f10a934: 02202025 */ or $a0,$s1,$zero
/* f10a938: 26310001 */ addiu $s1,$s1,0x1
/* f10a93c: 2a21001e */ slti $at,$s1,0x1e
/* f10a940: 5420fff3 */ bnezl $at,.NB0f10a910
/* f10a944: 24100001 */ addiu $s0,$zero,0x1
/* f10a948: 3c10800a */ lui $s0,0x800a
/* f10a94c: 3c11800a */ lui $s1,0x800a
/* f10a950: 263166fc */ addiu $s1,$s1,0x66fc
/* f10a954: 261066f0 */ addiu $s0,$s0,0x66f0
/* f10a958: 02802025 */ or $a0,$s4,$zero
.NB0f10a95c:
/* f10a95c: 8e0500a0 */ lw $a1,0xa0($s0)
/* f10a960: 0fc34a9e */ jal savebufferOr
/* f10a964: 24060015 */ addiu $a2,$zero,0x15
/* f10a968: 26100004 */ addiu $s0,$s0,0x4
/* f10a96c: 0211082b */ sltu $at,$s0,$s1
/* f10a970: 5420fffa */ bnezl $at,.NB0f10a95c
/* f10a974: 02802025 */ or $a0,$s4,$zero
/* f10a978: 3c10800a */ lui $s0,0x800a
/* f10a97c: 3c12800a */ lui $s2,0x800a
/* f10a980: 3c11800a */ lui $s1,0x800a
/* f10a984: 263166f8 */ addiu $s1,$s1,0x66f8
/* f10a988: 265266f9 */ addiu $s2,$s2,0x66f9
/* f10a98c: 261066f0 */ addiu $s0,$s0,0x66f0
.NB0f10a990:
/* f10a990: 16110003 */ bne $s0,$s1,.NB0f10a9a0
/* f10a994: 02802025 */ or $a0,$s4,$zero
/* f10a998: 10000002 */ beqz $zero,.NB0f10a9a4
/* f10a99c: 24060002 */ addiu $a2,$zero,0x2
.NB0f10a9a0:
/* f10a9a0: 24060008 */ addiu $a2,$zero,0x8
.NB0f10a9a4:
/* f10a9a4: 0fc34a9e */ jal savebufferOr
/* f10a9a8: 920500ac */ lbu $a1,0xac($s0)
/* f10a9ac: 26100001 */ addiu $s0,$s0,0x1
/* f10a9b0: 0212082b */ sltu $at,$s0,$s2
/* f10a9b4: 1420fff6 */ bnez $at,.NB0f10a990
/* f10a9b8: 00000000 */ sll $zero,$zero,0x0
/* f10a9bc: 3c10800a */ lui $s0,0x800a
/* f10a9c0: 3c11800a */ lui $s1,0x800a
/* f10a9c4: 263166f4 */ addiu $s1,$s1,0x66f4
/* f10a9c8: 261066f0 */ addiu $s0,$s0,0x66f0
/* f10a9cc: 02802025 */ or $a0,$s4,$zero
.NB0f10a9d0:
/* f10a9d0: 920500b5 */ lbu $a1,0xb5($s0)
/* f10a9d4: 0fc34a9e */ jal savebufferOr
/* f10a9d8: 24060008 */ addiu $a2,$zero,0x8
/* f10a9dc: 26100001 */ addiu $s0,$s0,0x1
/* f10a9e0: 5611fffb */ bnel $s0,$s1,.NB0f10a9d0
/* f10a9e4: 02802025 */ or $a0,$s4,$zero
/* f10a9e8: 0fc34aeb */ jal func0f0d54c4
/* f10a9ec: 02802025 */ or $a0,$s4,$zero
/* f10a9f0: 27b90140 */ addiu $t9,$sp,0x140
/* f10a9f4: afb90010 */ sw $t9,0x10($sp)
/* f10a9f8: 83a4014b */ lb $a0,0x14b($sp)
/* f10a9fc: 8fa5014c */ lw $a1,0x14c($sp)
/* f10aa00: 24060080 */ addiu $a2,$zero,0x80
/* f10aa04: 27a70050 */ addiu $a3,$sp,0x50
/* f10aa08: 0fc442fb */ jal pakSaveAtGuid
/* f10aa0c: afa00014 */ sw $zero,0x14($sp)
/* f10aa10: 3c01800a */ lui $at,0x800a
/* f10aa14: 14400009 */ bnez $v0,.NB0f10aa3c
/* f10aa18: ac2266e8 */ sw $v0,0x66e8($at)
/* f10aa1c: 8fa80140 */ lw $t0,0x140($sp)
/* f10aa20: 97a90152 */ lhu $t1,0x152($sp)
/* f10aa24: 3c03800a */ lui $v1,0x800a
/* f10aa28: 246367b0 */ addiu $v1,$v1,0x67b0
/* f10aa2c: 00001025 */ or $v0,$zero,$zero
/* f10aa30: ac680000 */ sw $t0,0x0($v1)
/* f10aa34: 10000003 */ beqz $zero,.NB0f10aa44
/* f10aa38: a4690004 */ sh $t1,0x4($v1)
.NB0f10aa3c:
/* f10aa3c: 10000001 */ beqz $zero,.NB0f10aa44
/* f10aa40: 2402ffff */ addiu $v0,$zero,-1
.NB0f10aa44:
/* f10aa44: 8fbf0034 */ lw $ra,0x34($sp)
/* f10aa48: 8fb0001c */ lw $s0,0x1c($sp)
/* f10aa4c: 8fb10020 */ lw $s1,0x20($sp)
/* f10aa50: 8fb20024 */ lw $s2,0x24($sp)
/* f10aa54: 8fb30028 */ lw $s3,0x28($sp)
/* f10aa58: 8fb4002c */ lw $s4,0x2c($sp)
/* f10aa5c: 8fb50030 */ lw $s5,0x30($sp)
/* f10aa60: 03e00008 */ jr $ra
/* f10aa64: 27bd0148 */ addiu $sp,$sp,0x148
);
#endif
void gamefileGetOverview(char *arg0, char *name, u8 *stage, u8 *difficulty, u32 *time)
{

View File

@ -21,14 +21,6 @@
#include "data.h"
#include "types.h"
const char var7f1ade80[] = "%s%s%4.2fX";
const char var7f1ade8c[] = "";
const char var7f1ade90[] = "";
const char var7f1ade94[] = "/";
const char var7f1ade98[] = "%s%s%4.2fX";
const char var7f1adea4[] = "";
const char var7f1adea8[] = "";
u32 g_NextHudMessageId;
u8 g_HudmsgsActive = 0;
@ -439,6 +431,14 @@ glabel hudmsgRenderMissionTimer
// return textRender(gdl, &sp8c, &sp88, buffer, g_CharsNumeric, g_FontNumeric, textcolour, 0x000000a0, viGetWidth(), viGetHeight(), 0, 0);
//}
const char var7f1ade80[] = "%s%s%4.2fX";
const char var7f1ade8c[] = "";
const char var7f1ade90[] = "";
const char var7f1ade94[] = "/";
const char var7f1ade98[] = "%s%s%4.2fX";
const char var7f1adea4[] = "";
const char var7f1adea8[] = "";
#if VERSION >= VERSION_NTSC_FINAL
GLOBAL_ASM(
glabel hudmsgRenderZoomRange
@ -1007,12 +1007,12 @@ glabel hudmsgRenderZoomRange
/* f0dd508: 46062300 */ add.s $f12,$f4,$f6
/* f0dd50c: 46006221 */ cvt.d.s $f8,$f12
.L0f0dd510_2:
/* f0dd510: 3c057f1b */ lui $a1,0x7f1b
/* f0dd514: 3c067f1b */ lui $a2,0x7f1b
/* f0dd518: 3c077f1b */ lui $a3,0x7f1b
/* f0dd51c: 24e7dc50 */ addiu $a3,$a3,-9136
/* f0dd520: 24c6dc4c */ addiu $a2,$a2,-9140
/* f0dd524: 24a5dc40 */ addiu $a1,$a1,-9152
/* f0dd510: 3c057f1b */ lui $a1,%hi(var7f1ade80)
/* f0dd514: 3c067f1b */ lui $a2,%hi(var7f1ade8c)
/* f0dd518: 3c077f1b */ lui $a3,%hi(var7f1ade90)
/* f0dd51c: 24e7dc50 */ addiu $a3,$a3,%lo(var7f1ade90)
/* f0dd520: 24c6dc4c */ addiu $a2,$a2,%lo(var7f1ade8c)
/* f0dd524: 24a5dc40 */ addiu $a1,$a1,%lo(var7f1ade80)
/* f0dd528: f7a80010 */ sdc1 $f8,0x10($sp)
/* f0dd52c: 0c004dad */ jal sprintf
/* f0dd530: 27a40084 */ addiu $a0,$sp,0x84
@ -1080,9 +1080,9 @@ glabel hudmsgRenderZoomRange
/* f0dd628: afad0010 */ sw $t5,0x10($sp)
/* f0dd62c: 0fc55b06 */ jal textRender
/* f0dd630: afaa0020 */ sw $t2,0x20($sp)
/* f0dd634: 3c057f1b */ lui $a1,0x7f1b
/* f0dd634: 3c057f1b */ lui $a1,%hi(var7f1ade94)
/* f0dd638: afa200c0 */ sw $v0,0xc0($sp)
/* f0dd63c: 24a5dc54 */ addiu $a1,$a1,-9132
/* f0dd63c: 24a5dc54 */ addiu $a1,$a1,%lo(var7f1ade94)
/* f0dd640: 0c004dad */ jal sprintf
/* f0dd644: 27a40084 */ addiu $a0,$sp,0x84
/* f0dd648: 3c0b8008 */ lui $t3,%hi(g_FontNumeric)
@ -1138,15 +1138,15 @@ glabel hudmsgRenderZoomRange
/* f0dd710: 0fc55b06 */ jal textRender
/* f0dd714: afad0020 */ sw $t5,0x20($sp)
/* f0dd718: c7aa009c */ lwc1 $f10,0x9c($sp)
/* f0dd71c: 3c057f1b */ lui $a1,0x7f1b
/* f0dd720: 3c067f1b */ lui $a2,0x7f1b
/* f0dd71c: 3c057f1b */ lui $a1,%hi(var7f1ade98)
/* f0dd720: 3c067f1b */ lui $a2,%hi(var7f1adea4)
/* f0dd724: 460054a1 */ cvt.d.s $f18,$f10
/* f0dd728: 3c077f1b */ lui $a3,0x7f1b
/* f0dd728: 3c077f1b */ lui $a3,%hi(var7f1adea8)
/* f0dd72c: afa200c0 */ sw $v0,0xc0($sp)
/* f0dd730: 24e7dc68 */ addiu $a3,$a3,-9112
/* f0dd730: 24e7dc68 */ addiu $a3,$a3,%lo(var7f1adea8)
/* f0dd734: f7b20010 */ sdc1 $f18,0x10($sp)
/* f0dd738: 24c6dc64 */ addiu $a2,$a2,-9116
/* f0dd73c: 24a5dc58 */ addiu $a1,$a1,-9128
/* f0dd738: 24c6dc64 */ addiu $a2,$a2,%lo(var7f1adea4)
/* f0dd73c: 24a5dc58 */ addiu $a1,$a1,%lo(var7f1ade98)
/* f0dd740: 0c004dad */ jal sprintf
/* f0dd744: 27a40084 */ addiu $a0,$sp,0x84
/* f0dd748: 3c0e8008 */ lui $t6,%hi(g_FontNumeric)

View File

@ -4377,11 +4377,6 @@ Gfx *lvRender(Gfx *gdl)
return gdl;
}
#else
u32 var80086910nb[] = {
0x00000000, 0x00000000, 0x00000000, 0x1e000000,
0x00000000, 0x00000064, 0x00000000, 0x00000000,
};
GLOBAL_ASM(
glabel lvRender
.late_rodata
@ -6516,11 +6511,24 @@ u32 var800840a4 = 0;
u32 var800840a8 = 100;
u32 var800840ac = 0;
u32 g_CutsceneTime240_60 = 0;
#else
#elif VERSION >= VERSION_NTSC_1_0
u32 g_CutsceneTime240_60 = 0;
u32 var800840a8 = 0;
u32 var800840ac = 0;
u32 var800840b0 = 0;
#else
u32 var80086910nb = 0;
u32 var80086914nb = 0;
u32 var80086918nb = 0;
u32 var8008691cnb = 0x1e000000;
u32 var80086920nb = 0;
u32 var80086924nb = 100;
u32 var80086928nb = 0;
u32 g_CutsceneTime240_60 = 0;
u32 var80086930nb = 0;
u32 var800840a8 = 0;
u32 var800840ac = 0;
u32 var800840b0 = 0;
#endif
u32 var800840b4 = 0;

View File

@ -2113,10 +2113,10 @@ struct stageoverviewentry g_StageNames[NUM_SOLOSTAGES] = {
{ STAGE_DEFENSE, 0x1a, L_OPTIONS_161, L_OPTIONS_162, L_OPTIONS_161 },
{ STAGE_ATTACKSHIP, 0x1b, L_OPTIONS_163, L_OPTIONS_164, L_OPTIONS_163 },
{ STAGE_SKEDARRUINS, 0x1c, L_OPTIONS_165, L_OPTIONS_166, L_OPTIONS_165 },
{ STAGE_MBR, 0x1c, L_OPTIONS_167, L_OPTIONS_003, L_OPTIONS_167 },
{ STAGE_MAIANSOS, 0x1c, L_OPTIONS_168, L_OPTIONS_003, L_OPTIONS_168 },
{ STAGE_WAR, 0x1c, L_OPTIONS_170, L_OPTIONS_003, L_OPTIONS_170 },
{ STAGE_DUEL, 0x1c, L_OPTIONS_171, L_OPTIONS_003, L_OPTIONS_171 },
{ STAGE_MBR, 0x1c, L_OPTIONS_167, L_OPTIONS_003, L_OPTIONS_167 },
{ STAGE_MAIANSOS, 0x1c, L_OPTIONS_168, L_OPTIONS_003, L_OPTIONS_168 },
{ STAGE_WAR, 0x1c, L_OPTIONS_170, L_OPTIONS_003, L_OPTIONS_170 },
{ STAGE_DUEL, 0x1c, L_OPTIONS_171, L_OPTIONS_003, L_OPTIONS_171 },
};
s32 getNumUnlockedSpecialStages(void)
@ -2134,7 +2134,7 @@ s32 getNumUnlockedSpecialStages(void)
if (g_MissionConfig.iscoop || g_MissionConfig.isanti) {
offsetforduel = 0;
} else {
for (i = 0; i != 32; i++) {
for (i = 0; i < (VERSION >= VERSION_NTSC_1_0 ? 32 : 33); i++) {
if (ciGetFiringRangeScore(i) <= 0) {
offsetforduel = 0;
}
@ -4978,7 +4978,7 @@ char *invMenuTextWeaponDescription(struct menuitem *item)
}
if (g_InventoryWeapon == WEAPON_NECKLACE
&& g_Vars.stagenum == STAGE_ATTACKSHIP
&& g_Vars.stagenum == (VERSION >= VERSION_NTSC_1_0 ? STAGE_ATTACKSHIP : STAGE_SKEDARRUINS)
&& lvGetDifficulty() >= DIFF_PA) {
#if VERSION >= VERSION_NTSC_1_0
// Phrases included here to assist people searching the code for them:
@ -5040,6 +5040,7 @@ char *invMenuTextWeaponDescription(struct menuitem *item)
return langGet(L_OPTIONS_003); // "\n"
}
#if VERSION >= VERSION_NTSC_1_0
GLOBAL_ASM(
glabel menuhandler00106028
.late_rodata
@ -5164,7 +5165,134 @@ glabel var7f1b2e44
/* f106170: 03e00008 */ jr $ra
/* f106174: 00000000 */ nop
);
#else
GLOBAL_ASM(
glabel menuhandler00106028
.late_rodata
glabel var7f1b2e08
.word menuhandler00106028+0x48 # f106070
glabel var7f1b2e0c
.word menuhandler00106028+0x30 # f106058
glabel var7f1b2e10
.word menuhandler00106028+0x5c # f106084
glabel var7f1b2e14
.word menuhandler00106028+0x38 # f106060
glabel var7f1b2e18
.word menuhandler00106028+0x40 # f106068
glabel var7f1b2e1c
.word menuhandler00106028+0x7c # f1060a4
glabel var7f1b2e20
.word menuhandler00106028+0x90 # f1060b8
glabel var7f1b2e24
.word menuhandler00106028+0x13c # f106164
glabel var7f1b2e28
.word menuhandler00106028+0x13c # f106164
glabel var7f1b2e2c
.word menuhandler00106028+0x13c # f106164
glabel var7f1b2e30
.word menuhandler00106028+0x13c # f106164
glabel var7f1b2e34
.word menuhandler00106028+0x13c # f106164
glabel var7f1b2e38
.word menuhandler00106028+0x13c # f106164
glabel var7f1b2e3c
.word menuhandler00106028+0x13c # f106164
glabel var7f1b2e40
.word menuhandler00106028+0x13c # f106164
glabel var7f1b2e44
.word menuhandler00106028+0xa0 # f1060c8
.text
/* f101cac: 248effff */ addiu $t6,$a0,-1
/* f101cb0: 27bdffe8 */ addiu $sp,$sp,-24
/* f101cb4: 2dc10010 */ sltiu $at,$t6,0x10
/* f101cb8: afbf0014 */ sw $ra,0x14($sp)
/* f101cbc: 1020004a */ beqz $at,.NB0f101de8
/* f101cc0: afa5001c */ sw $a1,0x1c($sp)
/* f101cc4: 000e7080 */ sll $t6,$t6,0x2
/* f101cc8: 3c017f1b */ lui $at,0x7f1b
/* f101ccc: 002e0821 */ addu $at,$at,$t6
/* f101cd0: 8c2ed108 */ lw $t6,-0x2ef8($at)
/* f101cd4: 01c00008 */ jr $t6
/* f101cd8: 00000000 */ sll $zero,$zero,0x0
/* f101cdc: 10000042 */ beqz $zero,.NB0f101de8
/* f101ce0: acc00000 */ sw $zero,0x0($a2)
/* f101ce4: 10000041 */ beqz $zero,.NB0f101dec
/* f101ce8: 00001025 */ or $v0,$zero,$zero
/* f101cec: 1000003e */ beqz $zero,.NB0f101de8
/* f101cf0: acc00008 */ sw $zero,0x8($a2)
/* f101cf4: 0fc65ce0 */ jal frGetNumWeaponsAvailable
/* f101cf8: afa60020 */ sw $a2,0x20($sp)
/* f101cfc: 8fa60020 */ lw $a2,0x20($sp)
/* f101d00: 10000039 */ beqz $zero,.NB0f101de8
/* f101d04: acc20000 */ sw $v0,0x0($a2)
/* f101d08: 8cc40000 */ lw $a0,0x0($a2)
/* f101d0c: 3c018007 */ lui $at,0x8007
/* f101d10: 0fc65cc2 */ jal frGetWeaponBySlot
/* f101d14: a0245aa4 */ sb $a0,0x5aa4($at)
/* f101d18: 0fc27fb6 */ jal bgunGetName
/* f101d1c: 00402025 */ or $a0,$v0,$zero
/* f101d20: 10000033 */ beqz $zero,.NB0f101df0
/* f101d24: 8fbf0014 */ lw $ra,0x14($sp)
/* f101d28: 8ccf0000 */ lw $t7,0x0($a2)
/* f101d2c: 3c018007 */ lui $at,0x8007
/* f101d30: 00001025 */ or $v0,$zero,$zero
/* f101d34: 1000002d */ beqz $zero,.NB0f101dec
/* f101d38: a02f5aa4 */ sb $t7,0x5aa4($at)
/* f101d3c: 3c188007 */ lui $t8,0x8007
/* f101d40: 93185aa4 */ lbu $t8,0x5aa4($t8)
/* f101d44: 10000028 */ beqz $zero,.NB0f101de8
/* f101d48: acd80000 */ sw $t8,0x0($a2)
/* f101d4c: 8cc40000 */ lw $a0,0x0($a2)
/* f101d50: 0fc65cc2 */ jal frGetWeaponBySlot
/* f101d54: afa60020 */ sw $a2,0x20($sp)
/* f101d58: 3c03800a */ lui $v1,0x800a
/* f101d5c: 246366b0 */ addiu $v1,$v1,0x66b0
/* f101d60: a0620000 */ sb $v0,0x0($v1)
/* f101d64: 3c088007 */ lui $t0,0x8007
/* f101d68: 8d083af0 */ lw $t0,0x3af0($t0)
/* f101d6c: 8fa60020 */ lw $a2,0x20($sp)
/* f101d70: 3c01800a */ lui $at,0x800a
/* f101d74: 000848c0 */ sll $t1,$t0,0x3
/* f101d78: 01284823 */ subu $t1,$t1,$t0
/* f101d7c: 000948c0 */ sll $t1,$t1,0x3
/* f101d80: 01284823 */ subu $t1,$t1,$t0
/* f101d84: 00094900 */ sll $t1,$t1,0x4
/* f101d88: 01284823 */ subu $t1,$t1,$t0
/* f101d8c: 00094880 */ sll $t1,$t1,0x2
/* f101d90: 00290821 */ addu $at,$at,$t1
/* f101d94: 305900ff */ andi $t9,$v0,0xff
/* f101d98: ac393544 */ sw $t9,0x3544($at)
/* f101d9c: 8cca0000 */ lw $t2,0x0($a2)
/* f101da0: 3c018007 */ lui $at,0x8007
/* f101da4: 3c048007 */ lui $a0,0x8007
/* f101da8: 24845948 */ addiu $a0,$a0,0x5948
/* f101dac: 3c05bf80 */ lui $a1,0xbf80
/* f101db0: 0fc3b7ea */ jal func0f0f139c
/* f101db4: a02a5aa4 */ sb $t2,0x5aa4($at)
/* f101db8: 3c048007 */ lui $a0,0x8007
/* f101dbc: 2484595c */ addiu $a0,$a0,0x595c
/* f101dc0: 0fc3b7ea */ jal func0f0f139c
/* f101dc4: 3c05bf80 */ lui $a1,0xbf80
/* f101dc8: 3c048007 */ lui $a0,0x8007
/* f101dcc: 24845984 */ addiu $a0,$a0,0x5984
/* f101dd0: 0fc3b7ea */ jal func0f0f139c
/* f101dd4: 3c05bf80 */ lui $a1,0xbf80
/* f101dd8: 3c048007 */ lui $a0,0x8007
/* f101ddc: 24845998 */ addiu $a0,$a0,0x5998
/* f101de0: 0fc3b7ea */ jal func0f0f139c
/* f101de4: 3c05bf80 */ lui $a1,0xbf80
.NB0f101de8:
/* f101de8: 00001025 */ or $v0,$zero,$zero
.NB0f101dec:
/* f101dec: 8fbf0014 */ lw $ra,0x14($sp)
.NB0f101df0:
/* f101df0: 27bd0018 */ addiu $sp,$sp,0x18
/* f101df4: 03e00008 */ jr $ra
/* f101df8: 00000000 */ sll $zero,$zero,0x0
);
#endif
#if VERSION >= VERSION_NTSC_1_0
GLOBAL_ASM(
glabel menuhandler00106178
.late_rodata
@ -5344,6 +5472,187 @@ glabel var7f1b2e84
/* f10638c: 03e00008 */ jr $ra
/* f106390: 00000000 */ nop
);
#else
GLOBAL_ASM(
glabel menuhandler00106178
.late_rodata
glabel var7f1b2e48
.word menuhandler00106178+0x34 # f1061ac
glabel var7f1b2e4c
.word menuhandler00106178+0x208 # f106380
glabel var7f1b2e50
.word menuhandler00106178+0x48 # f1061c0
glabel var7f1b2e54
.word menuhandler00106178+0x208 # f106380
glabel var7f1b2e58
.word menuhandler00106178+0x208 # f106380
glabel var7f1b2e5c
.word menuhandler00106178+0x5c # f1061d4
glabel var7f1b2e60
.word menuhandler00106178+0x138 # f1062b0
glabel var7f1b2e64
.word menuhandler00106178+0x208 # f106380
glabel var7f1b2e68
.word menuhandler00106178+0x208 # f106380
glabel var7f1b2e6c
.word menuhandler00106178+0x208 # f106380
glabel var7f1b2e70
.word menuhandler00106178+0x208 # f106380
glabel var7f1b2e74
.word menuhandler00106178+0x208 # f106380
glabel var7f1b2e78
.word menuhandler00106178+0x208 # f106380
glabel var7f1b2e7c
.word menuhandler00106178+0x14c # f1062c4
glabel var7f1b2e80
.word menuhandler00106178+0x208 # f106380
glabel var7f1b2e84
.word menuhandler00106178+0x17c # f1062f4
.text
/* f101dfc: 27bdffe0 */ addiu $sp,$sp,-32
/* f101e00: 248effff */ addiu $t6,$a0,-1
/* f101e04: 2dc10010 */ sltiu $at,$t6,0x10
/* f101e08: afbf0014 */ sw $ra,0x14($sp)
/* f101e0c: afa50024 */ sw $a1,0x24($sp)
/* f101e10: 1020007c */ beqz $at,.NB0f102004
/* f101e14: afa60028 */ sw $a2,0x28($sp)
/* f101e18: 000e7080 */ sll $t6,$t6,0x2
/* f101e1c: 3c017f1b */ lui $at,0x7f1b
/* f101e20: 002e0821 */ addu $at,$at,$t6
/* f101e24: 8c2ed148 */ lw $t6,-0x2eb8($at)
/* f101e28: 01c00008 */ jr $t6
/* f101e2c: 00000000 */ sll $zero,$zero,0x0
/* f101e30: 0fc4336c */ jal invGetCount
/* f101e34: 00000000 */ sll $zero,$zero,0x0
/* f101e38: 8faf0028 */ lw $t7,0x28($sp)
/* f101e3c: 10000071 */ beqz $zero,.NB0f102004
/* f101e40: ade20000 */ sw $v0,0x0($t7)
/* f101e44: 8fb80028 */ lw $t8,0x28($sp)
/* f101e48: 0fc43497 */ jal invGetNameByIndex
/* f101e4c: 8f040000 */ lw $a0,0x0($t8)
/* f101e50: 1000006e */ beqz $zero,.NB0f10200c
/* f101e54: 8fbf0014 */ lw $ra,0x14($sp)
/* f101e58: 8fb90028 */ lw $t9,0x28($sp)
/* f101e5c: 0fc43429 */ jal invGetWeaponNumByIndex
/* f101e60: 8f240000 */ lw $a0,0x0($t9)
/* f101e64: 24080001 */ addiu $t0,$zero,0x1
/* f101e68: afa2001c */ sw $v0,0x1c($sp)
/* f101e6c: 10400014 */ beqz $v0,.NB0f101ec0
/* f101e70: afa80018 */ sw $t0,0x18($sp)
/* f101e74: 0fc2bd87 */ jal currentPlayerGetDeviceState
/* f101e78: 00402025 */ or $a0,$v0,$zero
/* f101e7c: 2401ffff */ addiu $at,$zero,-1
/* f101e80: 50410010 */ beql $v0,$at,.NB0f101ec4
/* f101e84: 8fab0018 */ lw $t3,0x18($sp)
/* f101e88: 8fa90028 */ lw $t1,0x28($sp)
/* f101e8c: afa00018 */ sw $zero,0x18($sp)
/* f101e90: 8d2a0004 */ lw $t2,0x4($t1)
/* f101e94: 5540000b */ bnezl $t2,.NB0f101ec4
/* f101e98: 8fab0018 */ lw $t3,0x18($sp)
/* f101e9c: 14400006 */ bnez $v0,.NB0f101eb8
/* f101ea0: 8fa4001c */ lw $a0,0x1c($sp)
/* f101ea4: 8fa4001c */ lw $a0,0x1c($sp)
/* f101ea8: 0fc2bdaa */ jal currentPlayerSetDeviceActive
/* f101eac: 24050001 */ addiu $a1,$zero,0x1
/* f101eb0: 10000004 */ beqz $zero,.NB0f101ec4
/* f101eb4: 8fab0018 */ lw $t3,0x18($sp)
.NB0f101eb8:
/* f101eb8: 0fc2bdaa */ jal currentPlayerSetDeviceActive
/* f101ebc: 00002825 */ or $a1,$zero,$zero
.NB0f101ec0:
/* f101ec0: 8fab0018 */ lw $t3,0x18($sp)
.NB0f101ec4:
/* f101ec4: 8fac0028 */ lw $t4,0x28($sp)
/* f101ec8: 51600016 */ beqzl $t3,.NB0f101f24
/* f101ecc: 8fad0028 */ lw $t5,0x28($sp)
/* f101ed0: 0fc434f0 */ jal invSetCurrentIndex
/* f101ed4: 8d840000 */ lw $a0,0x0($t4)
/* f101ed8: 8fa4001c */ lw $a0,0x1c($sp)
/* f101edc: 0fc43056 */ jal invHasDoubleWeaponIncAllGuns
/* f101ee0: 00802825 */ or $a1,$a0,$zero
/* f101ee4: 10400009 */ beqz $v0,.NB0f101f0c
/* f101ee8: 00002025 */ or $a0,$zero,$zero
/* f101eec: 00002025 */ or $a0,$zero,$zero
/* f101ef0: 0fc27f83 */ jal bgunEquipWeapon2
/* f101ef4: 8fa5001c */ lw $a1,0x1c($sp)
/* f101ef8: 24040001 */ addiu $a0,$zero,0x1
/* f101efc: 0fc27f83 */ jal bgunEquipWeapon2
/* f101f00: 8fa5001c */ lw $a1,0x1c($sp)
/* f101f04: 10000007 */ beqz $zero,.NB0f101f24
/* f101f08: 8fad0028 */ lw $t5,0x28($sp)
.NB0f101f0c:
/* f101f0c: 0fc27f83 */ jal bgunEquipWeapon2
/* f101f10: 8fa5001c */ lw $a1,0x1c($sp)
/* f101f14: 24040001 */ addiu $a0,$zero,0x1
/* f101f18: 0fc27f83 */ jal bgunEquipWeapon2
/* f101f1c: 00002825 */ or $a1,$zero,$zero
/* f101f20: 8fad0028 */ lw $t5,0x28($sp)
.NB0f101f24:
/* f101f24: 3c018007 */ lui $at,0x8007
/* f101f28: 8dae0000 */ lw $t6,0x0($t5)
/* f101f2c: 10000035 */ beqz $zero,.NB0f102004
/* f101f30: ac2e38a0 */ sw $t6,0x38a0($at)
/* f101f34: 0fc434ec */ jal invGetCurrentIndex
/* f101f38: 00000000 */ sll $zero,$zero,0x0
/* f101f3c: 8faf0028 */ lw $t7,0x28($sp)
/* f101f40: 10000030 */ beqz $zero,.NB0f102004
/* f101f44: ade20000 */ sw $v0,0x0($t7)
/* f101f48: 8fb80028 */ lw $t8,0x28($sp)
/* f101f4c: 0fc43429 */ jal invGetWeaponNumByIndex
/* f101f50: 8f040000 */ lw $a0,0x0($t8)
/* f101f54: 1040002b */ beqz $v0,.NB0f102004
/* f101f58: 00402025 */ or $a0,$v0,$zero
/* f101f5c: 0fc2bd87 */ jal currentPlayerGetDeviceState
/* f101f60: 00000000 */ sll $zero,$zero,0x0
/* f101f64: 2401ffff */ addiu $at,$zero,-1
/* f101f68: 10410026 */ beq $v0,$at,.NB0f102004
/* f101f6c: 8fb90028 */ lw $t9,0x28($sp)
/* f101f70: 10000024 */ beqz $zero,.NB0f102004
/* f101f74: af220004 */ sw $v0,0x4($t9)
/* f101f78: 8fa80028 */ lw $t0,0x28($sp)
/* f101f7c: 0fc43429 */ jal invGetWeaponNumByIndex
/* f101f80: 8d040000 */ lw $a0,0x0($t0)
/* f101f84: 3c03800a */ lui $v1,0x800a
/* f101f88: 246366b0 */ addiu $v1,$v1,0x66b0
/* f101f8c: a0620000 */ sb $v0,0x0($v1)
/* f101f90: 3c0a8007 */ lui $t2,0x8007
/* f101f94: 8d4a3af0 */ lw $t2,0x3af0($t2)
/* f101f98: 3c01800a */ lui $at,0x800a
/* f101f9c: 304900ff */ andi $t1,$v0,0xff
/* f101fa0: 000a58c0 */ sll $t3,$t2,0x3
/* f101fa4: 016a5823 */ subu $t3,$t3,$t2
/* f101fa8: 000b58c0 */ sll $t3,$t3,0x3
/* f101fac: 016a5823 */ subu $t3,$t3,$t2
/* f101fb0: 000b5900 */ sll $t3,$t3,0x4
/* f101fb4: 016a5823 */ subu $t3,$t3,$t2
/* f101fb8: 000b5880 */ sll $t3,$t3,0x2
/* f101fbc: 002b0821 */ addu $at,$at,$t3
/* f101fc0: 3c048007 */ lui $a0,0x8007
/* f101fc4: ac293544 */ sw $t1,0x3544($at)
/* f101fc8: 24845948 */ addiu $a0,$a0,0x5948
/* f101fcc: 0fc3b7ea */ jal func0f0f139c
/* f101fd0: 3c05bf80 */ lui $a1,0xbf80
/* f101fd4: 3c048007 */ lui $a0,0x8007
/* f101fd8: 2484595c */ addiu $a0,$a0,0x595c
/* f101fdc: 0fc3b7ea */ jal func0f0f139c
/* f101fe0: 3c05bf80 */ lui $a1,0xbf80
/* f101fe4: 3c048007 */ lui $a0,0x8007
/* f101fe8: 24845984 */ addiu $a0,$a0,0x5984
/* f101fec: 0fc3b7ea */ jal func0f0f139c
/* f101ff0: 3c05bf80 */ lui $a1,0xbf80
/* f101ff4: 3c048007 */ lui $a0,0x8007
/* f101ff8: 24845998 */ addiu $a0,$a0,0x5998
/* f101ffc: 0fc3b7ea */ jal func0f0f139c
/* f102000: 3c05bf80 */ lui $a1,0xbf80
.NB0f102004:
/* f102004: 00001025 */ or $v0,$zero,$zero
/* f102008: 8fbf0014 */ lw $ra,0x14($sp)
.NB0f10200c:
/* f10200c: 27bd0020 */ addiu $sp,$sp,0x20
/* f102010: 03e00008 */ jr $ra
/* f102014: 00000000 */ sll $zero,$zero,0x0
);
#endif
struct menuitem g_SoloMissionInventoryMenuItems[] = {
{ MENUITEMTYPE_LIST, 0, 0x00000000, 0x0000006e, 0x00000063, menuhandler00106178 },

View File

@ -5299,7 +5299,7 @@ glabel menuRenderObjective
/* f0ea288: 03e00008 */ jr $ra
/* f0ea28c: 27bd0130 */ addiu $sp,$sp,0x130
);
#else
#elif VERSION >= VERSION_NTSC_1_0
GLOBAL_ASM(
glabel menuRenderObjective
/* f0e98ac: 27bdfed0 */ addiu $sp,$sp,-304
@ -5952,6 +5952,659 @@ glabel menuRenderObjective
/* f0ea288: 03e00008 */ jr $ra
/* f0ea28c: 27bd0130 */ addiu $sp,$sp,0x130
);
#else
GLOBAL_ASM(
glabel menuRenderObjective
/* f0e6a20: 27bdfed0 */ addiu $sp,$sp,-304
/* f0e6a24: 8fae0154 */ lw $t6,0x154($sp)
/* f0e6a28: afbf003c */ sw $ra,0x3c($sp)
/* f0e6a2c: afb00038 */ sw $s0,0x38($sp)
/* f0e6a30: afa40130 */ sw $a0,0x130($sp)
/* f0e6a34: afa50134 */ sw $a1,0x134($sp)
/* f0e6a38: afa60138 */ sw $a2,0x138($sp)
/* f0e6a3c: afa7013c */ sw $a3,0x13c($sp)
/* f0e6a40: 11c00002 */ beqz $t6,.NB0f0e6a4c
/* f0e6a44: 00001025 */ or $v0,$zero,$zero
/* f0e6a48: 2402000c */ addiu $v0,$zero,0xc
.NB0f0e6a4c:
/* f0e6a4c: 3c047f1b */ lui $a0,0x7f1b
/* f0e6a50: 3c058007 */ lui $a1,0x8007
/* f0e6a54: 24a53898 */ addiu $a1,$a1,0x3898
/* f0e6a58: 248482d0 */ addiu $a0,$a0,-32048
/* f0e6a5c: 0c00381c */ jal mainOverrideVariable
/* f0e6a60: afa200bc */ sw $v0,0xbc($sp)
/* f0e6a64: 8faf0138 */ lw $t7,0x138($sp)
/* f0e6a68: 3c04800a */ lui $a0,0x800a
/* f0e6a6c: 000fc040 */ sll $t8,$t7,0x1
/* f0e6a70: 00982021 */ addu $a0,$a0,$t8
/* f0e6a74: 0fc5a4dd */ jal langGet
/* f0e6a78: 9484278a */ lhu $a0,0x278a($a0)
/* f0e6a7c: 87b90146 */ lh $t9,0x146($sp)
/* f0e6a80: 8fa30134 */ lw $v1,0x134($sp)
/* f0e6a84: afa20120 */ sw $v0,0x120($sp)
/* f0e6a88: afb90124 */ sw $t9,0x124($sp)
/* f0e6a8c: 44803000 */ mtc1 $zero,$f6
/* f0e6a90: c4640040 */ lwc1 $f4,0x40($v1)
/* f0e6a94: 4606203c */ c.lt.s $f4,$f6
/* f0e6a98: 00000000 */ sll $zero,$zero,0x0
/* f0e6a9c: 4502000b */ bc1fl .NB0f0e6acc
/* f0e6aa0: 906c003d */ lbu $t4,0x3d($v1)
/* f0e6aa4: 9069003c */ lbu $t1,0x3c($v1)
/* f0e6aa8: 2410003c */ addiu $s0,$zero,0x3c
/* f0e6aac: 3c0b7f1b */ lui $t3,0x7f1b
/* f0e6ab0: 01300019 */ multu $t1,$s0
/* f0e6ab4: 00005012 */ mflo $t2
/* f0e6ab8: 016a5821 */ addu $t3,$t3,$t2
/* f0e6abc: 8d6bc2f8 */ lw $t3,-0x3d08($t3)
/* f0e6ac0: 10000012 */ beqz $zero,.NB0f0e6b0c
/* f0e6ac4: afab012c */ sw $t3,0x12c($sp)
/* f0e6ac8: 906c003d */ lbu $t4,0x3d($v1)
.NB0f0e6acc:
/* f0e6acc: 2410003c */ addiu $s0,$zero,0x3c
/* f0e6ad0: 9078003c */ lbu $t8,0x3c($v1)
/* f0e6ad4: 01900019 */ multu $t4,$s0
/* f0e6ad8: 3c0e7f1b */ lui $t6,0x7f1b
/* f0e6adc: 25cec2e0 */ addiu $t6,$t6,-15648
/* f0e6ae0: 8c660044 */ lw $a2,0x44($v1)
/* f0e6ae4: 00006812 */ mflo $t5
/* f0e6ae8: 01ae7821 */ addu $t7,$t5,$t6
/* f0e6aec: 8de40018 */ lw $a0,0x18($t7)
/* f0e6af0: 03100019 */ multu $t8,$s0
/* f0e6af4: 0000c812 */ mflo $t9
/* f0e6af8: 032e4821 */ addu $t1,$t9,$t6
/* f0e6afc: 0fc01990 */ jal colourBlend
/* f0e6b00: 8d250018 */ lw $a1,0x18($t1)
/* f0e6b04: afa2012c */ sw $v0,0x12c($sp)
/* f0e6b08: 8fa30134 */ lw $v1,0x134($sp)
.NB0f0e6b0c:
/* f0e6b0c: 8c6a000c */ lw $t2,0xc($v1)
/* f0e6b10: 8fa4012c */ lw $a0,0x12c($sp)
/* f0e6b14: 00002825 */ or $a1,$zero,$zero
/* f0e6b18: 5140000b */ beqzl $t2,.NB0f0e6b48
/* f0e6b1c: 9078003c */ lbu $t8,0x3c($v1)
/* f0e6b20: 0fc01990 */ jal colourBlend
/* f0e6b24: 2406002c */ addiu $a2,$zero,0x2c
/* f0e6b28: 8fac012c */ lw $t4,0x12c($sp)
/* f0e6b2c: 2401ff00 */ addiu $at,$zero,-256
/* f0e6b30: 00415824 */ and $t3,$v0,$at
/* f0e6b34: 318d00ff */ andi $t5,$t4,0xff
/* f0e6b38: 016d7825 */ or $t7,$t3,$t5
/* f0e6b3c: afaf012c */ sw $t7,0x12c($sp)
/* f0e6b40: 8fa30134 */ lw $v1,0x134($sp)
/* f0e6b44: 9078003c */ lbu $t8,0x3c($v1)
.NB0f0e6b48:
/* f0e6b48: 3c047f1b */ lui $a0,0x7f1b
/* f0e6b4c: 3c057f1b */ lui $a1,0x7f1b
/* f0e6b50: 03100019 */ multu $t8,$s0
/* f0e6b54: 00001012 */ mflo $v0
/* f0e6b58: 00822021 */ addu $a0,$a0,$v0
/* f0e6b5c: 00a22821 */ addu $a1,$a1,$v0
/* f0e6b60: 8ca5c460 */ lw $a1,-0x3ba0($a1)
/* f0e6b64: 0fc53925 */ jal func0f153e38
/* f0e6b68: 8c84c5c8 */ lw $a0,-0x3a38($a0)
/* f0e6b6c: a3a000d0 */ sb $zero,0xd0($sp)
/* f0e6b70: 0fc5374a */ jal func0f153628
/* f0e6b74: 8fa40130 */ lw $a0,0x130($sp)
/* f0e6b78: 27b000d0 */ addiu $s0,$sp,0xd0
/* f0e6b7c: 3c057f1b */ lui $a1,0x7f1b
/* f0e6b80: afa20130 */ sw $v0,0x130($sp)
/* f0e6b84: 24a582d8 */ addiu $a1,$a1,-32040
/* f0e6b88: 02002025 */ or $a0,$s0,$zero
/* f0e6b8c: 0c004fc1 */ jal sprintf
/* f0e6b90: 8fa6013c */ lw $a2,0x13c($sp)
/* f0e6b94: 3c198008 */ lui $t9,0x8008
/* f0e6b98: 8f39236c */ lw $t9,0x236c($t9)
/* f0e6b9c: 3c078008 */ lui $a3,0x8008
/* f0e6ba0: 8ce72370 */ lw $a3,0x2370($a3)
/* f0e6ba4: 27a400c0 */ addiu $a0,$sp,0xc0
/* f0e6ba8: 27a500c4 */ addiu $a1,$sp,0xc4
/* f0e6bac: 02003025 */ or $a2,$s0,$zero
/* f0e6bb0: afa00014 */ sw $zero,0x14($sp)
/* f0e6bb4: 0fc54655 */ jal textMeasure
/* f0e6bb8: afb90010 */ sw $t9,0x10($sp)
/* f0e6bbc: 87ae0142 */ lh $t6,0x142($sp)
/* f0e6bc0: 8fa900c4 */ lw $t1,0xc4($sp)
/* f0e6bc4: 3c0b8008 */ lui $t3,0x8008
/* f0e6bc8: 3c0d8008 */ lui $t5,0x8008
/* f0e6bcc: 8dad236c */ lw $t5,0x236c($t5)
/* f0e6bd0: 8d6b2370 */ lw $t3,0x2370($t3)
/* f0e6bd4: 8faf012c */ lw $t7,0x12c($sp)
/* f0e6bd8: 87b8014a */ lh $t8,0x14a($sp)
/* f0e6bdc: 87b9014e */ lh $t9,0x14e($sp)
/* f0e6be0: 01c95023 */ subu $t2,$t6,$t1
/* f0e6be4: 254c0019 */ addiu $t4,$t2,0x19
/* f0e6be8: afac0128 */ sw $t4,0x128($sp)
/* f0e6bec: 8fa40130 */ lw $a0,0x130($sp)
/* f0e6bf0: 27a50128 */ addiu $a1,$sp,0x128
/* f0e6bf4: 27a60124 */ addiu $a2,$sp,0x124
/* f0e6bf8: 02003825 */ or $a3,$s0,$zero
/* f0e6bfc: afa00024 */ sw $zero,0x24($sp)
/* f0e6c00: afa00028 */ sw $zero,0x28($sp)
/* f0e6c04: afad0014 */ sw $t5,0x14($sp)
/* f0e6c08: afab0010 */ sw $t3,0x10($sp)
/* f0e6c0c: afaf0018 */ sw $t7,0x18($sp)
/* f0e6c10: afb8001c */ sw $t8,0x1c($sp)
/* f0e6c14: 0fc541a6 */ jal textRenderProjected
/* f0e6c18: afb90020 */ sw $t9,0x20($sp)
/* f0e6c1c: 87ae0142 */ lh $t6,0x142($sp)
/* f0e6c20: 8faa0154 */ lw $t2,0x154($sp)
/* f0e6c24: afa20130 */ sw $v0,0x130($sp)
/* f0e6c28: 25c90019 */ addiu $t1,$t6,0x19
/* f0e6c2c: 1140001f */ beqz $t2,.NB0f0e6cac
/* f0e6c30: afa90128 */ sw $t1,0x128($sp)
/* f0e6c34: 3c0c8008 */ lui $t4,0x8008
/* f0e6c38: 8d8c2364 */ lw $t4,0x2364($t4)
/* f0e6c3c: 3c078008 */ lui $a3,0x8008
/* f0e6c40: 8ce72368 */ lw $a3,0x2368($a3)
/* f0e6c44: 24040055 */ addiu $a0,$zero,0x55
/* f0e6c48: 8fa50120 */ lw $a1,0x120($sp)
/* f0e6c4c: 02003025 */ or $a2,$s0,$zero
/* f0e6c50: 0fc546df */ jal textWrap
/* f0e6c54: afac0010 */ sw $t4,0x10($sp)
/* f0e6c58: 3c0b8008 */ lui $t3,0x8008
/* f0e6c5c: 3c0d8008 */ lui $t5,0x8008
/* f0e6c60: 8dad2364 */ lw $t5,0x2364($t5)
/* f0e6c64: 8d6b2368 */ lw $t3,0x2368($t3)
/* f0e6c68: 8faf012c */ lw $t7,0x12c($sp)
/* f0e6c6c: 87b8014a */ lh $t8,0x14a($sp)
/* f0e6c70: 87b9014e */ lh $t9,0x14e($sp)
/* f0e6c74: 8fa40130 */ lw $a0,0x130($sp)
/* f0e6c78: 27a50128 */ addiu $a1,$sp,0x128
/* f0e6c7c: 27a60124 */ addiu $a2,$sp,0x124
/* f0e6c80: 02003825 */ or $a3,$s0,$zero
/* f0e6c84: afa00024 */ sw $zero,0x24($sp)
/* f0e6c88: afa00028 */ sw $zero,0x28($sp)
/* f0e6c8c: afad0014 */ sw $t5,0x14($sp)
/* f0e6c90: afab0010 */ sw $t3,0x10($sp)
/* f0e6c94: afaf0018 */ sw $t7,0x18($sp)
/* f0e6c98: afb8001c */ sw $t8,0x1c($sp)
/* f0e6c9c: 0fc541a6 */ jal textRenderProjected
/* f0e6ca0: afb90020 */ sw $t9,0x20($sp)
/* f0e6ca4: 1000001a */ beqz $zero,.NB0f0e6d10
/* f0e6ca8: afa20130 */ sw $v0,0x130($sp)
.NB0f0e6cac:
/* f0e6cac: 3c057f1b */ lui $a1,0x7f1b
/* f0e6cb0: 24a582e0 */ addiu $a1,$a1,-32032
/* f0e6cb4: 02002025 */ or $a0,$s0,$zero
/* f0e6cb8: 0c004fc1 */ jal sprintf
/* f0e6cbc: 8fa60120 */ lw $a2,0x120($sp)
/* f0e6cc0: 3c0e8008 */ lui $t6,0x8008
/* f0e6cc4: 3c098008 */ lui $t1,0x8008
/* f0e6cc8: 8d29236c */ lw $t1,0x236c($t1)
/* f0e6ccc: 8dce2370 */ lw $t6,0x2370($t6)
/* f0e6cd0: 8faa012c */ lw $t2,0x12c($sp)
/* f0e6cd4: 87ac014a */ lh $t4,0x14a($sp)
/* f0e6cd8: 87ab014e */ lh $t3,0x14e($sp)
/* f0e6cdc: 8fa40130 */ lw $a0,0x130($sp)
/* f0e6ce0: 27a50128 */ addiu $a1,$sp,0x128
/* f0e6ce4: 27a60124 */ addiu $a2,$sp,0x124
/* f0e6ce8: 02003825 */ or $a3,$s0,$zero
/* f0e6cec: afa00024 */ sw $zero,0x24($sp)
/* f0e6cf0: afa00028 */ sw $zero,0x28($sp)
/* f0e6cf4: afa90014 */ sw $t1,0x14($sp)
/* f0e6cf8: afae0010 */ sw $t6,0x10($sp)
/* f0e6cfc: afaa0018 */ sw $t2,0x18($sp)
/* f0e6d00: afac001c */ sw $t4,0x1c($sp)
/* f0e6d04: 0fc541a6 */ jal textRenderProjected
/* f0e6d08: afab0020 */ sw $t3,0x20($sp)
/* f0e6d0c: afa20130 */ sw $v0,0x130($sp)
.NB0f0e6d10:
/* f0e6d10: 8fad0150 */ lw $t5,0x150($sp)
/* f0e6d14: 27a400c0 */ addiu $a0,$sp,0xc0
/* f0e6d18: 27a500c4 */ addiu $a1,$sp,0xc4
/* f0e6d1c: 11a00141 */ beqz $t5,.NB0f0e7224
/* f0e6d20: 3c078008 */ lui $a3,0x8008
/* f0e6d24: 0fc24dd9 */ jal objectiveCheck
/* f0e6d28: 8fa40138 */ lw $a0,0x138($sp)
/* f0e6d2c: 10400007 */ beqz $v0,.NB0f0e6d4c
/* f0e6d30: 24010001 */ addiu $at,$zero,0x1
/* f0e6d34: 1041000c */ beq $v0,$at,.NB0f0e6d68
/* f0e6d38: 24010002 */ addiu $at,$zero,0x2
/* f0e6d3c: 10410011 */ beq $v0,$at,.NB0f0e6d84
/* f0e6d40: 00000000 */ sll $zero,$zero,0x0
/* f0e6d44: 10000015 */ beqz $zero,.NB0f0e6d9c
/* f0e6d48: 00000000 */ sll $zero,$zero,0x0
.NB0f0e6d4c:
/* f0e6d4c: 0fc5a4dd */ jal langGet
/* f0e6d50: 24045601 */ addiu $a0,$zero,0x5601
/* f0e6d54: 3c0fffff */ lui $t7,0xffff
/* f0e6d58: 35ef00ff */ ori $t7,$t7,0xff
/* f0e6d5c: afa200cc */ sw $v0,0xcc($sp)
/* f0e6d60: 1000000e */ beqz $zero,.NB0f0e6d9c
/* f0e6d64: afaf00c8 */ sw $t7,0xc8($sp)
.NB0f0e6d68:
/* f0e6d68: 0fc5a4dd */ jal langGet
/* f0e6d6c: 24045600 */ addiu $a0,$zero,0x5600
/* f0e6d70: 3c1800ff */ lui $t8,0xff
/* f0e6d74: 371800ff */ ori $t8,$t8,0xff
/* f0e6d78: afa200cc */ sw $v0,0xcc($sp)
/* f0e6d7c: 10000007 */ beqz $zero,.NB0f0e6d9c
/* f0e6d80: afb800c8 */ sw $t8,0xc8($sp)
.NB0f0e6d84:
/* f0e6d84: 0fc5a4dd */ jal langGet
/* f0e6d88: 24045602 */ addiu $a0,$zero,0x5602
/* f0e6d8c: 3c19ff40 */ lui $t9,0xff40
/* f0e6d90: 373940ff */ ori $t9,$t9,0x40ff
/* f0e6d94: afa200cc */ sw $v0,0xcc($sp)
/* f0e6d98: afb900c8 */ sw $t9,0xc8($sp)
.NB0f0e6d9c:
/* f0e6d9c: 3c098007 */ lui $t1,0x8007
/* f0e6da0: 8d293af0 */ lw $t1,0x3af0($t1)
/* f0e6da4: 3c0c800a */ lui $t4,0x800a
/* f0e6da8: 8fae0134 */ lw $t6,0x134($sp)
/* f0e6dac: 000950c0 */ sll $t2,$t1,0x3
/* f0e6db0: 01495023 */ subu $t2,$t2,$t1
/* f0e6db4: 000a50c0 */ sll $t2,$t2,0x3
/* f0e6db8: 01495023 */ subu $t2,$t2,$t1
/* f0e6dbc: 000a5100 */ sll $t2,$t2,0x4
/* f0e6dc0: 01495023 */ subu $t2,$t2,$t1
/* f0e6dc4: 000a5080 */ sll $t2,$t2,0x2
/* f0e6dc8: 018a6021 */ addu $t4,$t4,$t2
/* f0e6dcc: 8d8c2c48 */ lw $t4,0x2c48($t4)
/* f0e6dd0: 27a400c0 */ addiu $a0,$sp,0xc0
/* f0e6dd4: 27a500c4 */ addiu $a1,$sp,0xc4
/* f0e6dd8: 11cc0004 */ beq $t6,$t4,.NB0f0e6dec
/* f0e6ddc: 3c078008 */ lui $a3,0x8008
/* f0e6de0: 3c0b7f1b */ lui $t3,0x7f1b
/* f0e6de4: 8d6bc2f8 */ lw $t3,-0x3d08($t3)
/* f0e6de8: afab00c8 */ sw $t3,0xc8($sp)
.NB0f0e6dec:
/* f0e6dec: 3c0d8008 */ lui $t5,0x8008
/* f0e6df0: 8dad2364 */ lw $t5,0x2364($t5)
/* f0e6df4: 8fa600cc */ lw $a2,0xcc($sp)
/* f0e6df8: 8ce72368 */ lw $a3,0x2368($a3)
/* f0e6dfc: afa00014 */ sw $zero,0x14($sp)
/* f0e6e00: 0fc54655 */ jal textMeasure
/* f0e6e04: afad0010 */ sw $t5,0x10($sp)
/* f0e6e08: 3c028007 */ lui $v0,0x8007
/* f0e6e0c: 8c423898 */ lw $v0,0x3898($v0)
/* f0e6e10: 27a50128 */ addiu $a1,$sp,0x128
/* f0e6e14: 27a60124 */ addiu $a2,$sp,0x124
/* f0e6e18: 10400002 */ beqz $v0,.NB0f0e6e24
/* f0e6e1c: 3c0c8008 */ lui $t4,0x8008
/* f0e6e20: afa200c8 */ sw $v0,0xc8($sp)
.NB0f0e6e24:
/* f0e6e24: 87a2014a */ lh $v0,0x14a($sp)
/* f0e6e28: 87af0142 */ lh $t7,0x142($sp)
/* f0e6e2c: 8fb800c4 */ lw $t8,0xc4($sp)
/* f0e6e30: 87aa0146 */ lh $t2,0x146($sp)
/* f0e6e34: 8fae00bc */ lw $t6,0xbc($sp)
/* f0e6e38: 01e28021 */ addu $s0,$t7,$v0
/* f0e6e3c: 3c0b8008 */ lui $t3,0x8008
/* f0e6e40: 8d6b2364 */ lw $t3,0x2364($t3)
/* f0e6e44: 87af014e */ lh $t7,0x14e($sp)
/* f0e6e48: 8d8c2368 */ lw $t4,0x2368($t4)
/* f0e6e4c: 8fad00c8 */ lw $t5,0xc8($sp)
/* f0e6e50: 0218c823 */ subu $t9,$s0,$t8
/* f0e6e54: 014e1821 */ addu $v1,$t2,$t6
/* f0e6e58: 2729fff6 */ addiu $t1,$t9,-10
/* f0e6e5c: 24630009 */ addiu $v1,$v1,0x9
/* f0e6e60: afa90128 */ sw $t1,0x128($sp)
/* f0e6e64: afa30124 */ sw $v1,0x124($sp)
/* f0e6e68: afa30058 */ sw $v1,0x58($sp)
/* f0e6e6c: 8fa40130 */ lw $a0,0x130($sp)
/* f0e6e70: 8fa700cc */ lw $a3,0xcc($sp)
/* f0e6e74: afa00024 */ sw $zero,0x24($sp)
/* f0e6e78: afa00028 */ sw $zero,0x28($sp)
/* f0e6e7c: afa2001c */ sw $v0,0x1c($sp)
/* f0e6e80: afab0014 */ sw $t3,0x14($sp)
/* f0e6e84: afaf0020 */ sw $t7,0x20($sp)
/* f0e6e88: afac0010 */ sw $t4,0x10($sp)
/* f0e6e8c: 0fc541a6 */ jal textRenderProjected
/* f0e6e90: afad0018 */ sw $t5,0x18($sp)
/* f0e6e94: 8fb800c4 */ lw $t8,0xc4($sp)
/* f0e6e98: 8fac00c8 */ lw $t4,0xc8($sp)
/* f0e6e9c: 3c0a8008 */ lui $t2,0x8008
/* f0e6ea0: 3c0e8008 */ lui $t6,0x8008
/* f0e6ea4: 8fa30058 */ lw $v1,0x58($sp)
/* f0e6ea8: 8dce2364 */ lw $t6,0x2364($t6)
/* f0e6eac: 8d4a2368 */ lw $t2,0x2368($t2)
/* f0e6eb0: 87ad014a */ lh $t5,0x14a($sp)
/* f0e6eb4: 87af014e */ lh $t7,0x14e($sp)
/* f0e6eb8: 2401ff7f */ addiu $at,$zero,-129
/* f0e6ebc: 0218c823 */ subu $t9,$s0,$t8
/* f0e6ec0: 2729fff6 */ addiu $t1,$t9,-10
/* f0e6ec4: 01815824 */ and $t3,$t4,$at
/* f0e6ec8: afa90128 */ sw $t1,0x128($sp)
/* f0e6ecc: afab0018 */ sw $t3,0x18($sp)
/* f0e6ed0: 00402025 */ or $a0,$v0,$zero
/* f0e6ed4: 27a50128 */ addiu $a1,$sp,0x128
/* f0e6ed8: 27a60124 */ addiu $a2,$sp,0x124
/* f0e6edc: 8fa700cc */ lw $a3,0xcc($sp)
/* f0e6ee0: afa00024 */ sw $zero,0x24($sp)
/* f0e6ee4: afa00028 */ sw $zero,0x28($sp)
/* f0e6ee8: afa30124 */ sw $v1,0x124($sp)
/* f0e6eec: afae0014 */ sw $t6,0x14($sp)
/* f0e6ef0: afaa0010 */ sw $t2,0x10($sp)
/* f0e6ef4: afad001c */ sw $t5,0x1c($sp)
/* f0e6ef8: 0fc541a6 */ jal textRenderProjected
/* f0e6efc: afaf0020 */ sw $t7,0x20($sp)
/* f0e6f00: 8fb800c4 */ lw $t8,0xc4($sp)
/* f0e6f04: 87b90146 */ lh $t9,0x146($sp)
/* f0e6f08: 00402025 */ or $a0,$v0,$zero
/* f0e6f0c: 02183023 */ subu $a2,$s0,$t8
/* f0e6f10: 24c6fff3 */ addiu $a2,$a2,-13
/* f0e6f14: 27290009 */ addiu $t1,$t9,0x9
/* f0e6f18: afa90124 */ sw $t1,0x124($sp)
/* f0e6f1c: 0fc537a0 */ jal func0f153780
/* f0e6f20: afa60128 */ sw $a2,0x128($sp)
/* f0e6f24: 87a50142 */ lh $a1,0x142($sp)
/* f0e6f28: 87ae0146 */ lh $t6,0x146($sp)
/* f0e6f2c: 8fa60128 */ lw $a2,0x128($sp)
/* f0e6f30: 00054880 */ sll $t1,$a1,0x2
/* f0e6f34: 01254823 */ subu $t1,$t1,$a1
/* f0e6f38: 25cb0008 */ addiu $t3,$t6,0x8
/* f0e6f3c: 8fad0124 */ lw $t5,0x124($sp)
/* f0e6f40: 8faf00bc */ lw $t7,0xbc($sp)
/* f0e6f44: afab00ac */ sw $t3,0xac($sp)
/* f0e6f48: 24aa0016 */ addiu $t2,$a1,0x16
/* f0e6f4c: 01251821 */ addu $v1,$t1,$a1
/* f0e6f50: 8fab013c */ lw $t3,0x13c($sp)
/* f0e6f54: afaa00b4 */ sw $t2,0xb4($sp)
/* f0e6f58: 24630042 */ addiu $v1,$v1,0x42
/* f0e6f5c: 25ccfffe */ addiu $t4,$t6,-2
/* f0e6f60: afac00b0 */ sw $t4,0xb0($sp)
/* f0e6f64: 01afc021 */ addu $t8,$t5,$t7
/* f0e6f68: 256dffff */ addiu $t5,$t3,-1
/* f0e6f6c: 27190002 */ addiu $t9,$t8,0x2
/* f0e6f70: afb900a8 */ sw $t9,0xa8($sp)
/* f0e6f74: 00402025 */ or $a0,$v0,$zero
/* f0e6f78: afa6009c */ sw $a2,0x9c($sp)
/* f0e6f7c: 04610003 */ bgez $v1,.NB0f0e6f8c
/* f0e6f80: 00035083 */ sra $t2,$v1,0x2
/* f0e6f84: 24610003 */ addiu $at,$v1,0x3
/* f0e6f88: 00015083 */ sra $t2,$at,0x2
.NB0f0e6f8c:
/* f0e6f8c: 00ca6023 */ subu $t4,$a2,$t2
/* f0e6f90: 258effe8 */ addiu $t6,$t4,-24
/* f0e6f94: 01cd0019 */ multu $t6,$t5
/* f0e6f98: 24010005 */ addiu $at,$zero,0x5
/* f0e6f9c: afaa005c */ sw $t2,0x5c($sp)
/* f0e6fa0: 00007812 */ mflo $t7
/* f0e6fa4: 00000000 */ sll $zero,$zero,0x0
/* f0e6fa8: 00000000 */ sll $zero,$zero,0x0
/* f0e6fac: 01e1001a */ div $zero,$t7,$at
/* f0e6fb0: 0000c012 */ mflo $t8
/* f0e6fb4: 0158c821 */ addu $t9,$t2,$t8
/* f0e6fb8: 27290013 */ addiu $t1,$t9,0x13
/* f0e6fbc: 0fc37e4b */ jal func0f0e2498
/* f0e6fc0: afa90098 */ sw $t1,0x98($sp)
/* f0e6fc4: 8fa3012c */ lw $v1,0x12c($sp)
/* f0e6fc8: 8fa600b0 */ lw $a2,0xb0($sp)
/* f0e6fcc: 2401ff00 */ addiu $at,$zero,-256
/* f0e6fd0: 00616024 */ and $t4,$v1,$at
/* f0e6fd4: 3590003f */ ori $s0,$t4,0x3f
/* f0e6fd8: 24ca0001 */ addiu $t2,$a2,0x1
/* f0e6fdc: afaa0010 */ sw $t2,0x10($sp)
/* f0e6fe0: afb00018 */ sw $s0,0x18($sp)
/* f0e6fe4: 01801825 */ or $v1,$t4,$zero
/* f0e6fe8: afac0014 */ sw $t4,0x14($sp)
/* f0e6fec: afac0054 */ sw $t4,0x54($sp)
/* f0e6ff0: 00402025 */ or $a0,$v0,$zero
/* f0e6ff4: 87a50142 */ lh $a1,0x142($sp)
/* f0e6ff8: 0fc37ef6 */ jal func0f0e2744
/* f0e6ffc: 8fa700b4 */ lw $a3,0xb4($sp)
/* f0e7000: 8fa500b4 */ lw $a1,0xb4($sp)
/* f0e7004: 8fab00ac */ lw $t3,0xac($sp)
/* f0e7008: 00402025 */ or $a0,$v0,$zero
/* f0e700c: 24a70001 */ addiu $a3,$a1,0x1
/* f0e7010: afa7004c */ sw $a3,0x4c($sp)
/* f0e7014: 8fa600b0 */ lw $a2,0xb0($sp)
/* f0e7018: afb00014 */ sw $s0,0x14($sp)
/* f0e701c: afb00018 */ sw $s0,0x18($sp)
/* f0e7020: 0fc37ef6 */ jal func0f0e2744
/* f0e7024: afab0010 */ sw $t3,0x10($sp)
/* f0e7028: 8fa600ac */ lw $a2,0xac($sp)
/* f0e702c: 8fa7005c */ lw $a3,0x5c($sp)
/* f0e7030: 8fa30054 */ lw $v1,0x54($sp)
/* f0e7034: 24c80001 */ addiu $t0,$a2,0x1
/* f0e7038: 24e7ffff */ addiu $a3,$a3,-1
/* f0e703c: afa70058 */ sw $a3,0x58($sp)
/* f0e7040: afa80010 */ sw $t0,0x10($sp)
/* f0e7044: afa80048 */ sw $t0,0x48($sp)
/* f0e7048: 00402025 */ or $a0,$v0,$zero
/* f0e704c: 87a50142 */ lh $a1,0x142($sp)
/* f0e7050: afb00018 */ sw $s0,0x18($sp)
/* f0e7054: 0fc37ef6 */ jal func0f0e2744
/* f0e7058: afa30014 */ sw $v1,0x14($sp)
/* f0e705c: 8fa50058 */ lw $a1,0x58($sp)
/* f0e7060: 8fa80048 */ lw $t0,0x48($sp)
/* f0e7064: 00402025 */ or $a0,$v0,$zero
/* f0e7068: 24a50003 */ addiu $a1,$a1,0x3
/* f0e706c: afa50054 */ sw $a1,0x54($sp)
/* f0e7070: 8fa600ac */ lw $a2,0xac($sp)
/* f0e7074: 8fa7004c */ lw $a3,0x4c($sp)
/* f0e7078: afb00014 */ sw $s0,0x14($sp)
/* f0e707c: afb00018 */ sw $s0,0x18($sp)
/* f0e7080: 0fc37ef6 */ jal func0f0e2744
/* f0e7084: afa80010 */ sw $t0,0x10($sp)
/* f0e7088: 8fa300a8 */ lw $v1,0xa8($sp)
/* f0e708c: 8fa50058 */ lw $a1,0x58($sp)
/* f0e7090: 00402025 */ or $a0,$v0,$zero
/* f0e7094: 24630002 */ addiu $v1,$v1,0x2
/* f0e7098: afa30010 */ sw $v1,0x10($sp)
/* f0e709c: afa3004c */ sw $v1,0x4c($sp)
/* f0e70a0: 8fa600ac */ lw $a2,0xac($sp)
/* f0e70a4: afb00014 */ sw $s0,0x14($sp)
/* f0e70a8: afb00018 */ sw $s0,0x18($sp)
/* f0e70ac: 0fc37ef6 */ jal func0f0e2744
/* f0e70b0: 24a70001 */ addiu $a3,$a1,0x1
/* f0e70b4: 8fa50058 */ lw $a1,0x58($sp)
/* f0e70b8: 8fae00a8 */ lw $t6,0xa8($sp)
/* f0e70bc: 00402025 */ or $a0,$v0,$zero
/* f0e70c0: 24a50002 */ addiu $a1,$a1,0x2
/* f0e70c4: afa50044 */ sw $a1,0x44($sp)
/* f0e70c8: 8fa600ac */ lw $a2,0xac($sp)
/* f0e70cc: 8fa70054 */ lw $a3,0x54($sp)
/* f0e70d0: afb00014 */ sw $s0,0x14($sp)
/* f0e70d4: afb00018 */ sw $s0,0x18($sp)
/* f0e70d8: 0fc37ef6 */ jal func0f0e2744
/* f0e70dc: afae0010 */ sw $t6,0x10($sp)
/* f0e70e0: 8fa600a8 */ lw $a2,0xa8($sp)
/* f0e70e4: 8fa7005c */ lw $a3,0x5c($sp)
/* f0e70e8: 8fa50044 */ lw $a1,0x44($sp)
/* f0e70ec: 24c30001 */ addiu $v1,$a2,0x1
/* f0e70f0: 24e7000e */ addiu $a3,$a3,0xe
/* f0e70f4: afa70054 */ sw $a3,0x54($sp)
/* f0e70f8: afa30010 */ sw $v1,0x10($sp)
/* f0e70fc: afa30048 */ sw $v1,0x48($sp)
/* f0e7100: 00402025 */ or $a0,$v0,$zero
/* f0e7104: afb00014 */ sw $s0,0x14($sp)
/* f0e7108: 0fc37ef6 */ jal func0f0e2744
/* f0e710c: afb00018 */ sw $s0,0x18($sp)
/* f0e7110: 8fa300a8 */ lw $v1,0xa8($sp)
/* f0e7114: 00402025 */ or $a0,$v0,$zero
/* f0e7118: 8fa50058 */ lw $a1,0x58($sp)
/* f0e711c: 24630003 */ addiu $v1,$v1,0x3
/* f0e7120: afa30010 */ sw $v1,0x10($sp)
/* f0e7124: afa30044 */ sw $v1,0x44($sp)
/* f0e7128: 8fa6004c */ lw $a2,0x4c($sp)
/* f0e712c: 8fa70054 */ lw $a3,0x54($sp)
/* f0e7130: afb00014 */ sw $s0,0x14($sp)
/* f0e7134: 0fc37ef6 */ jal func0f0e2744
/* f0e7138: afb00018 */ sw $s0,0x18($sp)
/* f0e713c: 8fad0048 */ lw $t5,0x48($sp)
/* f0e7140: 00402025 */ or $a0,$v0,$zero
/* f0e7144: 8fa50054 */ lw $a1,0x54($sp)
/* f0e7148: 8fa600a8 */ lw $a2,0xa8($sp)
/* f0e714c: 8fa70098 */ lw $a3,0x98($sp)
/* f0e7150: afb00014 */ sw $s0,0x14($sp)
/* f0e7154: afb00018 */ sw $s0,0x18($sp)
/* f0e7158: 0fc37ef6 */ jal func0f0e2744
/* f0e715c: afad0010 */ sw $t5,0x10($sp)
/* f0e7160: 8faf0044 */ lw $t7,0x44($sp)
/* f0e7164: 00402025 */ or $a0,$v0,$zero
/* f0e7168: 8fa50054 */ lw $a1,0x54($sp)
/* f0e716c: 8fa6004c */ lw $a2,0x4c($sp)
/* f0e7170: 8fa70098 */ lw $a3,0x98($sp)
/* f0e7174: afb00014 */ sw $s0,0x14($sp)
/* f0e7178: afb00018 */ sw $s0,0x18($sp)
/* f0e717c: 0fc37ef6 */ jal func0f0e2744
/* f0e7180: afaf0010 */ sw $t7,0x10($sp)
/* f0e7184: 8fa300c8 */ lw $v1,0xc8($sp)
/* f0e7188: 8fa50098 */ lw $a1,0x98($sp)
/* f0e718c: 2401ff00 */ addiu $at,$zero,-256
/* f0e7190: 8fb90044 */ lw $t9,0x44($sp)
/* f0e7194: 00614824 */ and $t1,$v1,$at
/* f0e7198: 3530003f */ ori $s0,$t1,0x3f
/* f0e719c: 24a70001 */ addiu $a3,$a1,0x1
/* f0e71a0: afa70054 */ sw $a3,0x54($sp)
/* f0e71a4: afb00014 */ sw $s0,0x14($sp)
/* f0e71a8: afb00018 */ sw $s0,0x18($sp)
/* f0e71ac: 01201825 */ or $v1,$t1,$zero
/* f0e71b0: afa9005c */ sw $t1,0x5c($sp)
/* f0e71b4: 00402025 */ or $a0,$v0,$zero
/* f0e71b8: 8fa600a8 */ lw $a2,0xa8($sp)
/* f0e71bc: 0fc37ef6 */ jal func0f0e2744
/* f0e71c0: afb90010 */ sw $t9,0x10($sp)
/* f0e71c4: 8fa7009c */ lw $a3,0x9c($sp)
/* f0e71c8: 8faa004c */ lw $t2,0x4c($sp)
/* f0e71cc: 00402025 */ or $a0,$v0,$zero
/* f0e71d0: 24e7fffc */ addiu $a3,$a3,-4
/* f0e71d4: afa70050 */ sw $a3,0x50($sp)
/* f0e71d8: 8fa50054 */ lw $a1,0x54($sp)
/* f0e71dc: 8fa60048 */ lw $a2,0x48($sp)
/* f0e71e0: afb00014 */ sw $s0,0x14($sp)
/* f0e71e4: afb00018 */ sw $s0,0x18($sp)
/* f0e71e8: 0fc37ef6 */ jal func0f0e2744
/* f0e71ec: afaa0010 */ sw $t2,0x10($sp)
/* f0e71f0: 8fab005c */ lw $t3,0x5c($sp)
/* f0e71f4: 8fac004c */ lw $t4,0x4c($sp)
/* f0e71f8: 00402025 */ or $a0,$v0,$zero
/* f0e71fc: 356e00cf */ ori $t6,$t3,0xcf
/* f0e7200: afae0018 */ sw $t6,0x18($sp)
/* f0e7204: 8fa50050 */ lw $a1,0x50($sp)
/* f0e7208: 8fa60048 */ lw $a2,0x48($sp)
/* f0e720c: 8fa7009c */ lw $a3,0x9c($sp)
/* f0e7210: afb00014 */ sw $s0,0x14($sp)
/* f0e7214: 0fc37ef6 */ jal func0f0e2744
/* f0e7218: afac0010 */ sw $t4,0x10($sp)
/* f0e721c: 10000074 */ beqz $zero,.NB0f0e73f0
/* f0e7220: afa20130 */ sw $v0,0x130($sp)
.NB0f0e7224:
/* f0e7224: 87b80146 */ lh $t8,0x146($sp)
/* f0e7228: 87ad0142 */ lh $t5,0x142($sp)
/* f0e722c: 8faa0124 */ lw $t2,0x124($sp)
/* f0e7230: 3c0b8008 */ lui $t3,0x8008
/* f0e7234: 8d6b236c */ lw $t3,0x236c($t3)
/* f0e7238: 2719fffe */ addiu $t9,$t8,-2
/* f0e723c: 27090008 */ addiu $t1,$t8,0x8
/* f0e7240: 25af0016 */ addiu $t7,$t5,0x16
/* f0e7244: 254c0001 */ addiu $t4,$t2,0x1
/* f0e7248: afaf0080 */ sw $t7,0x80($sp)
/* f0e724c: afb9007c */ sw $t9,0x7c($sp)
/* f0e7250: afa90078 */ sw $t1,0x78($sp)
/* f0e7254: afac0074 */ sw $t4,0x74($sp)
/* f0e7258: 8fa60120 */ lw $a2,0x120($sp)
/* f0e725c: 8ce72370 */ lw $a3,0x2370($a3)
/* f0e7260: afa00014 */ sw $zero,0x14($sp)
/* f0e7264: 0fc54655 */ jal textMeasure
/* f0e7268: afab0010 */ sw $t3,0x10($sp)
/* f0e726c: 87ae0142 */ lh $t6,0x142($sp)
/* f0e7270: 8fad00c4 */ lw $t5,0xc4($sp)
/* f0e7274: 8fa40130 */ lw $a0,0x130($sp)
/* f0e7278: 01cd7821 */ addu $t7,$t6,$t5
/* f0e727c: 25f90019 */ addiu $t9,$t7,0x19
/* f0e7280: 0fc537a0 */ jal func0f153780
/* f0e7284: afb9006c */ sw $t9,0x6c($sp)
/* f0e7288: 0fc37e4b */ jal func0f0e2498
/* f0e728c: 00402025 */ or $a0,$v0,$zero
/* f0e7290: 8fa3012c */ lw $v1,0x12c($sp)
/* f0e7294: 8fa6007c */ lw $a2,0x7c($sp)
/* f0e7298: 2401ff00 */ addiu $at,$zero,-256
/* f0e729c: 00614824 */ and $t1,$v1,$at
/* f0e72a0: 3530003f */ ori $s0,$t1,0x3f
/* f0e72a4: 24d80001 */ addiu $t8,$a2,0x1
/* f0e72a8: afb80010 */ sw $t8,0x10($sp)
/* f0e72ac: afb00018 */ sw $s0,0x18($sp)
/* f0e72b0: 01201825 */ or $v1,$t1,$zero
/* f0e72b4: afa90014 */ sw $t1,0x14($sp)
/* f0e72b8: afa90054 */ sw $t1,0x54($sp)
/* f0e72bc: 00402025 */ or $a0,$v0,$zero
/* f0e72c0: 87a50142 */ lh $a1,0x142($sp)
/* f0e72c4: 0fc37ef6 */ jal func0f0e2744
/* f0e72c8: 8fa70080 */ lw $a3,0x80($sp)
/* f0e72cc: 8fa50080 */ lw $a1,0x80($sp)
/* f0e72d0: 8fac0078 */ lw $t4,0x78($sp)
/* f0e72d4: 00402025 */ or $a0,$v0,$zero
/* f0e72d8: 24a70001 */ addiu $a3,$a1,0x1
/* f0e72dc: afa7005c */ sw $a3,0x5c($sp)
/* f0e72e0: 8fa6007c */ lw $a2,0x7c($sp)
/* f0e72e4: afb00014 */ sw $s0,0x14($sp)
/* f0e72e8: afb00018 */ sw $s0,0x18($sp)
/* f0e72ec: 0fc37ef6 */ jal func0f0e2744
/* f0e72f0: afac0010 */ sw $t4,0x10($sp)
/* f0e72f4: 87ab0142 */ lh $t3,0x142($sp)
/* f0e72f8: 8fa60078 */ lw $a2,0x78($sp)
/* f0e72fc: 8fa30054 */ lw $v1,0x54($sp)
/* f0e7300: 000b7080 */ sll $t6,$t3,0x2
/* f0e7304: 01cb7023 */ subu $t6,$t6,$t3
/* f0e7308: 01cb3821 */ addu $a3,$t6,$t3
/* f0e730c: 24e70042 */ addiu $a3,$a3,0x42
/* f0e7310: 24c80001 */ addiu $t0,$a2,0x1
/* f0e7314: afa80010 */ sw $t0,0x10($sp)
/* f0e7318: afa8004c */ sw $t0,0x4c($sp)
/* f0e731c: 00402025 */ or $a0,$v0,$zero
/* f0e7320: afb00018 */ sw $s0,0x18($sp)
/* f0e7324: 01602825 */ or $a1,$t3,$zero
/* f0e7328: 04e10003 */ bgez $a3,.NB0f0e7338
/* f0e732c: 00076883 */ sra $t5,$a3,0x2
/* f0e7330: 24e10003 */ addiu $at,$a3,0x3
/* f0e7334: 00016883 */ sra $t5,$at,0x2
.NB0f0e7338:
/* f0e7338: 25a7ffff */ addiu $a3,$t5,-1
/* f0e733c: afa70058 */ sw $a3,0x58($sp)
/* f0e7340: 0fc37ef6 */ jal func0f0e2744
/* f0e7344: afa30014 */ sw $v1,0x14($sp)
/* f0e7348: 8fa50058 */ lw $a1,0x58($sp)
/* f0e734c: 8fa8004c */ lw $t0,0x4c($sp)
/* f0e7350: 00402025 */ or $a0,$v0,$zero
/* f0e7354: 24a50003 */ addiu $a1,$a1,0x3
/* f0e7358: afa50054 */ sw $a1,0x54($sp)
/* f0e735c: 8fa60078 */ lw $a2,0x78($sp)
/* f0e7360: 8fa7005c */ lw $a3,0x5c($sp)
/* f0e7364: afb00014 */ sw $s0,0x14($sp)
/* f0e7368: afb00018 */ sw $s0,0x18($sp)
/* f0e736c: 0fc37ef6 */ jal func0f0e2744
/* f0e7370: afa80010 */ sw $t0,0x10($sp)
/* f0e7374: 8faf0074 */ lw $t7,0x74($sp)
/* f0e7378: 8fa50058 */ lw $a1,0x58($sp)
/* f0e737c: 00402025 */ or $a0,$v0,$zero
/* f0e7380: 25f90002 */ addiu $t9,$t7,0x2
/* f0e7384: afb90010 */ sw $t9,0x10($sp)
/* f0e7388: 8fa60078 */ lw $a2,0x78($sp)
/* f0e738c: afb00014 */ sw $s0,0x14($sp)
/* f0e7390: afb00018 */ sw $s0,0x18($sp)
/* f0e7394: 0fc37ef6 */ jal func0f0e2744
/* f0e7398: 24a70001 */ addiu $a3,$a1,0x1
/* f0e739c: 8fa50058 */ lw $a1,0x58($sp)
/* f0e73a0: 8fb80074 */ lw $t8,0x74($sp)
/* f0e73a4: 00402025 */ or $a0,$v0,$zero
/* f0e73a8: 24a50002 */ addiu $a1,$a1,0x2
/* f0e73ac: afa50044 */ sw $a1,0x44($sp)
/* f0e73b0: 8fa60078 */ lw $a2,0x78($sp)
/* f0e73b4: 8fa70054 */ lw $a3,0x54($sp)
/* f0e73b8: afb00014 */ sw $s0,0x14($sp)
/* f0e73bc: afb00018 */ sw $s0,0x18($sp)
/* f0e73c0: 0fc37ef6 */ jal func0f0e2744
/* f0e73c4: afb80010 */ sw $t8,0x10($sp)
/* f0e73c8: 8fa60074 */ lw $a2,0x74($sp)
/* f0e73cc: 8fa50044 */ lw $a1,0x44($sp)
/* f0e73d0: 00402025 */ or $a0,$v0,$zero
/* f0e73d4: 24ca0001 */ addiu $t2,$a2,0x1
/* f0e73d8: afaa0010 */ sw $t2,0x10($sp)
/* f0e73dc: 8fa7006c */ lw $a3,0x6c($sp)
/* f0e73e0: afb00014 */ sw $s0,0x14($sp)
/* f0e73e4: 0fc37ef6 */ jal func0f0e2744
/* f0e73e8: afb00018 */ sw $s0,0x18($sp)
/* f0e73ec: afa20130 */ sw $v0,0x130($sp)
.NB0f0e73f0:
/* f0e73f0: 8fbf003c */ lw $ra,0x3c($sp)
/* f0e73f4: 8fa20130 */ lw $v0,0x130($sp)
/* f0e73f8: 8fb00038 */ lw $s0,0x38($sp)
/* f0e73fc: 03e00008 */ jr $ra
/* f0e7400: 27bd0130 */ addiu $sp,$sp,0x130
);
#endif
Gfx *menuRenderItemObjectives(Gfx *gdl, struct menurendercontext *context)
@ -7610,7 +8263,7 @@ Gfx *menuRenderItemCarousel(Gfx *gdl, struct menurendercontext *context)
// This part of the function is unused because param2 is always zero.
// Setting it to 0x7b causes a crash.
// 0x7c and 0x7d don't do anycontext with the option value, so it's probable
// 0x7c and 0x7d don't do anything with the option value, so it's probable
// that the original source has a commented function call in that block.
if (context->item->param2 == 0x7b && context->item->handler) {
union handlerdata data;
@ -8249,7 +8902,7 @@ char *menuItemScrollableGetText(u32 type)
*
* headings - which are started with the pipe character and ended with a
* double line break
* body text - which is anycontext else
* body text - which is anything else
*
* Headings are rendered in red, with a dropshadow and are outdented.
*/

View File

@ -22,9 +22,12 @@
struct menudialog g_MpEndscreenChallengeCompletedMenuDialog;
struct menudialog g_MpEndscreenIndGameOverMenuDialog;
struct menudialog g_MpEndscreenSavePlayerMenuDialog;
struct menudialog g_MpEndscreenTeamGameOverMenuDialog;
#if VERSION >= VERSION_NTSC_1_0
struct menudialog g_MpEndscreenSavePlayerMenuDialog;
#endif
s32 mpStatsForPlayerDropdownHandler(s32 operation, struct menuitem *item, union handlerdata *data)
{
char *name;

View File

@ -1378,6 +1378,7 @@ s32 mpGetWeaponSlot(s32 slot)
return count;
}
#if VERSION >= VERSION_NTSC_1_0
GLOBAL_ASM(
glabel func0f188e24
/* f188e24: 24860001 */ addiu $a2,$a0,0x1
@ -1430,6 +1431,60 @@ glabel func0f188e24
/* f188ecc: 03e00008 */ jr $ra
/* f188ed0: 00000000 */ nop
);
#else
GLOBAL_ASM(
glabel func0f188e24
/* f188e24: 24860001 */ addiu $a2,$a0,0x1
/* f188e28: 27bdfff0 */ addiu $sp,$sp,-16
/* f188e2c: 00c01025 */ or $v0,$a2,$zero
/* f188e30: 18c0001e */ blez $a2,.L0f188eac
/* f188e34: 00002825 */ or $a1,$zero,$zero
/* f188e38: 3c088008 */ lui $t0,%hi(g_MpWeapons)
/* f188e3c: 3c04800b */ lui $a0,%hi(g_MpSetup)
/* f188e40: 2484cb88 */ addiu $a0,$a0,%lo(g_MpSetup)
/* f188e44: 25087268 */ addiu $t0,$t0,%lo(g_MpWeapons)
/* f188e48: 2409000a */ addiu $t1,$zero,0xa
/* f188e4c: 2407005c */ addiu $a3,$zero,0x5b
/* f188e50: 00857021 */ addu $t6,$a0,$a1
.L0f188e54:
/* f188e54: 91c30018 */ lbu $v1,0x18($t6)
/* f188e58: 00690019 */ multu $v1,$t1
/* f188e5c: 00007812 */ mflo $t7
/* f188e60: 010fc021 */ addu $t8,$t0,$t7
/* f188e64: 93190000 */ lbu $t9,0x0($t8)
/* f188e68: 10f90002 */ beq $a3,$t9,.L0f188e74
/* f188e6c: 00000000 */ nop
/* f188e70: 2442ffff */ addiu $v0,$v0,-1
.L0f188e74:
/* f188e74: 1840000a */ blez $v0,.L0f188ea0
/* f188e78: 00000000 */ nop
/* f188e7c: 24a50001 */ addiu $a1,$a1,0x1
/* f188e80: 28a10006 */ slti $at,$a1,0x6
/* f188e84: 14200006 */ bnez $at,.L0f188ea0
/* f188e88: 00000000 */ nop
/* f188e8c: 14c20003 */ bne $a2,$v0,.L0f188e9c
/* f188e90: 00002825 */ or $a1,$zero,$zero
/* f188e94: 00001825 */ or $v1,$zero,$zero
/* f188e98: 00001025 */ or $v0,$zero,$zero
.L0f188e9c:
/* f188e9c: 00403025 */ or $a2,$v0,$zero
.L0f188ea0:
/* f188ea0: 5c40ffec */ bgtzl $v0,.L0f188e54
/* f188ea4: 00857021 */ addu $t6,$a0,$a1
/* f188ea8: a3a30003 */ sb $v1,0x3($sp)
.L0f188eac:
/* f188eac: 93a30003 */ lbu $v1,0x3($sp)
/* f188eb0: 2409000a */ addiu $t1,$zero,0xa
/* f188eb4: 3c088008 */ lui $t0,%hi(g_MpWeapons)
/* f188eb8: 00690019 */ multu $v1,$t1
/* f188ebc: 25087268 */ addiu $t0,$t0,%lo(g_MpWeapons)
/* f188ec0: 27bd0010 */ addiu $sp,$sp,0x10
/* f188ec4: 00005012 */ mflo $t2
/* f188ec8: 010a1021 */ addu $v0,$t0,$t2
/* f188ecc: 03e00008 */ jr $ra
/* f188ed0: 00000000 */ nop
);
#endif
s32 mpCountWeaponSetThing(s32 weaponsetindex)
{
@ -1445,7 +1500,7 @@ s32 mpCountWeaponSetThing(s32 weaponsetindex)
if ((mpIsFeatureUnlocked(g_MpWeaponSets[i].requirefeatures[0])
&& mpIsFeatureUnlocked(g_MpWeaponSets[i].requirefeatures[1])
&& mpIsFeatureUnlocked(g_MpWeaponSets[i].requirefeatures[2])
&& mpIsFeatureUnlocked(g_MpWeaponSets[i].requirefeatures[3])) || g_MpWeaponSets[i].unk0c != 0x5c) {
&& mpIsFeatureUnlocked(g_MpWeaponSets[i].requirefeatures[3])) || g_MpWeaponSets[i].unk0c != WEAPON_DISABLED) {
count++;
}
}
@ -1504,6 +1559,7 @@ char *mpGetWeaponSetName(s32 index)
return langGet(g_MpWeaponSets[index].name);
}
#if VERSION >= VERSION_NTSC_1_0
GLOBAL_ASM(
glabel func0f18913c
/* f18913c: 27bdffb8 */ addiu $sp,$sp,-72
@ -1620,7 +1676,126 @@ glabel func0f18913c
/* f1892d4: 03e00008 */ jr $ra
/* f1892d8: 27bd0048 */ addiu $sp,$sp,0x48
);
#else
GLOBAL_ASM(
glabel func0f18913c
/* f18913c: 27bdffb8 */ addiu $sp,$sp,-72
/* f189140: afb70034 */ sw $s7,0x34($sp)
/* f189144: afb5002c */ sw $s5,0x2c($sp)
/* f189148: 3c0f8008 */ lui $t7,%hi(g_MpWeaponSets)
/* f18914c: afbe0038 */ sw $s8,0x38($sp)
/* f189150: afb60030 */ sw $s6,0x30($sp)
/* f189154: afb40028 */ sw $s4,0x28($sp)
/* f189158: 25ef73f0 */ addiu $t7,$t7,%lo(g_MpWeaponSets)
/* f18915c: 3c158008 */ lui $s5,%hi(g_MpWeapons)
/* f189160: 3c17800b */ lui $s7,%hi(g_MpSetup+0x6)
/* f189164: 00007100 */ sll $t6,$zero,0x4
/* f189168: afbf003c */ sw $ra,0x3c($sp)
/* f18916c: afb30024 */ sw $s3,0x24($sp)
/* f189170: afb20020 */ sw $s2,0x20($sp)
/* f189174: afb1001c */ sw $s1,0x1c($sp)
/* f189178: afb00018 */ sw $s0,0x18($sp)
/* f18917c: afa00040 */ sw $zero,0x40($sp)
/* f189180: 01cff021 */ addu $s8,$t6,$t7
/* f189184: 26f7cb8e */ addiu $s7,$s7,%lo(g_MpSetup+0x6)
/* f189188: 26b57268 */ addiu $s5,$s5,%lo(g_MpWeapons)
/* f18918c: 2414005b */ addiu $s4,$zero,0x5a
/* f189190: 2416000a */ addiu $s6,$zero,0xa
/* f189194: afa00044 */ sw $zero,0x44($sp)
.L0f189198:
/* f189198: 0fc67244 */ jal mpIsFeatureUnlocked
/* f18919c: 93c40008 */ lbu $a0,0x8($s8)
/* f1891a0: 50400010 */ beqzl $v0,.L0f1891e4
/* f1891a4: 93d8000c */ lbu $t8,0xc($s8)
/* f1891a8: 0fc67244 */ jal mpIsFeatureUnlocked
/* f1891ac: 93c40009 */ lbu $a0,0x9($s8)
/* f1891b0: 5040000c */ beqzl $v0,.L0f1891e4
/* f1891b4: 93d8000c */ lbu $t8,0xc($s8)
/* f1891b8: 0fc67244 */ jal mpIsFeatureUnlocked
/* f1891bc: 93c4000a */ lbu $a0,0xa($s8)
/* f1891c0: 50400008 */ beqzl $v0,.L0f1891e4
/* f1891c4: 93d8000c */ lbu $t8,0xc($s8)
/* f1891c8: 0fc67244 */ jal mpIsFeatureUnlocked
/* f1891cc: 93c4000b */ lbu $a0,0xb($s8)
/* f1891d0: 50400004 */ beqzl $v0,.L0f1891e4
/* f1891d4: 93d8000c */ lbu $t8,0xc($s8)
/* f1891d8: 10000008 */ b .L0f1891fc
/* f1891dc: 27c20002 */ addiu $v0,$s8,0x2
/* f1891e0: 93d8000c */ lbu $t8,0xc($s8)
.L0f1891e4:
/* f1891e4: 2401005c */ addiu $at,$zero,0x5b
/* f1891e8: 00001025 */ or $v0,$zero,$zero
/* f1891ec: 13010003 */ beq $t8,$at,.L0f1891fc
/* f1891f0: 00000000 */ nop
/* f1891f4: 10000001 */ b .L0f1891fc
/* f1891f8: 27c2000c */ addiu $v0,$s8,0xc
.L0f1891fc:
/* f1891fc: 1040001d */ beqz $v0,.L0f189274
/* f189200: 24130001 */ addiu $s3,$zero,0x1
/* f189204: 3c11800b */ lui $s1,%hi(g_MpSetup)
/* f189208: 2631cb88 */ addiu $s1,$s1,%lo(g_MpSetup)
/* f18920c: 00409025 */ or $s2,$v0,$zero
.L0f189210:
/* f189210: 92500000 */ lbu $s0,0x0($s2)
/* f189214: 56140007 */ bnel $s0,$s4,.L0f189234
/* f189218: 92390018 */ lbu $t9,0x18($s1)
/* f18921c: 0fc67244 */ jal mpIsFeatureUnlocked
/* f189220: 24040016 */ addiu $a0,$zero,0x16
/* f189224: 54400003 */ bnezl $v0,.L0f189234
/* f189228: 92390018 */ lbu $t9,0x18($s1)
/* f18922c: 00008025 */ or $s0,$zero,$zero
/* f189230: 92390018 */ lbu $t9,0x18($s1)
.L0f189234:
/* f189234: 26310001 */ addiu $s1,$s1,0x1
/* f189238: 03360019 */ multu $t9,$s6
/* f18923c: 00004012 */ mflo $t0
/* f189240: 02a84821 */ addu $t1,$s5,$t0
/* f189244: 912a0000 */ lbu $t2,0x0($t1)
/* f189248: 120a0002 */ beq $s0,$t2,.L0f189254
/* f18924c: 00000000 */ nop
/* f189250: 00009825 */ or $s3,$zero,$zero
.L0f189254:
/* f189254: 1637ffee */ bne $s1,$s7,.L0f189210
/* f189258: 26520001 */ addiu $s2,$s2,0x1
/* f18925c: 12600005 */ beqz $s3,.L0f189274
/* f189260: 8fa20044 */ lw $v0,0x44($sp)
/* f189264: 240b0001 */ addiu $t3,$zero,0x1
/* f189268: 3c018008 */ lui $at,%hi(var800874c8)
/* f18926c: afab0040 */ sw $t3,0x40($sp)
/* f189270: ac2274c8 */ sw $v0,%lo(var800874c8)($at)
.L0f189274:
/* f189274: 8fac0040 */ lw $t4,0x40($sp)
/* f189278: 8fa20044 */ lw $v0,0x44($sp)
/* f18927c: 27de0012 */ addiu $s8,$s8,0x12
/* f189280: 15800004 */ bnez $t4,.L0f189294
/* f189284: 24420001 */ addiu $v0,$v0,0x1
/* f189288: 2401000c */ addiu $at,$zero,0xc
/* f18928c: 1441ffc2 */ bne $v0,$at,.L0f189198
/* f189290: afa20044 */ sw $v0,0x44($sp)
.L0f189294:
/* f189294: 8fad0040 */ lw $t5,0x40($sp)
/* f189298: 240e000e */ addiu $t6,$zero,0xe
/* f18929c: 3c018008 */ lui $at,%hi(var800874c8)
/* f1892a0: 55a00003 */ bnezl $t5,.L0f1892b0
/* f1892a4: 8fbf003c */ lw $ra,0x3c($sp)
/* f1892a8: ac2e74c8 */ sw $t6,%lo(var800874c8)($at)
/* f1892ac: 8fbf003c */ lw $ra,0x3c($sp)
.L0f1892b0:
/* f1892b0: 8fb00018 */ lw $s0,0x18($sp)
/* f1892b4: 8fb1001c */ lw $s1,0x1c($sp)
/* f1892b8: 8fb20020 */ lw $s2,0x20($sp)
/* f1892bc: 8fb30024 */ lw $s3,0x24($sp)
/* f1892c0: 8fb40028 */ lw $s4,0x28($sp)
/* f1892c4: 8fb5002c */ lw $s5,0x2c($sp)
/* f1892c8: 8fb60030 */ lw $s6,0x30($sp)
/* f1892cc: 8fb70034 */ lw $s7,0x34($sp)
/* f1892d0: 8fbe0038 */ lw $s8,0x38($sp)
/* f1892d4: 03e00008 */ jr $ra
/* f1892d8: 27bd0048 */ addiu $sp,$sp,0x48
);
#endif
#if VERSION >= VERSION_NTSC_1_0
GLOBAL_ASM(
glabel func0f1892dc
/* f1892dc: 27bdffb0 */ addiu $sp,$sp,-80
@ -1822,6 +1997,209 @@ glabel func0f1892dc
/* f1895b4: 03e00008 */ jr $ra
/* f1895b8: 00000000 */ nop
);
#else
GLOBAL_ASM(
glabel func0f1892dc
/* f1892dc: 27bdffb0 */ addiu $sp,$sp,-80
/* f1892e0: afb00018 */ sw $s0,0x18($sp)
/* f1892e4: 3c108008 */ lui $s0,%hi(var800874c8)
/* f1892e8: 261074c8 */ addiu $s0,$s0,%lo(var800874c8)
/* f1892ec: 8e020000 */ lw $v0,0x0($s0)
/* f1892f0: afbf001c */ sw $ra,0x1c($sp)
/* f1892f4: 04400077 */ bltz $v0,.L0f1894d4
/* f1892f8: 2841000c */ slti $at,$v0,0xc
/* f1892fc: 10200075 */ beqz $at,.L0f1894d4
/* f189300: 000270c0 */ sll $t6,$v0,0x3
/* f189304: 01c27021 */ addu $t6,$t6,$v0
/* f189308: 000e7040 */ sll $t6,$t6,0x1
/* f18930c: 3c048008 */ lui $a0,%hi(g_MpWeaponSets+0x8)
/* f189310: 008e2021 */ addu $a0,$a0,$t6
/* f189314: 0fc67244 */ jal mpIsFeatureUnlocked
/* f189318: 908473f8 */ lbu $a0,%lo(g_MpWeaponSets+0x8)($a0)
/* f18931c: 50400029 */ beqzl $v0,.L0f1893c4
/* f189320: 8e0d0000 */ lw $t5,0x0($s0)
/* f189324: 8e0f0000 */ lw $t7,0x0($s0)
/* f189328: 3c048008 */ lui $a0,%hi(g_MpWeaponSets+0x9)
/* f18932c: 000fc0c0 */ sll $t8,$t7,0x3
/* f189330: 030fc021 */ addu $t8,$t8,$t7
/* f189334: 0018c040 */ sll $t8,$t8,0x1
/* f189338: 00982021 */ addu $a0,$a0,$t8
/* f18933c: 0fc67244 */ jal mpIsFeatureUnlocked
/* f189340: 908473f9 */ lbu $a0,%lo(g_MpWeaponSets+0x9)($a0)
/* f189344: 5040001f */ beqzl $v0,.L0f1893c4
/* f189348: 8e0d0000 */ lw $t5,0x0($s0)
/* f18934c: 8e190000 */ lw $t9,0x0($s0)
/* f189350: 3c048008 */ lui $a0,%hi(g_MpWeaponSets+0xa)
/* f189354: 001960c0 */ sll $t4,$t9,0x3
/* f189358: 01996021 */ addu $t4,$t4,$t9
/* f18935c: 000c6040 */ sll $t4,$t4,0x1
/* f189360: 008c2021 */ addu $a0,$a0,$t4
/* f189364: 0fc67244 */ jal mpIsFeatureUnlocked
/* f189368: 908473fa */ lbu $a0,%lo(g_MpWeaponSets+0xa)($a0)
/* f18936c: 50400015 */ beqzl $v0,.L0f1893c4
/* f189370: 8e0d0000 */ lw $t5,0x0($s0)
/* f189374: 8e0d0000 */ lw $t5,0x0($s0)
/* f189378: 3c048008 */ lui $a0,%hi(g_MpWeaponSets+0xb)
/* f18937c: 000d70c0 */ sll $t6,$t5,0x3
/* f189380: 01cd7021 */ addu $t6,$t6,$t5
/* f189384: 000e7040 */ sll $t6,$t6,0x1
/* f189388: 008e2021 */ addu $a0,$a0,$t6
/* f18938c: 0fc67244 */ jal mpIsFeatureUnlocked
/* f189390: 908473fb */ lbu $a0,%lo(g_MpWeaponSets+0xb)($a0)
/* f189394: 5040000b */ beqzl $v0,.L0f1893c4
/* f189398: 8e0d0000 */ lw $t5,0x0($s0)
/* f18939c: 8e0f0000 */ lw $t7,0x0($s0)
/* f1893a0: 3c0c8008 */ lui $t4,%hi(g_MpWeaponSets)
/* f1893a4: 258c73f0 */ addiu $t4,$t4,%lo(g_MpWeaponSets)
/* f1893a8: 000fc0c0 */ sll $t8,$t7,0x3
/* f1893ac: 030fc021 */ addu $t8,$t8,$t7
/* f1893b0: 0018c040 */ sll $t8,$t8,0x1
/* f1893b4: 27190002 */ addiu $t9,$t8,0x2
/* f1893b8: 1000000f */ b .L0f1893f8
/* f1893bc: 032c1021 */ addu $v0,$t9,$t4
/* f1893c0: 8e0d0000 */ lw $t5,0x0($s0)
.L0f1893c4:
/* f1893c4: 3c0f8008 */ lui $t7,%hi(g_MpWeaponSets)
/* f1893c8: 25ef73f0 */ addiu $t7,$t7,%lo(g_MpWeaponSets)
/* f1893cc: 000d70c0 */ sll $t6,$t5,0x3
/* f1893d0: 01cd7021 */ addu $t6,$t6,$t5
/* f1893d4: 000e7040 */ sll $t6,$t6,0x1
/* f1893d8: 01cf1821 */ addu $v1,$t6,$t7
/* f1893dc: 9078000c */ lbu $t8,0xc($v1)
/* f1893e0: 2401005c */ addiu $at,$zero,0x5b
/* f1893e4: 53010004 */ beql $t8,$at,.L0f1893f8
/* f1893e8: 00001025 */ or $v0,$zero,$zero
/* f1893ec: 10000002 */ b .L0f1893f8
/* f1893f0: 2462000c */ addiu $v0,$v1,0xc
/* f1893f4: 00001025 */ or $v0,$zero,$zero
.L0f1893f8:
/* f1893f8: 1040006b */ beqz $v0,.L0f1895a8
/* f1893fc: 00405825 */ or $t3,$v0,$zero
/* f189400: 3c0a800b */ lui $t2,%hi(g_MpSetup)
/* f189404: 3c088008 */ lui $t0,%hi(g_MpWeapons)
/* f189408: 25087268 */ addiu $t0,$t0,%lo(g_MpWeapons)
/* f18940c: 254acb88 */ addiu $t2,$t2,%lo(g_MpSetup)
/* f189410: 2410005b */ addiu $s0,$zero,0x5a
/* f189414: 2409000a */ addiu $t1,$zero,0xa
.L0f189418:
/* f189418: 91660000 */ lbu $a2,0x0($t3)
/* f18941c: 00002825 */ or $a1,$zero,$zero
/* f189420: 00003825 */ or $a3,$zero,$zero
/* f189424: 14d00014 */ bne $a2,$s0,.L0f189478
/* f189428: 00001825 */ or $v1,$zero,$zero
/* f18942c: 24040016 */ addiu $a0,$zero,0x16
/* f189430: afa00044 */ sw $zero,0x44($sp)
/* f189434: afa00040 */ sw $zero,0x40($sp)
/* f189438: afa60038 */ sw $a2,0x38($sp)
/* f18943c: afa0003c */ sw $zero,0x3c($sp)
/* f189440: afaa0024 */ sw $t2,0x24($sp)
/* f189444: 0fc67244 */ jal mpIsFeatureUnlocked
/* f189448: afab0028 */ sw $t3,0x28($sp)
/* f18944c: 3c088008 */ lui $t0,%hi(g_MpWeapons)
/* f189450: 25087268 */ addiu $t0,$t0,%lo(g_MpWeapons)
/* f189454: 8fa30044 */ lw $v1,0x44($sp)
/* f189458: 8fa50040 */ lw $a1,0x40($sp)
/* f18945c: 8fa60038 */ lw $a2,0x38($sp)
/* f189460: 8fa7003c */ lw $a3,0x3c($sp)
/* f189464: 2409000a */ addiu $t1,$zero,0xa
/* f189468: 8faa0024 */ lw $t2,0x24($sp)
/* f18946c: 14400002 */ bnez $v0,.L0f189478
/* f189470: 8fab0028 */ lw $t3,0x28($sp)
/* f189474: 00003025 */ or $a2,$zero,$zero
.L0f189478:
/* f189478: 2c610027 */ sltiu $at,$v1,0x27
/* f18947c: 14200003 */ bnez $at,.L0f18948c
/* f189480: 00000000 */ nop
/* f189484: 10000009 */ b .L0f1894ac
/* f189488: 24050001 */ addiu $a1,$zero,0x1
.L0f18948c:
/* f18948c: 00690019 */ multu $v1,$t1
/* f189490: 0000c812 */ mflo $t9
/* f189494: 01196021 */ addu $t4,$t0,$t9
/* f189498: 918d0000 */ lbu $t5,0x0($t4)
/* f18949c: 14cd0003 */ bne $a2,$t5,.L0f1894ac
/* f1894a0: 00000000 */ nop
/* f1894a4: 00603825 */ or $a3,$v1,$zero
/* f1894a8: 24050001 */ addiu $a1,$zero,0x1
.L0f1894ac:
/* f1894ac: 10a0fff2 */ beqz $a1,.L0f189478
/* f1894b0: 24630001 */ addiu $v1,$v1,0x1
/* f1894b4: 3c0e800b */ lui $t6,%hi(g_MpSetup+0x6)
/* f1894b8: 25cecb8e */ addiu $t6,$t6,%lo(g_MpSetup+0x6)
/* f1894bc: 254a0001 */ addiu $t2,$t2,0x1
/* f1894c0: 256b0001 */ addiu $t3,$t3,0x1
/* f1894c4: 154effd4 */ bne $t2,$t6,.L0f189418
/* f1894c8: a1470017 */ sb $a3,0x17($t2)
/* f1894cc: 10000037 */ b .L0f1895ac
/* f1894d0: 8fbf001c */ lw $ra,0x1c($sp)
.L0f1894d4:
/* f1894d4: 2401000d */ addiu $at,$zero,0xd
/* f1894d8: 54410017 */ bnel $v0,$at,.L0f189538
/* f1894dc: 2401000c */ addiu $at,$zero,0xc
/* f1894e0: 0fc622f5 */ jal mpGetNumWeaponOptions
/* f1894e4: 00000000 */ nop
/* f1894e8: afa20034 */ sw $v0,0x34($sp)
/* f1894ec: 00008025 */ or $s0,$zero,$zero
.L0f1894f0:
/* f1894f0: 0c004b70 */ jal random
/* f1894f4: 00000000 */ nop
/* f1894f8: 8faf0034 */ lw $t7,0x34($sp)
/* f1894fc: 02002025 */ or $a0,$s0,$zero
/* f189500: 004f001b */ divu $zero,$v0,$t7
/* f189504: 00002810 */ mfhi $a1
/* f189508: 15e00002 */ bnez $t7,.L0f189514
/* f18950c: 00000000 */ nop
/* f189510: 0007000d */ break 0x7
.L0f189514:
/* f189514: 0fc62346 */ jal mpSetWeaponSlot
/* f189518: 00000000 */ nop
/* f18951c: 26100001 */ addiu $s0,$s0,0x1
/* f189520: 24010006 */ addiu $at,$zero,0x6
/* f189524: 1601fff2 */ bne $s0,$at,.L0f1894f0
/* f189528: 00000000 */ nop
/* f18952c: 1000001f */ b .L0f1895ac
/* f189530: 8fbf001c */ lw $ra,0x1c($sp)
/* f189534: 2401000c */ addiu $at,$zero,0xc
.L0f189538:
/* f189538: 5441001c */ bnel $v0,$at,.L0f1895ac
/* f18953c: 8fbf001c */ lw $ra,0x1c($sp)
/* f189540: 0fc622f5 */ jal mpGetNumWeaponOptions
/* f189544: 00000000 */ nop
/* f189548: 2458fffe */ addiu $t8,$v0,-2
/* f18954c: afb80030 */ sw $t8,0x30($sp)
/* f189550: 00008025 */ or $s0,$zero,$zero
.L0f189554:
/* f189554: 0c004b70 */ jal random
/* f189558: 00000000 */ nop
/* f18955c: 8fb90030 */ lw $t9,0x30($sp)
/* f189560: 02002025 */ or $a0,$s0,$zero
/* f189564: 0059001b */ divu $zero,$v0,$t9
/* f189568: 00002810 */ mfhi $a1
/* f18956c: 24a50001 */ addiu $a1,$a1,0x1
/* f189570: 17200002 */ bnez $t9,.L0f18957c
/* f189574: 00000000 */ nop
/* f189578: 0007000d */ break 0x7
.L0f18957c:
/* f18957c: 0fc62346 */ jal mpSetWeaponSlot
/* f189580: 00000000 */ nop
/* f189584: 26100001 */ addiu $s0,$s0,0x1
/* f189588: 24010005 */ addiu $at,$zero,0x5
/* f18958c: 1601fff1 */ bne $s0,$at,.L0f189554
/* f189590: 00000000 */ nop
/* f189594: 0fc622f5 */ jal mpGetNumWeaponOptions
/* f189598: 00000000 */ nop
/* f18959c: 02002025 */ or $a0,$s0,$zero
/* f1895a0: 0fc62346 */ jal mpSetWeaponSlot
/* f1895a4: 2445ffff */ addiu $a1,$v0,-1
.L0f1895a8:
/* f1895a8: 8fbf001c */ lw $ra,0x1c($sp)
.L0f1895ac:
/* f1895ac: 8fb00018 */ lw $s0,0x18($sp)
/* f1895b0: 27bd0050 */ addiu $sp,$sp,0x50
/* f1895b4: 03e00008 */ jr $ra
/* f1895b8: 00000000 */ nop
);
#endif
void mpSetWeaponSet(s32 weaponsetnum)
{

View File

@ -2381,6 +2381,7 @@ bool scenarioCtcRadar2(Gfx **gdl, struct prop *prop)
return false;
}
#if VERSION >= VERSION_NTSC_1_0
GLOBAL_ASM(
glabel scenarioCtcHighlight
/* f181764: 90860000 */ lbu $a2,0x0($a0)
@ -2425,6 +2426,52 @@ glabel scenarioCtcHighlight
/* f1817f8: 03e00008 */ jr $ra
/* f1817fc: 00000000 */ nop
);
#else
GLOBAL_ASM(
glabel scenarioCtcHighlight
/* f181764: 90860000 */ lbu $a2,0x0($a0)
/* f181768: 8c830004 */ lw $v1,0x4($a0)
/* f18176c: 24010001 */ addiu $at,$zero,0x1
/* f181770: 10c10006 */ beq $a2,$at,.L0f18178c
/* f181774: 00601025 */ or $v0,$v1,$zero
/* f181778: 24010004 */ addiu $at,$zero,0x4
/* f18177c: 10c10003 */ beq $a2,$at,.L0f18178c
/* f181780: 24010002 */ addiu $at,$zero,0x2
/* f181784: 54c1001c */ bnel $a2,$at,.L0f1817f8
/* f181788: 00001025 */ or $v0,$zero,$zero
.L0f18178c:
/* f18178c: 904e0003 */ lbu $t6,0x3($v0)
/* f181790: 24010008 */ addiu $at,$zero,0x8
/* f181794: 55c10018 */ bnel $t6,$at,.L0f1817f8
/* f181798: 00001025 */ or $v0,$zero,$zero
/* f18179c: 906f005c */ lbu $t7,0x5c($v1)
/* f1817a0: 24010057 */ addiu $at,$zero,0x56
/* f1817a4: 55e10014 */ bnel $t7,$at,.L0f1817f8
/* f1817a8: 00001025 */ or $v0,$zero,$zero
/* f1817ac: 84780062 */ lh $t8,0x62($v1)
/* f1817b0: 3c038008 */ lui $v1,%hi(g_TeamColours)
/* f1817b4: 240e004b */ addiu $t6,$zero,0x4b
/* f1817b8: 0018c880 */ sll $t9,$t8,0x2
/* f1817bc: 00791821 */ addu $v1,$v1,$t9
/* f1817c0: 8c637cc4 */ lw $v1,%lo(g_TeamColours)($v1)
/* f1817c4: acae000c */ sw $t6,0xc($a1)
/* f1817c8: 24020001 */ addiu $v0,$zero,0x1
/* f1817cc: 00034602 */ srl $t0,$v1,0x18
/* f1817d0: 00035402 */ srl $t2,$v1,0x10
/* f1817d4: 00036202 */ srl $t4,$v1,0x8
/* f1817d8: 310900ff */ andi $t1,$t0,0xff
/* f1817dc: 314b00ff */ andi $t3,$t2,0xff
/* f1817e0: 318d00ff */ andi $t5,$t4,0xff
/* f1817e4: aca90000 */ sw $t1,0x0($a1)
/* f1817e8: acab0004 */ sw $t3,0x4($a1)
/* f1817ec: 03e00008 */ jr $ra
/* f1817f0: acad0008 */ sw $t5,0x8($a1)
/* f1817f4: 00001025 */ or $v0,$zero,$zero
.L0f1817f8:
/* f1817f8: 03e00008 */ jr $ra
/* f1817fc: 00000000 */ nop
);
#endif
//bool scenarioCtcHighlight(struct prop *prop, u32 *colour)
//{

View File

@ -1806,7 +1806,7 @@ const char var7f1b7f68[] = "%d:%02d:%02d";
char *mpMenuTextAccuracy(struct menuitem *item)
{
#if VERSION < VERSION_NTSC_1_0
if (g_MpPlayers[g_MpPlayerNum].ammoused < 8) {
if (g_MpPlayers[g_MpPlayerNum].gamesplayed < 8) {
return "-\n";
}
#endif
@ -4691,6 +4691,7 @@ u32 var800857d4 = 0x50670000; // "Normal Simulants"
u32 var800857d8 = 0x00000006;
u32 var800857dc = 0x50680000; // "Special Simulants"
#if VERSION >= VERSION_NTSC_1_0
GLOBAL_ASM(
glabel menuhandler0017c6a4
.late_rodata
@ -4979,6 +4980,296 @@ glabel var7f1b81e8
/* f17ca38: 03e00008 */ jr $ra
/* f17ca3c: 27bd0058 */ addiu $sp,$sp,0x58
);
#else
GLOBAL_ASM(
glabel menuhandler0017c6a4
.late_rodata
glabel var7f1b81ac
.word menuhandler0017c6a4+0x78 # f17c71c
glabel var7f1b81b0
.word menuhandler0017c6a4+0x2f0 # f17c994
glabel var7f1b81b4
.word menuhandler0017c6a4+0xac # f17c750
glabel var7f1b81b8
.word menuhandler0017c6a4+0x2fc # f17c9a0
glabel var7f1b81bc
.word menuhandler0017c6a4+0x318 # f17c9bc
glabel var7f1b81c0
.word menuhandler0017c6a4+0x100 # f17c7a4
glabel var7f1b81c4
.word menuhandler0017c6a4+0x2b8 # f17c95c
glabel var7f1b81c8
.word menuhandler0017c6a4+0x378 # f17ca1c
glabel var7f1b81cc
.word menuhandler0017c6a4+0x378 # f17ca1c
glabel var7f1b81d0
.word menuhandler0017c6a4+0x378 # f17ca1c
glabel var7f1b81d4
.word menuhandler0017c6a4+0x378 # f17ca1c
glabel var7f1b81d8
.word menuhandler0017c6a4+0x378 # f17ca1c
glabel var7f1b81dc
.word menuhandler0017c6a4+0x378 # f17ca1c
glabel var7f1b81e0
.word menuhandler0017c6a4+0x378 # f17ca1c
glabel var7f1b81e4
.word menuhandler0017c6a4+0x378 # f17ca1c
glabel var7f1b81e8
.word menuhandler0017c6a4+0x250 # f17c8f4
.text
/* f176dc4: 27bdffa8 */ addiu $sp,$sp,-88
/* f176dc8: 3c0e8008 */ lui $t6,0x8008
/* f176dcc: afbf002c */ sw $ra,0x2c($sp)
/* f176dd0: afb40028 */ sw $s4,0x28($sp)
/* f176dd4: afb30024 */ sw $s3,0x24($sp)
/* f176dd8: afb20020 */ sw $s2,0x20($sp)
/* f176ddc: afb1001c */ sw $s1,0x1c($sp)
/* f176de0: afb00018 */ sw $s0,0x18($sp)
/* f176de4: afa5005c */ sw $a1,0x5c($sp)
/* f176de8: 25ce7f4c */ addiu $t6,$t6,0x7f4c
/* f176dec: 8dc10000 */ lw $at,0x0($t6)
/* f176df0: 27b30040 */ addiu $s3,$sp,0x40
/* f176df4: 2488ffff */ addiu $t0,$a0,-1
/* f176df8: ae610000 */ sw $at,0x0($s3)
/* f176dfc: 8dd90004 */ lw $t9,0x4($t6)
/* f176e00: 00c0a025 */ or $s4,$a2,$zero
/* f176e04: 00009025 */ or $s2,$zero,$zero
/* f176e08: ae790004 */ sw $t9,0x4($s3)
/* f176e0c: 8dc10008 */ lw $at,0x8($t6)
/* f176e10: ae610008 */ sw $at,0x8($s3)
/* f176e14: 8dd9000c */ lw $t9,0xc($t6)
/* f176e18: 2d010010 */ sltiu $at,$t0,0x10
/* f176e1c: 102000c7 */ beqz $at,.NB0f17713c
/* f176e20: ae79000c */ sw $t9,0xc($s3)
/* f176e24: 00084080 */ sll $t0,$t0,0x2
/* f176e28: 3c017f1b */ lui $at,0x7f1b
/* f176e2c: 00280821 */ addu $at,$at,$t0
/* f176e30: 8c282aa0 */ lw $t0,0x2aa0($at)
/* f176e34: 01000008 */ jr $t0
/* f176e38: 00000000 */ sll $zero,$zero,0x0
/* f176e3c: 3c108009 */ lui $s0,0x8009
/* f176e40: 3c118009 */ lui $s1,0x8009
/* f176e44: 26319f3c */ addiu $s1,$s1,-24772
/* f176e48: 26109eac */ addiu $s0,$s0,-24916
.NB0f176e4c:
/* f176e4c: 0fc65a5e */ jal mpIsFeatureUnlocked
/* f176e50: 92040006 */ lbu $a0,0x6($s0)
/* f176e54: 10400002 */ beqz $v0,.NB0f176e60
/* f176e58: 26100008 */ addiu $s0,$s0,0x8
/* f176e5c: 26520001 */ addiu $s2,$s2,0x1
.NB0f176e60:
/* f176e60: 1611fffa */ bne $s0,$s1,.NB0f176e4c
/* f176e64: 00000000 */ sll $zero,$zero,0x0
/* f176e68: 100000b4 */ beqz $zero,.NB0f17713c
/* f176e6c: ae920000 */ sw $s2,0x0($s4)
/* f176e70: 3c108009 */ lui $s0,0x8009
/* f176e74: 3c118009 */ lui $s1,0x8009
/* f176e78: 26319f3c */ addiu $s1,$s1,-24772
/* f176e7c: 26109eac */ addiu $s0,$s0,-24916
.NB0f176e80:
/* f176e80: 0fc65a5e */ jal mpIsFeatureUnlocked
/* f176e84: 92040006 */ lbu $a0,0x6($s0)
/* f176e88: 5040000a */ beqzl $v0,.NB0f176eb4
/* f176e8c: 26100008 */ addiu $s0,$s0,0x8
/* f176e90: 8e890000 */ lw $t1,0x0($s4)
/* f176e94: 56490006 */ bnel $s2,$t1,.NB0f176eb0
/* f176e98: 26520001 */ addiu $s2,$s2,0x1
/* f176e9c: 0fc5a4dd */ jal langGet
/* f176ea0: 86040002 */ lh $a0,0x2($s0)
/* f176ea4: 100000a7 */ beqz $zero,.NB0f177144
/* f176ea8: 8fbf002c */ lw $ra,0x2c($sp)
/* f176eac: 26520001 */ addiu $s2,$s2,0x1
.NB0f176eb0:
/* f176eb0: 26100008 */ addiu $s0,$s0,0x8
.NB0f176eb4:
/* f176eb4: 1611fff2 */ bne $s0,$s1,.NB0f176e80
/* f176eb8: 00000000 */ sll $zero,$zero,0x0
/* f176ebc: 100000a0 */ beqz $zero,.NB0f177140
/* f176ec0: 00001025 */ or $v0,$zero,$zero
/* f176ec4: 3c0a8007 */ lui $t2,0x8007
/* f176ec8: 8d4a3af0 */ lw $t2,0x3af0($t2)
/* f176ecc: 3c0c800a */ lui $t4,0x800a
/* f176ed0: afa00038 */ sw $zero,0x38($sp)
/* f176ed4: 000a58c0 */ sll $t3,$t2,0x3
/* f176ed8: 016a5823 */ subu $t3,$t3,$t2
/* f176edc: 000b58c0 */ sll $t3,$t3,0x3
/* f176ee0: 016a5823 */ subu $t3,$t3,$t2
/* f176ee4: 000b5900 */ sll $t3,$t3,0x4
/* f176ee8: 016a5823 */ subu $t3,$t3,$t2
/* f176eec: 000b5880 */ sll $t3,$t3,0x2
/* f176ef0: 018b6021 */ addu $t4,$t4,$t3
/* f176ef4: 8d8c3538 */ lw $t4,0x3538($t4)
/* f176ef8: 3c18800b */ lui $t8,0x800b
/* f176efc: 05810007 */ bgez $t4,.NB0f176f1c
/* f176f00: afac003c */ sw $t4,0x3c($sp)
/* f176f04: 0fc61b6f */ jal mpGetNumSimulants
/* f176f08: 00000000 */ sll $zero,$zero,0x0
/* f176f0c: 240d0001 */ addiu $t5,$zero,0x1
/* f176f10: afa2003c */ sw $v0,0x3c($sp)
/* f176f14: 1000000a */ beqz $zero,.NB0f176f40
/* f176f18: afad0038 */ sw $t5,0x38($sp)
.NB0f176f1c:
/* f176f1c: 8faf003c */ lw $t7,0x3c($sp)
/* f176f20: 9718144e */ lhu $t8,0x144e($t8)
/* f176f24: 24190001 */ addiu $t9,$zero,0x1
/* f176f28: 25ee0004 */ addiu $t6,$t7,0x4
/* f176f2c: 01d94004 */ sllv $t0,$t9,$t6
/* f176f30: 03084824 */ and $t1,$t8,$t0
/* f176f34: 15200002 */ bnez $t1,.NB0f176f40
/* f176f38: 240a0001 */ addiu $t2,$zero,0x1
/* f176f3c: afaa0038 */ sw $t2,0x38($sp)
.NB0f176f40:
/* f176f40: 3c108009 */ lui $s0,0x8009
/* f176f44: 26109eac */ addiu $s0,$s0,-24916
/* f176f48: 00008825 */ or $s1,$zero,$zero
/* f176f4c: 24130012 */ addiu $s3,$zero,0x12
.NB0f176f50:
/* f176f50: 0fc65a5e */ jal mpIsFeatureUnlocked
/* f176f54: 92040006 */ lbu $a0,0x6($s0)
/* f176f58: 50400005 */ beqzl $v0,.NB0f176f70
/* f176f5c: 26310001 */ addiu $s1,$s1,0x1
/* f176f60: 8e8b0000 */ lw $t3,0x0($s4)
/* f176f64: 124b0004 */ beq $s2,$t3,.NB0f176f78
/* f176f68: 26520001 */ addiu $s2,$s2,0x1
/* f176f6c: 26310001 */ addiu $s1,$s1,0x1
.NB0f176f70:
/* f176f70: 1633fff7 */ bne $s1,$s3,.NB0f176f50
/* f176f74: 26100008 */ addiu $s0,$s0,0x8
.NB0f176f78:
/* f176f78: 8fac0038 */ lw $t4,0x38($sp)
/* f176f7c: 8fad003c */ lw $t5,0x3c($sp)
/* f176f80: 3c19800b */ lui $t9,0x800b
/* f176f84: 11800006 */ beqz $t4,.NB0f176fa0
/* f176f88: 000d7880 */ sll $t7,$t5,0x2
/* f176f8c: 8fa4003c */ lw $a0,0x3c($sp)
/* f176f90: 0fc61ae2 */ jal func0f18c984
/* f176f94: 322500ff */ andi $a1,$s1,0xff
/* f176f98: 1000000e */ beqz $zero,.NB0f176fd4
/* f176f9c: 00000000 */ sll $zero,$zero,0x0
.NB0f176fa0:
/* f176fa0: 01ed7821 */ addu $t7,$t7,$t5
/* f176fa4: 920e0000 */ lbu $t6,0x0($s0)
/* f176fa8: 000f7880 */ sll $t7,$t7,0x2
/* f176fac: 01ed7823 */ subu $t7,$t7,$t5
/* f176fb0: 000f7880 */ sll $t7,$t7,0x2
/* f176fb4: 27390de8 */ addiu $t9,$t9,0xde8
/* f176fb8: 01f91021 */ addu $v0,$t7,$t9
/* f176fbc: 31d800ff */ andi $t8,$t6,0xff
/* f176fc0: 17000004 */ bnez $t8,.NB0f176fd4
/* f176fc4: a04e0047 */ sb $t6,0x47($v0)
/* f176fc8: 8fa4003c */ lw $a0,0x3c($sp)
/* f176fcc: 0fc61b59 */ jal func0f18cb60
/* f176fd0: 92050001 */ lbu $a1,0x1($s0)
.NB0f176fd4:
/* f176fd4: 0fc61bf8 */ jal func0f18cddc
/* f176fd8: 00000000 */ sll $zero,$zero,0x0
/* f176fdc: 3c098007 */ lui $t1,0x8007
/* f176fe0: 8d293af0 */ lw $t1,0x3af0($t1)
/* f176fe4: 8e880000 */ lw $t0,0x0($s4)
/* f176fe8: 3c01800a */ lui $at,0x800a
/* f176fec: 000950c0 */ sll $t2,$t1,0x3
/* f176ff0: 01495023 */ subu $t2,$t2,$t1
/* f176ff4: 000a50c0 */ sll $t2,$t2,0x3
/* f176ff8: 01495023 */ subu $t2,$t2,$t1
/* f176ffc: 000a5100 */ sll $t2,$t2,0x4
/* f177000: 01495023 */ subu $t2,$t2,$t1
/* f177004: 000a5080 */ sll $t2,$t2,0x2
/* f177008: 002a0821 */ addu $at,$at,$t2
/* f17700c: 1000004b */ beqz $zero,.NB0f17713c
/* f177010: ac28353c */ sw $t0,0x353c($at)
/* f177014: 3c108009 */ lui $s0,0x8009
/* f177018: 26109eac */ addiu $s0,$s0,-24916
/* f17701c: 00008825 */ or $s1,$zero,$zero
/* f177020: 24130012 */ addiu $s3,$zero,0x12
.NB0f177024:
/* f177024: 0fc65a5e */ jal mpIsFeatureUnlocked
/* f177028: 92040006 */ lbu $a0,0x6($s0)
/* f17702c: 50400005 */ beqzl $v0,.NB0f177044
/* f177030: 26310001 */ addiu $s1,$s1,0x1
/* f177034: 8e8b0000 */ lw $t3,0x0($s4)
/* f177038: 124b0004 */ beq $s2,$t3,.NB0f17704c
/* f17703c: 26520001 */ addiu $s2,$s2,0x1
/* f177040: 26310001 */ addiu $s1,$s1,0x1
.NB0f177044:
/* f177044: 1633fff7 */ bne $s1,$s3,.NB0f177024
/* f177048: 26100008 */ addiu $s0,$s0,0x8
.NB0f17704c:
/* f17704c: 3c0c8007 */ lui $t4,0x8007
/* f177050: 8d8c3af0 */ lw $t4,0x3af0($t4)
/* f177054: 3c01800a */ lui $at,0x800a
/* f177058: 000c68c0 */ sll $t5,$t4,0x3
/* f17705c: 01ac6823 */ subu $t5,$t5,$t4
/* f177060: 000d68c0 */ sll $t5,$t5,0x3
/* f177064: 01ac6823 */ subu $t5,$t5,$t4
/* f177068: 000d6900 */ sll $t5,$t5,0x4
/* f17706c: 01ac6823 */ subu $t5,$t5,$t4
/* f177070: 000d6880 */ sll $t5,$t5,0x2
/* f177074: 002d0821 */ addu $at,$at,$t5
/* f177078: ac313540 */ sw $s1,0x3540($at)
/* f17707c: 3c0f8007 */ lui $t7,0x8007
/* f177080: 8def3af0 */ lw $t7,0x3af0($t7)
/* f177084: 3c0e800a */ lui $t6,0x800a
/* f177088: 000fc8c0 */ sll $t9,$t7,0x3
/* f17708c: 032fc823 */ subu $t9,$t9,$t7
/* f177090: 0019c8c0 */ sll $t9,$t9,0x3
/* f177094: 032fc823 */ subu $t9,$t9,$t7
/* f177098: 0019c900 */ sll $t9,$t9,0x4
/* f17709c: 032fc823 */ subu $t9,$t9,$t7
/* f1770a0: 0019c880 */ sll $t9,$t9,0x2
/* f1770a4: 01d97021 */ addu $t6,$t6,$t9
/* f1770a8: 8dce353c */ lw $t6,0x353c($t6)
/* f1770ac: 10000023 */ beqz $zero,.NB0f17713c
/* f1770b0: ae8e0000 */ sw $t6,0x0($s4)
/* f1770b4: 24180002 */ addiu $t8,$zero,0x2
/* f1770b8: 10000020 */ beqz $zero,.NB0f17713c
/* f1770bc: ae980000 */ sw $t8,0x0($s4)
/* f1770c0: 8e890000 */ lw $t1,0x0($s4)
/* f1770c4: 000940c0 */ sll $t0,$t1,0x3
/* f1770c8: 02685021 */ addu $t2,$s3,$t0
/* f1770cc: 0fc5a4dd */ jal langGet
/* f1770d0: 95440004 */ lhu $a0,0x4($t2)
/* f1770d4: 1000001b */ beqz $zero,.NB0f177144
/* f1770d8: 8fbf002c */ lw $ra,0x2c($sp)
/* f1770dc: 8e8b0000 */ lw $t3,0x0($s4)
/* f1770e0: 3c108009 */ lui $s0,0x8009
/* f1770e4: 26109eac */ addiu $s0,$s0,-24916
/* f1770e8: 000b60c0 */ sll $t4,$t3,0x3
/* f1770ec: 026c6821 */ addu $t5,$s3,$t4
/* f1770f0: 8daf0000 */ lw $t7,0x0($t5)
/* f1770f4: 00008825 */ or $s1,$zero,$zero
/* f1770f8: 59e00010 */ blezl $t7,.NB0f17713c
/* f1770fc: ae920008 */ sw $s2,0x8($s4)
.NB0f177100:
/* f177100: 0fc65a5e */ jal mpIsFeatureUnlocked
/* f177104: 92040006 */ lbu $a0,0x6($s0)
/* f177108: 50400003 */ beqzl $v0,.NB0f177118
/* f17710c: 8e990000 */ lw $t9,0x0($s4)
/* f177110: 26520001 */ addiu $s2,$s2,0x1
/* f177114: 8e990000 */ lw $t9,0x0($s4)
.NB0f177118:
/* f177118: 26310001 */ addiu $s1,$s1,0x1
/* f17711c: 26100008 */ addiu $s0,$s0,0x8
/* f177120: 001970c0 */ sll $t6,$t9,0x3
/* f177124: 026ec021 */ addu $t8,$s3,$t6
/* f177128: 8f090000 */ lw $t1,0x0($t8)
/* f17712c: 0229082a */ slt $at,$s1,$t1
/* f177130: 1420fff3 */ bnez $at,.NB0f177100
/* f177134: 00000000 */ sll $zero,$zero,0x0
/* f177138: ae920008 */ sw $s2,0x8($s4)
.NB0f17713c:
/* f17713c: 00001025 */ or $v0,$zero,$zero
.NB0f177140:
/* f177140: 8fbf002c */ lw $ra,0x2c($sp)
.NB0f177144:
/* f177144: 8fb00018 */ lw $s0,0x18($sp)
/* f177148: 8fb1001c */ lw $s1,0x1c($sp)
/* f17714c: 8fb20020 */ lw $s2,0x20($sp)
/* f177150: 8fb30024 */ lw $s3,0x24($sp)
/* f177154: 8fb40028 */ lw $s4,0x28($sp)
/* f177158: 03e00008 */ jr $ra
/* f17715c: 27bd0058 */ addiu $sp,$sp,0x58
);
#endif
char *mpMenuTextSimulantDescription(struct menuitem *item)
{
@ -5167,7 +5458,7 @@ glabel menuhandlerMpSimulantDifficulty
/* f17cf50: 03e00008 */ jr $ra
/* f17cf54: 27bd0030 */ addiu $sp,$sp,0x30
);
#else
#elif VERSION >= VERSION_NTSC_1_0
GLOBAL_ASM(
glabel menuhandlerMpSimulantDifficulty
/* f17cda0: 27bdffd0 */ addiu $sp,$sp,-48
@ -5294,6 +5585,133 @@ glabel menuhandlerMpSimulantDifficulty
/* f17cf50: 03e00008 */ jr $ra
/* f17cf54: 27bd0030 */ addiu $sp,$sp,0x30
);
#else
GLOBAL_ASM(
glabel menuhandlerMpSimulantDifficulty
/* f1774c0: 27bdffd0 */ addiu $sp,$sp,-48
/* f1774c4: afb40028 */ sw $s4,0x28($sp)
/* f1774c8: afb20020 */ sw $s2,0x20($sp)
/* f1774cc: 24010001 */ addiu $at,$zero,0x1
/* f1774d0: 00c0a025 */ or $s4,$a2,$zero
/* f1774d4: afbf002c */ sw $ra,0x2c($sp)
/* f1774d8: afb30024 */ sw $s3,0x24($sp)
/* f1774dc: afb1001c */ sw $s1,0x1c($sp)
/* f1774e0: afb00018 */ sw $s0,0x18($sp)
/* f1774e4: afa50034 */ sw $a1,0x34($sp)
/* f1774e8: 10810038 */ beq $a0,$at,.NB0f1775cc
/* f1774ec: 00009025 */ or $s2,$zero,$zero
/* f1774f0: 24010003 */ addiu $at,$zero,0x3
/* f1774f4: 10810042 */ beq $a0,$at,.NB0f177600
/* f1774f8: 00008825 */ or $s1,$zero,$zero
/* f1774fc: 24130006 */ addiu $s3,$zero,0x6
/* f177500: 10930006 */ beq $a0,$s3,.NB0f17751c
/* f177504: 3c0e8007 */ lui $t6,0x8007
/* f177508: 24010007 */ addiu $at,$zero,0x7
/* f17750c: 10810014 */ beq $a0,$at,.NB0f177560
/* f177510: 3c188007 */ lui $t8,0x8007
/* f177514: 10000050 */ beqz $zero,.NB0f177658
/* f177518: 00001025 */ or $v0,$zero,$zero
.NB0f17751c:
/* f17751c: 8dce3af0 */ lw $t6,0x3af0($t6)
/* f177520: 3c04800a */ lui $a0,0x800a
/* f177524: 8e850000 */ lw $a1,0x0($s4)
/* f177528: 000e78c0 */ sll $t7,$t6,0x3
/* f17752c: 01ee7823 */ subu $t7,$t7,$t6
/* f177530: 000f78c0 */ sll $t7,$t7,0x3
/* f177534: 01ee7823 */ subu $t7,$t7,$t6
/* f177538: 000f7900 */ sll $t7,$t7,0x4
/* f17753c: 01ee7823 */ subu $t7,$t7,$t6
/* f177540: 000f7880 */ sll $t7,$t7,0x2
/* f177544: 008f2021 */ addu $a0,$a0,$t7
/* f177548: 0fc61b59 */ jal func0f18cb60
/* f17754c: 8c843538 */ lw $a0,0x3538($a0)
/* f177550: 0fc61bf8 */ jal func0f18cddc
/* f177554: 00000000 */ sll $zero,$zero,0x0
/* f177558: 1000003f */ beqz $zero,.NB0f177658
/* f17755c: 00001025 */ or $v0,$zero,$zero
.NB0f177560:
/* f177560: 8f183af0 */ lw $t8,0x3af0($t8)
/* f177564: 3c08800a */ lui $t0,0x800a
/* f177568: 3c02800b */ lui $v0,0x800b
/* f17756c: 0018c8c0 */ sll $t9,$t8,0x3
/* f177570: 0338c823 */ subu $t9,$t9,$t8
/* f177574: 0019c8c0 */ sll $t9,$t9,0x3
/* f177578: 0338c823 */ subu $t9,$t9,$t8
/* f17757c: 0019c900 */ sll $t9,$t9,0x4
/* f177580: 0338c823 */ subu $t9,$t9,$t8
/* f177584: 0019c880 */ sll $t9,$t9,0x2
/* f177588: 01194021 */ addu $t0,$t0,$t9
/* f17758c: 8d083538 */ lw $t0,0x3538($t0)
/* f177590: 00084880 */ sll $t1,$t0,0x2
/* f177594: 01284821 */ addu $t1,$t1,$t0
/* f177598: 00094880 */ sll $t1,$t1,0x2
/* f17759c: 01284823 */ subu $t1,$t1,$t0
/* f1775a0: 00094880 */ sll $t1,$t1,0x2
/* f1775a4: 00491021 */ addu $v0,$v0,$t1
/* f1775a8: 90420e30 */ lbu $v0,0xe30($v0)
/* f1775ac: 04400005 */ bltz $v0,.NB0f1775c4
/* f1775b0: 28410006 */ slti $at,$v0,0x6
/* f1775b4: 10200003 */ beqz $at,.NB0f1775c4
/* f1775b8: 00000000 */ sll $zero,$zero,0x0
/* f1775bc: 10000025 */ beqz $zero,.NB0f177654
/* f1775c0: ae820000 */ sw $v0,0x0($s4)
.NB0f1775c4:
/* f1775c4: 10000023 */ beqz $zero,.NB0f177654
/* f1775c8: ae800000 */ sw $zero,0x0($s4)
.NB0f1775cc:
/* f1775cc: 3c108009 */ lui $s0,0x8009
/* f1775d0: 3c118009 */ lui $s1,0x8009
/* f1775d4: 26319edc */ addiu $s1,$s1,-24868
/* f1775d8: 26109eac */ addiu $s0,$s0,-24916
.NB0f1775dc:
/* f1775dc: 0fc65a5e */ jal mpIsFeatureUnlocked
/* f1775e0: 92040006 */ lbu $a0,0x6($s0)
/* f1775e4: 10400002 */ beqz $v0,.NB0f1775f0
/* f1775e8: 26100008 */ addiu $s0,$s0,0x8
/* f1775ec: 26520001 */ addiu $s2,$s2,0x1
.NB0f1775f0:
/* f1775f0: 1611fffa */ bne $s0,$s1,.NB0f1775dc
/* f1775f4: 00000000 */ sll $zero,$zero,0x0
/* f1775f8: 10000016 */ beqz $zero,.NB0f177654
/* f1775fc: ae920000 */ sw $s2,0x0($s4)
.NB0f177600:
/* f177600: 3c108009 */ lui $s0,0x8009
/* f177604: 26109eac */ addiu $s0,$s0,-24916
/* f177608: 24130006 */ addiu $s3,$zero,0x6
.NB0f17760c:
/* f17760c: 0fc65a5e */ jal mpIsFeatureUnlocked
/* f177610: 92040006 */ lbu $a0,0x6($s0)
/* f177614: 5040000a */ beqzl $v0,.NB0f177640
/* f177618: 26310001 */ addiu $s1,$s1,0x1
/* f17761c: 8e8a0000 */ lw $t2,0x0($s4)
/* f177620: 564a0006 */ bnel $s2,$t2,.NB0f17763c
/* f177624: 26520001 */ addiu $s2,$s2,0x1
/* f177628: 0fc5a4dd */ jal langGet
/* f17762c: 26245852 */ addiu $a0,$s1,0x5852
/* f177630: 1000000a */ beqz $zero,.NB0f17765c
/* f177634: 8fbf002c */ lw $ra,0x2c($sp)
/* f177638: 26520001 */ addiu $s2,$s2,0x1
.NB0f17763c:
/* f17763c: 26310001 */ addiu $s1,$s1,0x1
.NB0f177640:
/* f177640: 1633fff2 */ bne $s1,$s3,.NB0f17760c
/* f177644: 26100008 */ addiu $s0,$s0,0x8
/* f177648: 3c027f1b */ lui $v0,0x7f1b
/* f17764c: 10000002 */ beqz $zero,.NB0f177658
/* f177650: 24422928 */ addiu $v0,$v0,0x2928
.NB0f177654:
/* f177654: 00001025 */ or $v0,$zero,$zero
.NB0f177658:
/* f177658: 8fbf002c */ lw $ra,0x2c($sp)
.NB0f17765c:
/* f17765c: 8fb00018 */ lw $s0,0x18($sp)
/* f177660: 8fb1001c */ lw $s1,0x1c($sp)
/* f177664: 8fb20020 */ lw $s2,0x20($sp)
/* f177668: 8fb30024 */ lw $s3,0x24($sp)
/* f17766c: 8fb40028 */ lw $s4,0x28($sp)
/* f177670: 03e00008 */ jr $ra
/* f177674: 27bd0030 */ addiu $sp,$sp,0x30
);
#endif
s32 menuhandlerMpDeleteSimulant(s32 operation, struct menuitem *item, union handlerdata *data)
@ -6154,6 +6572,7 @@ s32 menuhandlerMpMultipleTunes(s32 operation, struct menuitem *item, union handl
return 0;
}
#if VERSION >= VERSION_NTSC_1_0
GLOBAL_ASM(
glabel menuhandler0017e06c
/* f17e06c: afa50004 */ sw $a1,0x4($sp)
@ -6303,6 +6722,157 @@ glabel menuhandler0017e06c
/* f17e280: 03e00008 */ jr $ra
/* f17e284: 00001025 */ or $v0,$zero,$zero
);
#else
GLOBAL_ASM(
glabel menuhandler0017e06c
/* f17877c: afa50004 */ sw $a1,0x4($sp)
/* f178780: 24010011 */ addiu $at,$zero,0x11
/* f178784: 10810006 */ beq $a0,$at,.NB0f1787a0
/* f178788: 8cc20000 */ lw $v0,0x0($a2)
/* f17878c: 24010012 */ addiu $at,$zero,0x12
/* f178790: 1081003f */ beq $a0,$at,.NB0f178890
/* f178794: 3c098007 */ lui $t1,0x8007
/* f178798: 03e00008 */ jr $ra
/* f17879c: 00001025 */ or $v0,$zero,$zero
.NB0f1787a0:
/* f1787a0: 3c098007 */ lui $t1,0x8007
/* f1787a4: 25293af0 */ addiu $t1,$t1,0x3af0
/* f1787a8: 8d2e0000 */ lw $t6,0x0($t1)
/* f1787ac: 240a0dbc */ addiu $t2,$zero,0xdbc
/* f1787b0: 3c08800a */ lui $t0,0x800a
/* f1787b4: 01ca0019 */ multu $t6,$t2
/* f1787b8: 250827c0 */ addiu $t0,$t0,0x27c0
/* f1787bc: 3c07800b */ lui $a3,0x800b
/* f1787c0: 24e71460 */ addiu $a3,$a3,0x1460
/* f1787c4: 240b000a */ addiu $t3,$zero,0xa
/* f1787c8: 00001825 */ or $v1,$zero,$zero
/* f1787cc: 00007812 */ mflo $t7
/* f1787d0: 010fc021 */ addu $t8,$t0,$t7
/* f1787d4: 8f040d78 */ lw $a0,0xd78($t8)
/* f1787d8: 0004c880 */ sll $t9,$a0,0x2
/* f1787dc: 0324c823 */ subu $t9,$t9,$a0
/* f1787e0: 0019c880 */ sll $t9,$t9,0x2
/* f1787e4: 00f96821 */ addu $t5,$a3,$t9
/* f1787e8: 91ae0000 */ lbu $t6,0x0($t5)
/* f1787ec: 00047880 */ sll $t7,$a0,0x2
/* f1787f0: 01e47823 */ subu $t7,$t7,$a0
/* f1787f4: 116e001c */ beq $t3,$t6,.NB0f178868
/* f1787f8: 000f7880 */ sll $t7,$t7,0x2
/* f1787fc: 00ef2821 */ addu $a1,$a3,$t7
/* f178800: 90b80000 */ lbu $t8,0x0($a1)
/* f178804: 00403021 */ addu $a2,$v0,$zero
/* f178808: 240c000b */ addiu $t4,$zero,0xb
/* f17880c: 53000017 */ beqzl $t8,.NB0f17886c
/* f178810: 2861000b */ slti $at,$v1,0xb
/* f178814: 90a40000 */ lbu $a0,0x0($a1)
/* f178818: a0c40000 */ sb $a0,0x0($a2)
.NB0f17881c:
/* f17881c: 8d2d0000 */ lw $t5,0x0($t1)
/* f178820: 24630001 */ addiu $v1,$v1,0x1
/* f178824: 24c60001 */ addiu $a2,$a2,0x1
/* f178828: 01aa0019 */ multu $t5,$t2
/* f17882c: 00007012 */ mflo $t6
/* f178830: 010e7821 */ addu $t7,$t0,$t6
/* f178834: 8df80d78 */ lw $t8,0xd78($t7)
/* f178838: 0018c880 */ sll $t9,$t8,0x2
/* f17883c: 0338c823 */ subu $t9,$t9,$t8
/* f178840: 0019c880 */ sll $t9,$t9,0x2
/* f178844: 00f96821 */ addu $t5,$a3,$t9
/* f178848: 01a37021 */ addu $t6,$t5,$v1
/* f17884c: 91c40000 */ lbu $a0,0x0($t6)
/* f178850: 51640006 */ beql $t3,$a0,.NB0f17886c
/* f178854: 2861000b */ slti $at,$v1,0xb
/* f178858: 50800004 */ beqzl $a0,.NB0f17886c
/* f17885c: 2861000b */ slti $at,$v1,0xb
/* f178860: 546cffee */ bnel $v1,$t4,.NB0f17881c
/* f178864: a0c40000 */ sb $a0,0x0($a2)
.NB0f178868:
/* f178868: 2861000b */ slti $at,$v1,0xb
.NB0f17886c:
/* f17886c: 10200048 */ beqz $at,.NB0f178990
/* f178870: 00433021 */ addu $a2,$v0,$v1
.NB0f178874:
/* f178874: 24630001 */ addiu $v1,$v1,0x1
/* f178878: 2861000b */ slti $at,$v1,0xb
/* f17887c: a0c00000 */ sb $zero,0x0($a2)
/* f178880: 1420fffc */ bnez $at,.NB0f178874
/* f178884: 24c60001 */ addiu $a2,$a2,0x1
/* f178888: 03e00008 */ jr $ra
/* f17888c: 00001025 */ or $v0,$zero,$zero
.NB0f178890:
/* f178890: 904f0000 */ lbu $t7,0x0($v0)
/* f178894: 00001825 */ or $v1,$zero,$zero
/* f178898: 3c188007 */ lui $t8,0x8007
/* f17889c: 11e0001d */ beqz $t7,.NB0f178914
/* f1788a0: 25293af0 */ addiu $t1,$t1,0x3af0
/* f1788a4: 8f183af0 */ lw $t8,0x3af0($t8)
/* f1788a8: 3c0d800a */ lui $t5,0x800a
/* f1788ac: 00403021 */ addu $a2,$v0,$zero
/* f1788b0: 0018c8c0 */ sll $t9,$t8,0x3
/* f1788b4: 0338c823 */ subu $t9,$t9,$t8
/* f1788b8: 0019c8c0 */ sll $t9,$t9,0x3
/* f1788bc: 0338c823 */ subu $t9,$t9,$t8
/* f1788c0: 0019c900 */ sll $t9,$t9,0x4
/* f1788c4: 0338c823 */ subu $t9,$t9,$t8
/* f1788c8: 0019c880 */ sll $t9,$t9,0x2
/* f1788cc: 01b96821 */ addu $t5,$t5,$t9
/* f1788d0: 8dad3538 */ lw $t5,0x3538($t5)
/* f1788d4: 3c18800b */ lui $t8,0x800b
/* f1788d8: 27181460 */ addiu $t8,$t8,0x1460
/* f1788dc: 000d7080 */ sll $t6,$t5,0x2
/* f1788e0: 01cd7023 */ subu $t6,$t6,$t5
/* f1788e4: 000e7080 */ sll $t6,$t6,0x2
/* f1788e8: 01d82021 */ addu $a0,$t6,$t8
/* f1788ec: 90450000 */ lbu $a1,0x0($v0)
/* f1788f0: 24630001 */ addiu $v1,$v1,0x1
.NB0f1788f4:
/* f1788f4: 2861000b */ slti $at,$v1,0xb
/* f1788f8: a0850000 */ sb $a1,0x0($a0)
/* f1788fc: 24840001 */ addiu $a0,$a0,0x1
/* f178900: 10200004 */ beqz $at,.NB0f178914
/* f178904: 24c60001 */ addiu $a2,$a2,0x1
/* f178908: 90c50000 */ lbu $a1,0x0($a2)
/* f17890c: 54a0fff9 */ bnezl $a1,.NB0f1788f4
/* f178910: 24630001 */ addiu $v1,$v1,0x1
.NB0f178914:
/* f178914: 8d390000 */ lw $t9,0x0($t1)
/* f178918: 240a0dbc */ addiu $t2,$zero,0xdbc
/* f17891c: 3c08800a */ lui $t0,0x800a
/* f178920: 032a0019 */ multu $t9,$t2
/* f178924: 250827c0 */ addiu $t0,$t0,0x27c0
/* f178928: 3c07800b */ lui $a3,0x800b
/* f17892c: 24e71460 */ addiu $a3,$a3,0x1460
/* f178930: 3c02800a */ lui $v0,0x800a
/* f178934: 2442e6c0 */ addiu $v0,$v0,-6464
/* f178938: 00006812 */ mflo $t5
/* f17893c: 010d7021 */ addu $t6,$t0,$t5
/* f178940: 8dcf0d78 */ lw $t7,0xd78($t6)
/* f178944: 240d000a */ addiu $t5,$zero,0xa
/* f178948: 000fc080 */ sll $t8,$t7,0x2
/* f17894c: 030fc023 */ subu $t8,$t8,$t7
/* f178950: 0018c080 */ sll $t8,$t8,0x2
/* f178954: 00f8c821 */ addu $t9,$a3,$t8
/* f178958: 03232021 */ addu $a0,$t9,$v1
/* f17895c: 24630001 */ addiu $v1,$v1,0x1
/* f178960: 2861000b */ slti $at,$v1,0xb
/* f178964: a08d0000 */ sb $t5,0x0($a0)
/* f178968: 10200006 */ beqz $at,.NB0f178984
/* f17896c: 24840001 */ addiu $a0,$a0,0x1
.NB0f178970:
/* f178970: 24630001 */ addiu $v1,$v1,0x1
/* f178974: 2861000b */ slti $at,$v1,0xb
/* f178978: a0800000 */ sb $zero,0x0($a0)
/* f17897c: 1420fffc */ bnez $at,.NB0f178970
/* f178980: 24840001 */ addiu $a0,$a0,0x1
.NB0f178984:
/* f178984: 8c4e0458 */ lw $t6,0x458($v0)
/* f178988: 35cf0002 */ ori $t7,$t6,0x2
/* f17898c: ac4f0458 */ sw $t7,0x458($v0)
.NB0f178990:
/* f178990: 03e00008 */ jr $ra
/* f178994: 00001025 */ or $v0,$zero,$zero
);
#endif
/**
* item->param2 is a text ID for that team's colour. The text IDs for team
@ -7835,6 +8405,7 @@ s32 menuhandlerMpAdvancedSetup(s32 operation, struct menuitem *item, union handl
return 0;
}
#if VERSION >= VERSION_NTSC_1_0
GLOBAL_ASM(
glabel func0f17fa28
/* f17fa28: 27bdffb8 */ addiu $sp,$sp,-72
@ -8019,6 +8590,192 @@ glabel func0f17fa28
/* f17fca8: 03e00008 */ jr $ra
/* f17fcac: 27bd0048 */ addiu $sp,$sp,0x48
);
#else
GLOBAL_ASM(
glabel func0f17fa28
/* f17a0b0: 27bdffb8 */ addiu $sp,$sp,-72
/* f17a0b4: afbf003c */ sw $ra,0x3c($sp)
/* f17a0b8: 3c1f8007 */ lui $ra,0x8007
/* f17a0bc: 27ff3af0 */ addiu $ra,$ra,0x3af0
/* f17a0c0: 8fee0000 */ lw $t6,0x0($ra)
/* f17a0c4: afbe0038 */ sw $s8,0x38($sp)
/* f17a0c8: afb70034 */ sw $s7,0x34($sp)
/* f17a0cc: afb60030 */ sw $s6,0x30($sp)
/* f17a0d0: afb5002c */ sw $s5,0x2c($sp)
/* f17a0d4: afb40028 */ sw $s4,0x28($sp)
/* f17a0d8: afb30024 */ sw $s3,0x24($sp)
/* f17a0dc: afb20020 */ sw $s2,0x20($sp)
/* f17a0e0: afb1001c */ sw $s1,0x1c($sp)
/* f17a0e4: 3c118008 */ lui $s1,0x8008
/* f17a0e8: 3c128008 */ lui $s2,0x8008
/* f17a0ec: 3c138008 */ lui $s3,0x8008
/* f17a0f0: 3c148008 */ lui $s4,0x8008
/* f17a0f4: 3c158009 */ lui $s5,0x8009
/* f17a0f8: 3c168009 */ lui $s6,0x8009
/* f17a0fc: 3c178009 */ lui $s7,0x8009
/* f17a100: 3c1e8009 */ lui $s8,0x8009
/* f17a104: 3c098009 */ lui $t1,0x8009
/* f17a108: 3c088009 */ lui $t0,0x8009
/* f17a10c: 3c078009 */ lui $a3,0x8009
/* f17a110: afb00018 */ sw $s0,0x18($sp)
/* f17a114: 24e79460 */ addiu $a3,$a3,-27552
/* f17a118: 2508957c */ addiu $t0,$t0,-27268
/* f17a11c: 25299700 */ addiu $t1,$t1,-26880
/* f17a120: 27de92c8 */ addiu $s8,$s8,-27960
/* f17a124: 26f79154 */ addiu $s7,$s7,-28332
/* f17a128: 26d69038 */ addiu $s6,$s6,-28616
/* f17a12c: 26b580a8 */ addiu $s5,$s5,-32600
/* f17a130: 26947fb0 */ addiu $s4,$s4,0x7fb0
/* f17a134: 26737f98 */ addiu $s3,$s3,0x7f98
/* f17a138: 26527518 */ addiu $s2,$s2,0x7518
/* f17a13c: 2631749c */ addiu $s1,$s1,0x749c
/* f17a140: 00001025 */ or $v0,$zero,$zero
/* f17a144: afae0040 */ sw $t6,0x40($sp)
/* f17a148: 0002c0c0 */ sll $t8,$v0,0x3
.NB0f17a14c:
/* f17a14c: 0302c023 */ subu $t8,$t8,$v0
/* f17a150: 0018c0c0 */ sll $t8,$t8,0x3
/* f17a154: 0302c023 */ subu $t8,$t8,$v0
/* f17a158: 0018c100 */ sll $t8,$t8,0x4
/* f17a15c: 0302c023 */ subu $t8,$t8,$v0
/* f17a160: 0018c080 */ sll $t8,$t8,0x2
/* f17a164: 3c19800a */ lui $t9,0x800a
/* f17a168: afe20000 */ sw $v0,0x0($ra)
/* f17a16c: 0338c821 */ addu $t9,$t9,$t8
/* f17a170: 8f392c48 */ lw $t9,0x2c48($t9)
/* f17a174: 5320005f */ beqzl $t9,.NB0f17a2f4
/* f17a178: 24420001 */ addiu $v0,$v0,0x1
/* f17a17c: afa20044 */ sw $v0,0x44($sp)
/* f17a180: 8fe20000 */ lw $v0,0x0($ra)
.NB0f17a184:
/* f17a184: 3c0f800a */ lui $t7,0x800a
/* f17a188: 25ef27c0 */ addiu $t7,$t7,0x27c0
/* f17a18c: 000270c0 */ sll $t6,$v0,0x3
/* f17a190: 01c27023 */ subu $t6,$t6,$v0
/* f17a194: 000e70c0 */ sll $t6,$t6,0x3
/* f17a198: 01c27023 */ subu $t6,$t6,$v0
/* f17a19c: 000e7100 */ sll $t6,$t6,0x4
/* f17a1a0: 01c27023 */ subu $t6,$t6,$v0
/* f17a1a4: 000e7080 */ sll $t6,$t6,0x2
/* f17a1a8: 01cfc021 */ addu $t8,$t6,$t7
/* f17a1ac: 870d0484 */ lh $t5,0x484($t8)
/* f17a1b0: 24100001 */ addiu $s0,$zero,0x1
/* f17a1b4: 00005025 */ or $t2,$zero,$zero
/* f17a1b8: 19a0003e */ blez $t5,.NB0f17a2b4
/* f17a1bc: 0002c8c0 */ sll $t9,$v0,0x3
/* f17a1c0: 0322c823 */ subu $t9,$t9,$v0
/* f17a1c4: 0019c8c0 */ sll $t9,$t9,0x3
/* f17a1c8: 0322c823 */ subu $t9,$t9,$v0
/* f17a1cc: 0019c900 */ sll $t9,$t9,0x4
/* f17a1d0: 0322c823 */ subu $t9,$t9,$v0
/* f17a1d4: 0019c880 */ sll $t9,$t9,0x2
/* f17a1d8: 032f6021 */ addu $t4,$t9,$t7
/* f17a1dc: 01805825 */ or $t3,$t4,$zero
.NB0f17a1e0:
/* f17a1e0: 81620408 */ lb $v0,0x408($t3)
/* f17a1e4: 000a7080 */ sll $t6,$t2,0x2
/* f17a1e8: 01ca7023 */ subu $t6,$t6,$t2
/* f17a1ec: 1840002d */ blez $v0,.NB0f17a2a4
/* f17a1f0: 00002025 */ or $a0,$zero,$zero
/* f17a1f4: 000e70c0 */ sll $t6,$t6,0x3
/* f17a1f8: 018e2821 */ addu $a1,$t4,$t6
/* f17a1fc: 00023080 */ sll $a2,$v0,0x2
.NB0f17a200:
/* f17a200: 8ca303f4 */ lw $v1,0x3f4($a1)
/* f17a204: 24840004 */ addiu $a0,$a0,0x4
/* f17a208: 0086082a */ slt $at,$a0,$a2
/* f17a20c: 10600023 */ beqz $v1,.NB0f17a29c
/* f17a210: 00000000 */ sll $zero,$zero,0x0
/* f17a214: 8c620000 */ lw $v0,0x0($v1)
/* f17a218: 14510002 */ bne $v0,$s1,.NB0f17a224
/* f17a21c: 00000000 */ sll $zero,$zero,0x0
/* f17a220: 00008025 */ or $s0,$zero,$zero
.NB0f17a224:
/* f17a224: 14520002 */ bne $v0,$s2,.NB0f17a230
/* f17a228: 00000000 */ sll $zero,$zero,0x0
/* f17a22c: 00008025 */ or $s0,$zero,$zero
.NB0f17a230:
/* f17a230: 14530002 */ bne $v0,$s3,.NB0f17a23c
/* f17a234: 00000000 */ sll $zero,$zero,0x0
/* f17a238: 00008025 */ or $s0,$zero,$zero
.NB0f17a23c:
/* f17a23c: 14540002 */ bne $v0,$s4,.NB0f17a248
/* f17a240: 00000000 */ sll $zero,$zero,0x0
/* f17a244: 00008025 */ or $s0,$zero,$zero
.NB0f17a248:
/* f17a248: 14550002 */ bne $v0,$s5,.NB0f17a254
/* f17a24c: 00000000 */ sll $zero,$zero,0x0
/* f17a250: 00008025 */ or $s0,$zero,$zero
.NB0f17a254:
/* f17a254: 14560002 */ bne $v0,$s6,.NB0f17a260
/* f17a258: 00000000 */ sll $zero,$zero,0x0
/* f17a25c: 00008025 */ or $s0,$zero,$zero
.NB0f17a260:
/* f17a260: 14570002 */ bne $v0,$s7,.NB0f17a26c
/* f17a264: 00000000 */ sll $zero,$zero,0x0
/* f17a268: 00008025 */ or $s0,$zero,$zero
.NB0f17a26c:
/* f17a26c: 145e0002 */ bne $v0,$s8,.NB0f17a278
/* f17a270: 00000000 */ sll $zero,$zero,0x0
/* f17a274: 00008025 */ or $s0,$zero,$zero
.NB0f17a278:
/* f17a278: 14470002 */ bne $v0,$a3,.NB0f17a284
/* f17a27c: 00000000 */ sll $zero,$zero,0x0
/* f17a280: 00008025 */ or $s0,$zero,$zero
.NB0f17a284:
/* f17a284: 14480002 */ bne $v0,$t0,.NB0f17a290
/* f17a288: 00000000 */ sll $zero,$zero,0x0
/* f17a28c: 00008025 */ or $s0,$zero,$zero
.NB0f17a290:
/* f17a290: 14490002 */ bne $v0,$t1,.NB0f17a29c
/* f17a294: 00000000 */ sll $zero,$zero,0x0
/* f17a298: 00008025 */ or $s0,$zero,$zero
.NB0f17a29c:
/* f17a29c: 1420ffd8 */ bnez $at,.NB0f17a200
/* f17a2a0: 24a50004 */ addiu $a1,$a1,0x4
.NB0f17a2a4:
/* f17a2a4: 254a0001 */ addiu $t2,$t2,0x1
/* f17a2a8: 014d082a */ slt $at,$t2,$t5
/* f17a2ac: 1420ffcc */ bnez $at,.NB0f17a1e0
/* f17a2b0: 256b0018 */ addiu $t3,$t3,0x18
.NB0f17a2b4:
/* f17a2b4: 1600000b */ bnez $s0,.NB0f17a2e4
/* f17a2b8: 00000000 */ sll $zero,$zero,0x0
/* f17a2bc: 0fc3c088 */ jal menuPopDialog
/* f17a2c0: 00000000 */ sll $zero,$zero,0x0
/* f17a2c4: 3c078009 */ lui $a3,0x8009
/* f17a2c8: 3c088009 */ lui $t0,0x8009
/* f17a2cc: 3c098009 */ lui $t1,0x8009
/* f17a2d0: 3c1f8007 */ lui $ra,0x8007
/* f17a2d4: 27ff3af0 */ addiu $ra,$ra,0x3af0
/* f17a2d8: 25299700 */ addiu $t1,$t1,-26880
/* f17a2dc: 2508957c */ addiu $t0,$t0,-27268
/* f17a2e0: 24e79460 */ addiu $a3,$a3,-27552
.NB0f17a2e4:
/* f17a2e4: 5200ffa7 */ beqzl $s0,.NB0f17a184
/* f17a2e8: 8fe20000 */ lw $v0,0x0($ra)
/* f17a2ec: 8fa20044 */ lw $v0,0x44($sp)
/* f17a2f0: 24420001 */ addiu $v0,$v0,0x1
.NB0f17a2f4:
/* f17a2f4: 24010004 */ addiu $at,$zero,0x4
/* f17a2f8: 5441ff94 */ bnel $v0,$at,.NB0f17a14c
/* f17a2fc: 0002c0c0 */ sll $t8,$v0,0x3
/* f17a300: 8fb80040 */ lw $t8,0x40($sp)
/* f17a304: 8fb00018 */ lw $s0,0x18($sp)
/* f17a308: 8fb1001c */ lw $s1,0x1c($sp)
/* f17a30c: aff80000 */ sw $t8,0x0($ra)
/* f17a310: 8fbf003c */ lw $ra,0x3c($sp)
/* f17a314: 8fb20020 */ lw $s2,0x20($sp)
/* f17a318: 8fb30024 */ lw $s3,0x24($sp)
/* f17a31c: 8fb40028 */ lw $s4,0x28($sp)
/* f17a320: 8fb5002c */ lw $s5,0x2c($sp)
/* f17a324: 8fb60030 */ lw $s6,0x30($sp)
/* f17a328: 8fb70034 */ lw $s7,0x34($sp)
/* f17a32c: 8fbe0038 */ lw $s8,0x38($sp)
/* f17a330: 03e00008 */ jr $ra
/* f17a334: 27bd0048 */ addiu $sp,$sp,0x48
);
#endif
struct menudialog g_MpAbortMenuDialog;

View File

@ -286,6 +286,7 @@ void musicStartPrimary(f32 arg0)
#define AMBIENTTRACK() (g_TemporaryAmbientTrack != -1 ? g_TemporaryAmbientTrack : stageGetAmbientTrack(g_MusicStageNum))
#if VERSION >= VERSION_NTSC_1_0
void musicStartAmbient(f32 arg0)
{
s32 pass = false;
@ -312,6 +313,110 @@ void musicStartAmbient(f32 arg0)
}
}
}
#else
GLOBAL_ASM(
glabel musicStartAmbient
/* f16821c: 3c028008 */ lui $v0,0x8008
/* f168220: 8c42694c */ lw $v0,0x694c($v0)
/* f168224: 27bdffe0 */ addiu $sp,$sp,-32
/* f168228: 2401ffff */ addiu $at,$zero,-1
/* f16822c: afbf0014 */ sw $ra,0x14($sp)
/* f168230: e7ac0020 */ swc1 $f12,0x20($sp)
/* f168234: 10410003 */ beq $v0,$at,.NB0f168244
/* f168238: 00002825 */ or $a1,$zero,$zero
/* f16823c: 10000007 */ beqz $zero,.NB0f16825c
/* f168240: 00401825 */ or $v1,$v0,$zero
.NB0f168244:
/* f168244: 3c04800b */ lui $a0,0x800b
/* f168248: 8c84ee80 */ lw $a0,-0x1180($a0)
/* f16824c: 0fc5c65e */ jal stageGetAmbientTrack
/* f168250: afa5001c */ sw $a1,0x1c($sp)
/* f168254: 8fa5001c */ lw $a1,0x1c($sp)
/* f168258: 00401825 */ or $v1,$v0,$zero
.NB0f16825c:
/* f16825c: 0460002c */ bltz $v1,.NB0f168310
/* f168260: 3c0e8008 */ lui $t6,0x8008
/* f168264: 8dce694c */ lw $t6,0x694c($t6)
/* f168268: 2401ffff */ addiu $at,$zero,-1
/* f16826c: 11c10003 */ beq $t6,$at,.NB0f16827c
/* f168270: 00000000 */ sll $zero,$zero,0x0
/* f168274: 10000026 */ beqz $zero,.NB0f168310
/* f168278: 24050001 */ addiu $a1,$zero,0x1
.NB0f16827c:
/* f16827c: 0fc5a0df */ jal musicIsAnyPlayerInAmbientRoom
/* f168280: afa5001c */ sw $a1,0x1c($sp)
/* f168284: 10400022 */ beqz $v0,.NB0f168310
/* f168288: 8fa5001c */ lw $a1,0x1c($sp)
/* f16828c: 3c0f800a */ lui $t7,0x800a
/* f168290: 8defe96c */ lw $t7,-0x1694($t7)
/* f168294: 24010006 */ addiu $at,$zero,0x6
/* f168298: 3c028008 */ lui $v0,0x8008
/* f16829c: 51e1001c */ beql $t7,$at,.NB0f168310
/* f1682a0: 24050001 */ addiu $a1,$zero,0x1
/* f1682a4: 8c42694c */ lw $v0,0x694c($v0)
/* f1682a8: 2401ffff */ addiu $at,$zero,-1
/* f1682ac: 3c04800b */ lui $a0,0x800b
/* f1682b0: 10410003 */ beq $v0,$at,.NB0f1682c0
/* f1682b4: 00000000 */ sll $zero,$zero,0x0
/* f1682b8: 10000004 */ beqz $zero,.NB0f1682cc
/* f1682bc: 00401825 */ or $v1,$v0,$zero
.NB0f1682c0:
/* f1682c0: 0fc5c65e */ jal stageGetAmbientTrack
/* f1682c4: 8c84ee80 */ lw $a0,-0x1180($a0)
/* f1682c8: 00401825 */ or $v1,$v0,$zero
.NB0f1682cc:
/* f1682cc: 3c04800b */ lui $a0,0x800b
/* f1682d0: 8c84ee80 */ lw $a0,-0x1180($a0)
/* f1682d4: 0fc5c65e */ jal stageGetAmbientTrack
/* f1682d8: afa30018 */ sw $v1,0x18($sp)
/* f1682dc: 8fa30018 */ lw $v1,0x18($sp)
/* f1682e0: 5043000b */ beql $v0,$v1,.NB0f168310
/* f1682e4: 24050001 */ addiu $a1,$zero,0x1
/* f1682e8: 0fc59fed */ jal musicEnd
/* f1682ec: 24040005 */ addiu $a0,$zero,0x5
/* f1682f0: 3c04800b */ lui $a0,0x800b
/* f1682f4: 0fc5c65e */ jal stageGetAmbientTrack
/* f1682f8: 8c84ee80 */ lw $a0,-0x1180($a0)
/* f1682fc: 0fc5a2f1 */ jal musicStartTemporary
/* f168300: 00402025 */ or $a0,$v0,$zero
/* f168304: 1000001a */ beqz $zero,.NB0f168370
/* f168308: 8fbf0014 */ lw $ra,0x14($sp)
/* f16830c: 24050001 */ addiu $a1,$zero,0x1
.NB0f168310:
/* f168310: 50a00017 */ beqzl $a1,.NB0f168370
/* f168314: 8fbf0014 */ lw $ra,0x14($sp)
/* f168318: 0fc59fa6 */ jal func0f16d124
/* f16831c: 24040005 */ addiu $a0,$zero,0x5
/* f168320: 10400002 */ beqz $v0,.NB0f16832c
/* f168324: 24010002 */ addiu $at,$zero,0x2
/* f168328: 14410010 */ bne $v0,$at,.NB0f16836c
.NB0f16832c:
/* f16832c: 3c028008 */ lui $v0,0x8008
/* f168330: 8c42694c */ lw $v0,0x694c($v0)
/* f168334: 2401ffff */ addiu $at,$zero,-1
/* f168338: 3c04800b */ lui $a0,0x800b
/* f16833c: 10410003 */ beq $v0,$at,.NB0f16834c
/* f168340: 00000000 */ sll $zero,$zero,0x0
/* f168344: 10000004 */ beqz $zero,.NB0f168358
/* f168348: 00402825 */ or $a1,$v0,$zero
.NB0f16834c:
/* f16834c: 0fc5c65e */ jal stageGetAmbientTrack
/* f168350: 8c84ee80 */ lw $a0,-0x1180($a0)
/* f168354: 00402825 */ or $a1,$v0,$zero
.NB0f168358:
/* f168358: 3c078006 */ lui $a3,0x8006
/* f16835c: 94e7f6e8 */ lhu $a3,-0x918($a3)
/* f168360: 24040005 */ addiu $a0,$zero,0x5
/* f168364: 0fc59fcc */ jal musicStart
/* f168368: 8fa60020 */ lw $a2,0x20($sp)
.NB0f16836c:
/* f16836c: 8fbf0014 */ lw $ra,0x14($sp)
.NB0f168370:
/* f168370: 27bd0020 */ addiu $sp,$sp,0x20
/* f168374: 03e00008 */ jr $ra
/* f168378: 00000000 */ sll $zero,$zero,0x0
);
#endif
bool musicIsAnyPlayerInAmbientRoom(void)
{

View File

@ -409,13 +409,13 @@ void objectivesCheckAll(void)
#else
if (status == OBJECTIVE_COMPLETE) {
strcat(buffer, langGet(L_MISC_045)); // "Completed"
hudmsgCreateWithFlags(buffer, HUDMSGTYPE_OBJECTIVECOMPLETE, HUDMSGFLAG_DELAY | HUDMSGFLAG_ALLOWDUPES);
hudmsgCreateWithFlags(buffer, HUDMSGTYPE_OBJECTIVECOMPLETE, HUDMSGFLAG_ALLOWDUPES);
} else if (status == OBJECTIVE_INCOMPLETE) {
strcat(buffer, langGet(L_MISC_046)); // "Incomplete"
hudmsgCreateWithFlags(buffer, HUDMSGTYPE_OBJECTIVECOMPLETE, HUDMSGFLAG_DELAY | HUDMSGFLAG_ALLOWDUPES);
hudmsgCreateWithFlags(buffer, HUDMSGTYPE_OBJECTIVECOMPLETE, HUDMSGFLAG_ALLOWDUPES);
} else if (status == OBJECTIVE_FAILED) {
strcat(buffer, langGet(L_MISC_047)); // "Failed"
hudmsgCreateWithFlags(buffer, HUDMSGTYPE_OBJECTIVEFAILED, HUDMSGFLAG_DELAY | HUDMSGFLAG_ALLOWDUPES);
hudmsgCreateWithFlags(buffer, HUDMSGTYPE_OBJECTIVEFAILED, HUDMSGFLAG_ALLOWDUPES);
}
#endif
}

View File

@ -149,18 +149,18 @@
#define LINE_4394 4199
#define LINE_4801 4606
#else
#define LINE_825 822
#define LINE_825 742
#define LINE_1058 994
#define LINE_1551 1551
#define LINE_1802 1788
#define LINE_1551 1461
#define LINE_1802 1698
#define LINE_3486 3133
#define LINE_3495 3142
#define LINE_3599 3246
#define LINE_3829 3829
#define LINE_3865 3865
#define LINE_3889 3889
#define LINE_3948 3753
#define LINE_4140 3799
#define LINE_3948 3573
#define LINE_4140 3779
#define LINE_4394 4029
#define LINE_4801 4436
#endif
@ -182,7 +182,11 @@ const char var7f1b3ad4[] = "Pak %d -> Pak_UpdateAndGetPakNoteInfo - ERROR - ekPa
const char var7f1b3b18[] = "Pak %d -> Pak_UpdateAndGetPakNoteInfo - ERROR - ekPakErrorNoPakPresent\n";
struct pak g_Paks[5];
#if VERSION >= VERSION_NTSC_1_0
u32 var800a317c;
#endif
OSPfs g_Pfses[4];
u32 var800a3320;
u32 var800a3324;
@ -274,6 +278,10 @@ u8 var80075d10 = 0;
u32 var80075d14 = 0x00000001;
#endif
#if VERSION < VERSION_NTSC_1_0
u8 var800a7880nb[0xe0];
#endif
u32 pakGetBlockSize(s8 device)
{
return device == SAVEDEVICE_GAMEPAK ? 0x10 : 0x20;
@ -540,9 +548,9 @@ s32 _pakDeleteGameNote(s8 device, u16 company_code, u32 game_code, char *game_na
s32 result;
if (pak0f116b5c(device)) {
joyDisableCyclicPolling(JOYARGS(123));
joyDisableCyclicPolling(JOYARGS(738));
result = pakDeleteGameNote3(PFS(device), company_code, game_code, game_name, ext_name);
joyEnableCyclicPolling(JOYARGS(123));
joyEnableCyclicPolling(JOYARGS(740));
if (pakHandleResult(result, device, true, LINE_825)) {
g_Paks[device].unk2b8_02 = 1;
@ -1093,6 +1101,7 @@ PakErr1 _pakReadWriteBlock(OSPfs *pfs, s32 file_no, u8 flag, u32 address, u32 le
if (newaddress >= 256) {
#if VERSION < VERSION_NTSC_1_0
u32 stack;
func0000c1d0nb("ILLEGAL EEPROM ADDRESS (>=256)");
*(u8 *)0 = 69;
#endif
@ -6556,33 +6565,6 @@ const char var7f1b45e4[] = "-forceversion";
const char var7f1ae60cnb[] = "pak.c";
const char var7f1ae614nb[] = "pak.c";
const char var7f1ae61cnb[] = "pak.c";
const char var7f1ae624nb[] = "pak.c";
const char var7f1ae62cnb[] = "pak.c";
#endif
const char var7f1b45f4[] = "PakMac_PaksLive()=%x\n";
#if VERSION >= VERSION_NTSC_1_0
const char var7f1b460c[] = "paksNeedToBeLive4Game=%x\n";
const char var7f1b4628[] = "paksNeedToBeLive4Menu=%x\n";
#endif
const char var7f1b4644[] = "g_LastPackPattern=%x\n";
#if VERSION < VERSION_NTSC_1_0
const char var7f1ae664nb[] = "lvGetPause = %s";
const char var7f1ae678nb[] = "TRUE";
const char var7f1ae680nb[] = "FALSE";
const char var7f1ae688nb[] = "MP_GetPause = %s";
const char var7f1ae69cnb[] = "TRUE";
const char var7f1ae6a4nb[] = "FALSE";
const char var7f1ae6acnb[] = "getnumplayers = %d";
const char var7f1ae6c0nb[] = "forcecrc";
const char var7f1ae6ccnb[] = "forcescrub";
const char var7f1ae6d8nb[] = "dumph";
const char var7f1ae6e0nb[] = "pakcache";
const char var7f1ae6ecnb[] = "pakinit";
const char var7f1ae6f4nb[] = "dumpeeprom";
#endif
bool pakRepair(s8 device)
@ -6618,6 +6600,33 @@ bool pakRepair(s8 device)
return false;
}
const char var7f1b45f4[] = "PakMac_PaksLive()=%x\n";
#if VERSION >= VERSION_NTSC_1_0
const char var7f1b460c[] = "paksNeedToBeLive4Game=%x\n";
const char var7f1b4628[] = "paksNeedToBeLive4Menu=%x\n";
#endif
const char var7f1b4644[] = "g_LastPackPattern=%x\n";
#if VERSION < VERSION_NTSC_1_0
const char var7f1ae664nb[] = "lvGetPause = %s";
const char var7f1ae678nb[] = "TRUE";
const char var7f1ae680nb[] = "FALSE";
const char var7f1ae688nb[] = "MP_GetPause = %s";
const char var7f1ae69cnb[] = "TRUE";
const char var7f1ae6a4nb[] = "FALSE";
const char var7f1ae6acnb[] = "getnumplayers = %d";
const char var7f1ae6c0nb[] = "forcecrc";
const char var7f1ae6ccnb[] = "forcescrub";
const char var7f1ae6d8nb[] = "dumph";
const char var7f1ae6e0nb[] = "pakcache";
const char var7f1ae6ecnb[] = "pakinit";
const char var7f1ae6f4nb[] = "dumpeeprom";
const char var7f1ae700nb[] = "pak.c";
const char var7f1ae708nb[] = "pak.c";
#endif
#if VERSION >= VERSION_NTSC_1_0
bool pakHandleResult(s32 err1, s8 device, bool arg2, u32 line)
{
@ -7838,14 +7847,18 @@ void pak0f11d620(s8 device)
}
}
#if VERSION >= VERSION_NTSC_1_0
void pak0f11d678(void)
{
// empty
}
#endif
#if VERSION < VERSION_NTSC_1_0
GLOBAL_ASM(
glabel pak7f1172d0nb
glabel pak7f1172c8nb
/* f1172c8: 00047600 */ sll $t6,$a0,0x18
/* f1172cc: 000e7e03 */ sra $t7,$t6,0x18
/* f1172d0: 000fc080 */ sll $t8,$t7,0x2
/* f1172d4: 030fc023 */ subu $t8,$t8,$t7
/* f1172d8: 0018c080 */ sll $t8,$t8,0x2
@ -8370,11 +8383,9 @@ void pakRumble(s32 device, f32 numsecs, s32 onduration, s32 offduration)
}
}
#else
u8 var80009eb9cnb[5];
void pakRumble(s8 device, f32 numsecs, s32 onduration, s32 offduration)
{
u8 index = var80009eb9cnb[device];
u8 index = g_Vars.playertojoymap[device];
if (g_Paks[index].unk010 == PAK010_11
&& g_Paks[index].type == PAKTYPE_RUMBLE
@ -9483,7 +9494,7 @@ glabel pak7f117f94nb
/* f118188: 1443fffc */ bne $v0,$v1,.NB0f11817c
/* f11818c: a1200000 */ sb $zero,0x0($t1)
/* f118190: 8cc50270 */ lw $a1,0x270($a2)
/* f118194: 0fc45cb2 */ jal pak0f11d678
/* f118194: 0fc45cb2 */ jal pak7f1172c8nb
/* f118198: afa60018 */ sw $a2,0x18($sp)
/* f11819c: 8fa60018 */ lw $a2,0x18($sp)
/* f1181a0: 24030009 */ addiu $v1,$zero,0x9

View File

@ -41,10 +41,13 @@ s16 *g_RoomPropListChunkIndexes;
struct roomproplistchunk *g_RoomPropListChunks;
struct prop *g_InteractProp;
u32 var8009cdac;
#if VERSION >= VERSION_NTSC_1_0
u32 var8009cdb0;
u32 var8009cdb4;
u32 var8009cdb8;
u32 var8009cdbc;
#endif
f32 var80069880 = 1;

File diff suppressed because it is too large Load Diff

View File

@ -19,17 +19,17 @@ const char var7f1adbb4[] = "rsub";
const char var7f1adbbc[] = ":%02d";
const char var7f1adbc4[] = "%d";
u32 var8009de90;
u32 var8009de94;
u32 var8009de98;
u32 var8009de9c;
#if VERSION >= VERSION_NTSC_1_0
Vp *var80070f10 = NULL;
#else
Vp var80070f10;
#endif
u32 var8009de90;
u32 var8009de94;
u32 var8009de98;
u32 var8009de9c;
u32 var80070f14 = 0x000003e8;
u32 var80070f18 = 0x00000014;
u32 var80070f1c = 0x00000005;

View File

@ -171,8 +171,14 @@ s32 func0f148f18(s32 qty, f32 arg1, struct prop *prop, struct splat *arg3, struc
mtx0001648c((struct coord *)spe4, &spa4);
mtx00015b14(&spa4, (struct coord *)spfc, &splat->unk028);
mtx00015b14(&spa4, (struct coord *)spf0, &splat->unk00c);
#if VERSION >= VERSION_NTSC_1_0
func0f177164(&splat->unk028, &splat->unk028, 403, "splat.c");
func0f177164(&splat->unk00c, &splat->unk00c, 404, "splat.c");
#else
func0f177164(&splat->unk028, &splat->unk028, 405, "splat.c");
func0f177164(&splat->unk00c, &splat->unk00c, 406, "splat.c");
#endif
if (func0f149274(arg1, prop, splat, dist, arg6, arg7, arg8, arg9, arg10)) {
numdropped++;

View File

@ -4136,7 +4136,7 @@ glabel var7f1a8468
/* f017f2c: c42827bc */ lwc1 $f8,%lo(var800627bc)($at)
/* f017f30: 46043282 */ mul.s $f10,$f6,$f4
/* f017f34: 460a4000 */ add.s $f0,$f8,$f10
/* f017f38: e42027bc */ swc1 $f0,0x27bc($at)
/* f017f38: e42027bc */ swc1 $f0,%lo(var800627bc)($at)
/* f017f3c: 3c017f1b */ lui $at,%hi(var7f1a8438)
/* f017f40: c4248438 */ lwc1 $f4,%lo(var7f1a8438)($at)
/* f017f44: 3c018006 */ lui $at,%hi(var800627bc)

View File

@ -6210,7 +6210,7 @@ glabel var7f1b99d8
/* f1a754c: 03e00008 */ jr $ra
/* f1a7550: 00000000 */ nop
);
#else
#elif VERSION >= VERSION_NTSC_1_0
GLOBAL_ASM(
glabel ciHangarHolographMenuDialog
.late_rodata
@ -6344,6 +6344,140 @@ glabel var7f1b99d8
/* f1a754c: 03e00008 */ jr $ra
/* f1a7550: 00000000 */ nop
);
#else
GLOBAL_ASM(
glabel ciHangarHolographMenuDialog
.late_rodata
glabel var7f1b99d4
.word 0x3a83126f
glabel var7f1b99d8
.word 0x3c23d70a
.text
/* f1a1360: 27bdff60 */ addiu $sp,$sp,-160
/* f1a1364: afa600a8 */ sw $a2,0xa8($sp)
/* f1a1368: 00803025 */ or $a2,$a0,$zero
/* f1a136c: afa400a0 */ sw $a0,0xa0($sp)
/* f1a1370: afbf0014 */ sw $ra,0x14($sp)
/* f1a1374: 3c048009 */ lui $a0,0x8009
/* f1a1378: afa500a4 */ sw $a1,0xa4($sp)
/* f1a137c: 9084b0d4 */ lbu $a0,-0x4f2c($a0)
/* f1a1380: 0fc66ddf */ jal ciGetHangarBioIndexBySlot
/* f1a1384: afa600a0 */ sw $a2,0xa0($sp)
/* f1a1388: 2841000e */ slti $at,$v0,0xe
/* f1a138c: 14200065 */ bnez $at,.NB0f1a1524
/* f1a1390: 8fa600a0 */ lw $a2,0xa0($sp)
/* f1a1394: 3c0e8009 */ lui $t6,0x8009
/* f1a1398: 27a70030 */ addiu $a3,$sp,0x30
/* f1a139c: 25cebf3c */ addiu $t6,$t6,-16580
/* f1a13a0: 25d8006c */ addiu $t8,$t6,0x6c
/* f1a13a4: 00e0c825 */ or $t9,$a3,$zero
.NB0f1a13a8:
/* f1a13a8: 8dc10000 */ lw $at,0x0($t6)
/* f1a13ac: 25ce000c */ addiu $t6,$t6,0xc
/* f1a13b0: 2739000c */ addiu $t9,$t9,0xc
/* f1a13b4: af21fff4 */ sw $at,-0xc($t9)
/* f1a13b8: 8dc1fff8 */ lw $at,-0x8($t6)
/* f1a13bc: af21fff8 */ sw $at,-0x8($t9)
/* f1a13c0: 8dc1fffc */ lw $at,-0x4($t6)
/* f1a13c4: 15d8fff8 */ bne $t6,$t8,.NB0f1a13a8
/* f1a13c8: af21fffc */ sw $at,-0x4($t9)
/* f1a13cc: 24010064 */ addiu $at,$zero,0x64
/* f1a13d0: 10c10008 */ beq $a2,$at,.NB0f1a13f4
/* f1a13d4: 3c088007 */ lui $t0,0x8007
/* f1a13d8: 24010065 */ addiu $at,$zero,0x65
/* f1a13dc: 10c10051 */ beq $a2,$at,.NB0f1a1524
/* f1a13e0: 24010066 */ addiu $at,$zero,0x66
/* f1a13e4: 10c10019 */ beq $a2,$at,.NB0f1a144c
/* f1a13e8: 00000000 */ sll $zero,$zero,0x0
/* f1a13ec: 1000004e */ beqz $zero,.NB0f1a1528
/* f1a13f0: 8fbf0014 */ lw $ra,0x14($sp)
.NB0f1a13f4:
/* f1a13f4: 8d083af0 */ lw $t0,0x3af0($t0)
/* f1a13f8: 44800000 */ mtc1 $zero,$f0
/* f1a13fc: 3c0a800a */ lui $t2,0x800a
/* f1a1400: 000848c0 */ sll $t1,$t0,0x3
/* f1a1404: 01284823 */ subu $t1,$t1,$t0
/* f1a1408: 000948c0 */ sll $t1,$t1,0x3
/* f1a140c: 01284823 */ subu $t1,$t1,$t0
/* f1a1410: 00094900 */ sll $t1,$t1,0x4
/* f1a1414: 01284823 */ subu $t1,$t1,$t0
/* f1a1418: 00094880 */ sll $t1,$t1,0x2
/* f1a141c: 254a27c0 */ addiu $t2,$t2,0x27c0
/* f1a1420: 012a1821 */ addu $v1,$t1,$t2
/* f1a1424: e4600ce4 */ swc1 $f0,0xce4($v1)
/* f1a1428: e4600cbc */ swc1 $f0,0xcbc($v1)
/* f1a142c: e4600ce8 */ swc1 $f0,0xce8($v1)
/* f1a1430: e4600cc0 */ swc1 $f0,0xcc0($v1)
/* f1a1434: e4600cd4 */ swc1 $f0,0xcd4($v1)
/* f1a1438: e4600cac */ swc1 $f0,0xcac($v1)
/* f1a143c: e4600cd8 */ swc1 $f0,0xcd8($v1)
/* f1a1440: e4600cb0 */ swc1 $f0,0xcb0($v1)
/* f1a1444: 10000037 */ beqz $zero,.NB0f1a1524
/* f1a1448: e4600cb8 */ swc1 $f0,0xcb8($v1)
.NB0f1a144c:
/* f1a144c: 3c0b8007 */ lui $t3,0x8007
/* f1a1450: 8d6b3af0 */ lw $t3,0x3af0($t3)
/* f1a1454: 3c0d800a */ lui $t5,0x800a
/* f1a1458: 25ad27c0 */ addiu $t5,$t5,0x27c0
/* f1a145c: 000b60c0 */ sll $t4,$t3,0x3
/* f1a1460: 018b6023 */ subu $t4,$t4,$t3
/* f1a1464: 000c60c0 */ sll $t4,$t4,0x3
/* f1a1468: 018b6023 */ subu $t4,$t4,$t3
/* f1a146c: 000c6100 */ sll $t4,$t4,0x4
/* f1a1470: 018b6023 */ subu $t4,$t4,$t3
/* f1a1474: 000c6080 */ sll $t4,$t4,0x2
/* f1a1478: 018d1821 */ addu $v1,$t4,$t5
/* f1a147c: 8c640488 */ lw $a0,0x488($v1)
/* f1a1480: 50800029 */ beqzl $a0,.NB0f1a1528
/* f1a1484: 8fbf0014 */ lw $ra,0x14($sp)
/* f1a1488: 8faf00a4 */ lw $t7,0xa4($sp)
/* f1a148c: 8c980000 */ lw $t8,0x0($a0)
/* f1a1490: 2445fff2 */ addiu $a1,$v0,-14
/* f1a1494: 00057080 */ sll $t6,$a1,0x2
/* f1a1498: 15f80022 */ bne $t7,$t8,.NB0f1a1524
/* f1a149c: 01c57023 */ subu $t6,$t6,$a1
/* f1a14a0: 000e7080 */ sll $t6,$t6,0x2
/* f1a14a4: 00ee2021 */ addu $a0,$a3,$t6
/* f1a14a8: 8c990004 */ lw $t9,0x4($a0)
/* f1a14ac: 94880008 */ lhu $t0,0x8($a0)
/* f1a14b0: 3c014f80 */ lui $at,0x4f80
/* f1a14b4: 44992000 */ mtc1 $t9,$f4
/* f1a14b8: 44883000 */ mtc1 $t0,$f6
/* f1a14bc: 46802020 */ cvt.s.w $f0,$f4
/* f1a14c0: 05010004 */ bgez $t0,.NB0f1a14d4
/* f1a14c4: 46803220 */ cvt.s.w $f8,$f6
/* f1a14c8: 44815000 */ mtc1 $at,$f10
/* f1a14cc: 00000000 */ sll $zero,$zero,0x0
/* f1a14d0: 460a4200 */ add.s $f8,$f8,$f10
.NB0f1a14d4:
/* f1a14d4: 3c017f1b */ lui $at,0x7f1b
/* f1a14d8: c4303ff4 */ lwc1 $f16,0x3ff4($at)
/* f1a14dc: 8c890000 */ lw $t1,0x0($a0)
/* f1a14e0: e4600cb0 */ swc1 $f0,0xcb0($v1)
/* f1a14e4: 46104302 */ mul.s $f12,$f8,$f16
/* f1a14e8: e4600cd8 */ swc1 $f0,0xcd8($v1)
/* f1a14ec: 3c017f1b */ lui $at,0x7f1b
/* f1a14f0: ac6907a8 */ sw $t1,0x7a8($v1)
/* f1a14f4: c46a0cc0 */ lwc1 $f10,0xcc0($v1)
/* f1a14f8: 3c0a8009 */ lui $t2,0x8009
/* f1a14fc: 254abf34 */ addiu $t2,$t2,-16588
/* f1a1500: e46c0ce0 */ swc1 $f12,0xce0($v1)
/* f1a1504: c4323ff8 */ lwc1 $f18,0x3ff8($at)
/* f1a1508: 3c01800a */ lui $at,0x800a
/* f1a150c: c424e6c4 */ lwc1 $f4,-0x193c($at)
/* f1a1510: ac6a0d50 */ sw $t2,0xd50($v1)
/* f1a1514: 46049182 */ mul.s $f6,$f18,$f4
/* f1a1518: 46065080 */ add.s $f2,$f10,$f6
/* f1a151c: e4620ce8 */ swc1 $f2,0xce8($v1)
/* f1a1520: e4620cc0 */ swc1 $f2,0xcc0($v1)
.NB0f1a1524:
/* f1a1524: 8fbf0014 */ lw $ra,0x14($sp)
.NB0f1a1528:
/* f1a1528: 27bd00a0 */ addiu $sp,$sp,0xa0
/* f1a152c: 00001025 */ or $v0,$zero,$zero
/* f1a1530: 03e00008 */ jr $ra
/* f1a1534: 00000000 */ sll $zero,$zero,0x0
);
#endif
s8 var800897c4[] = {-73, 0, 5, 0};

View File

@ -742,13 +742,17 @@ bool weatherIsRoomWeatherProof(s32 room)
if (g_StageIndex == STAGEINDEX_CRASHSITE) {
// Rooms listed do not have weather
// Note that ntsc-beta is likely the same actual rooms as the newer
// versions; they just have shifted numbers.
if (room == 0x1f
|| room == 0x20
|| room == 0x21
|| room == 0x22
|| room == 0x23
|| room == 0x24
#if VERSION >= VERSION_NTSC_1_0
|| room == 0x51
#endif
|| room == 0x52
|| room == 0x53
|| room == 0x54
@ -768,8 +772,13 @@ bool weatherIsRoomWeatherProof(s32 room)
|| room == 0x62
|| room == 0x63
|| room == 0x64
#if VERSION < VERSION_NTSC_1_0
|| room == 0x65
#endif
|| room == 0x2d
#if VERSION >= VERSION_NTSC_1_0
|| room == 0x40
#endif
|| room == 0x41
|| room == 0x42
|| room == 0x43
@ -785,7 +794,11 @@ bool weatherIsRoomWeatherProof(s32 room)
|| room == 0x4d
|| room == 0x4e
|| room == 0x4f
|| room == 0x50) {
|| room == 0x50
#if VERSION < VERSION_NTSC_1_0
|| room == 0x51
#endif
) {
return true;
}

View File

@ -178,7 +178,7 @@ extern u32 var8009de94;
extern u32 var8009de98;
extern u32 var8009de9c;
extern u8 g_MpSelectedPlayersForStats[4];
extern char g_CheatMarqueeString[252];
extern char g_CheatMarqueeString[];
extern u8 *g_BlurBuffer;
extern s32 var8009dfc0;
extern struct briefing g_Briefing;

View File

@ -2760,7 +2760,6 @@
#define MPWEAPON_SHIELD 0x25
#define MPWEAPON_DISABLED 0x26
#define NUM_AICOMMANDS 481
#define NUM_BODIES 151
#define NUM_CHALLENGES 30
#define NUM_CHEATS 42
@ -2780,7 +2779,6 @@
#define NUM_SOLOSTAGES 21
#define NUM_STAGES 90
#define NUM_TEXTURES 3504
#define NUM_WEAPONS 94
#define OBJECTIVE_INCOMPLETE 0
#define OBJECTIVE_COMPLETE 1

View File

@ -290,8 +290,8 @@ extern u32 var800711f0;
extern char *g_StringPointer;
extern char *g_StringPointer2;
#else
extern char g_StringPointer[125];
extern char g_StringPointer2[125];
extern char g_StringPointer[];
extern char g_StringPointer2[];
#endif
extern s32 g_MpPlayerNum;
extern u32 var800714d8;

View File

@ -3852,34 +3852,38 @@ struct menudata_mpend {
};
struct menudata_filemgr {
/*0xe1c*/ u32 filetypeplusone;
/*0xe20*/ u32 device;
/*0xe24*/ u32 unke24;
/*0xe1c*/ u32 filetypeplusone; // used
/*0xe20*/ u32 device; // used
/*0xe24*/ u32 unke24; // used
union {
u32 isdeletingforsave;
u32 isdeletingforsave; // used
u32 noteindex;
};
/*0xe2c*/ u32 unke2c;
/*0xe2c*/ u32 unke2c; // used
/*0xe30*/ u32 unke30;
/*0xe34*/ u16 errno;
/*0xe38*/ struct filelistfile *filetodelete;
/*0xe3c*/ u8 device1;
/*0xe3d*/ u8 filetypetodelete;
/*0xe3e*/ u8 unke3e;
/*0xe3f*/ u8 listnum;
/*0xe34*/ u16 errno; // used
/*0xe38*/ struct filelistfile *filetodelete; // used
/*0xe3c*/ u8 device1; // used
/*0xe3d*/ u8 filetypetodelete; // used
/*0xe3e*/ u8 unke3e; // used
/*0xe3f*/ u8 listnum; // used
/*0xe40*/ u16 unke40_00 : 1;
/*0xe40*/ u16 unke40_01 : 1;
/*0xe40*/ u16 unke40_02 : 14;
/*0xe42*/ u8 fileop;
union {
void *unke44;
void *unke44; // used
s32 mpplayernum;
};
/*0xe48*/ u32 fileid;
/*0xe4c*/ u32 deviceserial;
/*0xe50*/ u16 isretryingsave;
/*0xe48*/ u32 fileid; // used
/*0xe4c*/ u32 deviceserial; // used
/*0xe50*/ u16 isretryingsave; // used
/*0xe52*/ u8 device2;
#if VERSION >= VERSION_NTSC_1_0
/*0xe53*/ char filename[20];
#else
/*0xe53*/ char filename[4];
#endif
/*0xe68*/ struct perfectheadtexturelist *headtextures;
/*0xe6c*/ s8 device3;
};
@ -3918,7 +3922,11 @@ struct perfectheadtexturelist {
};
struct menu {
#if VERSION >= VERSION_NTSC_1_0
struct menuframe frames[10];
#else
struct menuframe frames[9];
#endif
/*0x460*/ s16 numframes;
/*0x464*/ struct menulayer layers[6];
/*0x4f4*/ s16 depth; // index into layers. 1-indexed?
@ -4003,6 +4011,7 @@ struct menu {
/*0x630*/ u32 unk630;
/*0x634*/ u32 unk634;
/*0x638*/ u32 unk638;
#if VERSION >= VERSION_NTSC_1_0
/*0x63c*/ u32 unk63c;
/*0x640*/ u32 unk640;
/*0x644*/ u32 unk644;
@ -4011,6 +4020,7 @@ struct menu {
/*0x650*/ u32 unk650;
/*0x654*/ u32 unk654;
/*0x658*/ u32 unk658;
#endif
/*0x65c*/ s32 unk65c;
/*0x660*/ u16 unk660[1][5]; // length unknown
/*0x66c*/ u32 unk66c;
@ -4035,11 +4045,13 @@ struct menu {
/*0x6b8*/ u32 unk6b8;
/*0x6bc*/ u32 unk6bc;
/*0x6c0*/ u32 unk6c0;
#if VERSION >= VERSION_NTSC_1_0
/*0x6c4*/ u32 unk6c4;
/*0x6c8*/ u32 unk6c8;
/*0x6cc*/ u32 unk6cc;
/*0x6d0*/ u32 unk6d0;
/*0x6d4*/ u32 unk6d4;
#endif
/*0x6d8*/ s32 unk6d8;
/*0x6dc*/ u32 unk6dc;
/*0x6e0*/ u32 unk6e0;

View File

@ -7,6 +7,8 @@
#if VERSION < VERSION_NTSC_1_0
// This data doesn't belong here, but I don't know what the data is or where
// exactly it should go yet.
u8 var8009c9e0nb[0x17e0];
u32 var800606e0nb[] = {
0xb8000000, 0x00000000, 0x00000000, 0x00227a00,
0x007a348b, 0x00223434, 0x00115811, 0x00696900,

View File

@ -548,9 +548,9 @@ glabel bootAllocateStack
#endif
#if VERSION < VERSION_NTSC_1_0
s32 bootGetMemSize(void)
u8 *bootGetStackPos(void)
{
return g_OsMemSize;
return g_StackAllocatedPos;
}
#endif

View File

@ -10,15 +10,21 @@
#define MSG_FAULT 0x10
#if VERSION >= VERSION_NTSC_1_0
#define MAX_LINES 29
#else
#define MAX_LINES 31
#endif
#if VERSION < VERSION_NTSC_1_0
u32 padding[18];
#endif
OSThread g_FaultThread;
u8 g_FaultStack[STACKSIZE_FAULT];
OSMesgQueue g_FaultMesgQueue;
OSMesg g_FaultMesg;
#if VERSION < VERSION_NTSC_1_0
u32 padding[2];
#endif
u32 var8005d5b0 = 0;
s16 g_CrashCurX = 0;
s16 g_CrashCurY = 0;
@ -121,10 +127,11 @@ struct crashdescription g_CrashFpcsrDescriptions[] = {
};
char (*g_CrashCharBuffer)[71] = NULL;
u16 *g_CrashFrameBuffer = NULL;
#if VERSION < VERSION_NTSC_1_0
u32 somethingnb[] = {
u32 var8005f138nb = 0;
u32 var8005f13cnb[] = {
0x22220200, 0x55000000, 0x05f5f500, 0x27427200,
0x05124500, 0x34255300, 0x22000000, 0x24444420,
0x42222240, 0x06f6f600, 0x00272000, 0x00000240,
@ -152,6 +159,8 @@ u32 somethingnb[] = {
};
#endif
u16 *g_CrashFrameBuffer = NULL;
extern u32 _libSegmentStart;
extern u32 _libSegmentEnd;
@ -229,7 +238,7 @@ glabel faultproc
/* c298: afa00064 */ sw $zero,0x64($sp)
/* c29c: 2404000c */ addiu $a0,$zero,0xc
/* c2a0: 02802825 */ or $a1,$s4,$zero
/* c2a4: 0c01263c */ jal 0x498f0
/* c2a4: 0c01263c */ jal osSetEventMesg
/* c2a8: 24060010 */ addiu $a2,$zero,0x10
/* c2ac: 3c018009 */ lui $at,0x8009
/* c2b0: ac207108 */ sw $zero,0x7108($at)
@ -240,23 +249,23 @@ glabel faultproc
/* c2c0: 02802025 */ or $a0,$s4,$zero
.NB0000c2c4:
/* c2c4: 02202825 */ or $a1,$s1,$zero
/* c2c8: 0c0126b0 */ jal 0x49ac0
/* c2c8: 0c0126b0 */ jal osRecvMesg
/* c2cc: 24060001 */ addiu $a2,$zero,0x1
/* c2d0: 0c012688 */ jal 0x49a20
/* c2d0: 0c012688 */ jal osSetIntMask
/* c2d4: 24040001 */ addiu $a0,$zero,0x1
/* c2d8: 0c013eb8 */ jal 0x4fae0
/* c2d8: 0c013eb8 */ jal __osGetCurrFaultedThread
/* c2dc: 00408025 */ or $s0,$v0,$zero
/* c2e0: 3c018009 */ lui $at,0x8009
/* c2e4: 1040fff6 */ beqz $v0,.NB0000c2c0
/* c2e8: ac227104 */ sw $v0,0x7104($at)
/* c2ec: 0c012688 */ jal 0x49a20
/* c2ec: 0c012688 */ jal osSetIntMask
/* c2f0: 02002025 */ or $a0,$s0,$zero
/* c2f4: 3c048009 */ lui $a0,0x8009
/* c2f8: 8c847104 */ lw $a0,0x7104($a0)
/* c2fc: 02402825 */ or $a1,$s2,$zero
/* c300: 0c003297 */ jal 0xca5c
/* c300: 0c003297 */ jal crashGenerate
/* c304: 02603025 */ or $a2,$s3,$zero
/* c308: 0c00073b */ jal 0x1cec
/* c308: 0c00073b */ jal schedSetCrashedUnexpectedly
/* c30c: 24040001 */ addiu $a0,$zero,0x1
/* c310: 1000ffec */ beqz $zero,.NB0000c2c4
/* c314: 02802025 */ or $a0,$s4,$zero
@ -1352,15 +1361,9 @@ void crashPutChar(s32 x, s32 y, char c)
c = '?';
}
#if VERSION >= VERSION_NTSC_1_0
if (x >= 0 && x < 72 && y >= 0 && y < 30 && g_CrashCharBuffer != NULL) {
if (x >= 0 && x < 72 && y >= 0 && y <= MAX_LINES && g_CrashCharBuffer != NULL) {
g_CrashCharBuffer[y][x] = c;
}
#else
if (x >= 0 && x < 72 && y >= 0 && y < 32 && g_CrashCharBuffer != NULL) {
g_CrashCharBuffer[y][x] = c;
}
#endif
}
void crashAppendChar(char c)
@ -1382,17 +1385,10 @@ void crashAppendChar(char c)
g_CrashCurX = 0;
}
#if VERSION >= VERSION_NTSC_1_0
if (g_CrashCurY > 28) {
crashScroll(g_CrashCurY - 28);
g_CrashCurY = 28;
if (g_CrashCurY >= MAX_LINES) {
crashScroll(g_CrashCurY - MAX_LINES + 1);
g_CrashCurY = MAX_LINES - 1;
}
#else
if (g_CrashCurY > 30) {
crashScroll(g_CrashCurY - 30);
g_CrashCurY = 30;
}
#endif
if (c != '\n') {
crashPutChar(g_CrashCurX, g_CrashCurY, c);
@ -1416,7 +1412,7 @@ void crashScroll(s32 numlines)
}
while (numlines-- > 0) {
for (y = 0; y < 29; y++) {
for (y = 0; y < MAX_LINES; y++) {
for (x = 0; x < 71; x++) {
g_CrashCharBuffer[y][x] = g_CrashCharBuffer[y + 1][x];
}
@ -1657,7 +1653,7 @@ void crashRenderFrame(u8 *fb)
height = (viGetHeight() - 10) / 7 - 1;
if (g_CrashCharBuffer != NULL) {
for (y = 0; y < height && y < 29; y++) {
for (y = 0; y < height && y < MAX_LINES; y++) {
for (x = 0; x < width - 5 && x < 71; x++) {
crashRenderChar(20 + x * 4, 7 + y * 7, g_CrashCharBuffer[y][x]);
}

View File

@ -5,6 +5,10 @@
#include "data.h"
#include "types.h"
#if VERSION < VERSION_NTSC_1_0
u8 var80097110nb[0x950];
#endif
volatile u32 g_DmaNumSlotsBusy;
u32 var80094ae4;
OSIoMesg g_DmaIoMsgs[32];

View File

@ -4,6 +4,10 @@
#include "data.h"
#include "types.h"
#if VERSION < VERSION_NTSC_1_0
u32 var8009e6b0[4];
#endif
struct g_vars g_Vars;
void gvarsInit(void)

View File

@ -34,32 +34,21 @@
struct joydata g_JoyData[2];
s32 g_JoyDisableCooldown[4];
OSMesgQueue g_PiMesgQueue;
OSMesg var80099e90;
u32 var80099e94;
u32 var80099e98;
u32 var80099e9c;
u32 var80099ea0;
u32 var80099ea4;
u32 var80099ea8;
u32 var80099eac;
u32 var80099eb0;
u32 var80099eb4;
OSMesg var80099eb8;
u32 var80099ebc;
OSMesg var80099e90[10];
OSMesg var80099eb8[2];
OSMesgQueue g_JoyStopCyclicPollingMesgQueue;
OSMesg var80099ed8;
u32 var80099edc;
OSMesg var80099ed8[2];
OSMesgQueue g_JoyStopCyclicPollingDoneMesgQueue;
OSMesg var80099ef8;
u32 var80099efc;
OSMesg var80099ef8[2];
OSMesgQueue g_JoyStartCyclicPollingMesgQueue;
OSMesg var80099f18;
u32 var80099f1c;
OSMesg var80099f18[2];
OSMesgQueue g_JoyStartCyclicPollingDoneMesgQueue;
OSContStatus var80099f38[4];
#if VERSION >= VERSION_NTSC_1_0
u8 g_JoyPfsStates[100];
u32 var80099fac;
u32 var80099fb0;
#endif
const char var70054080[] = "joyReset\n";
const char var7005408c[] = "joyReset: doing nothing\n";
@ -100,8 +89,8 @@ u32 var8005eee8 = 0;
u32 var8005eeec = 0;
u32 var8005eef0 = 1;
#else
u32 var8005eee8nb = 3;
u8 var8005eeecnb = 0;
u32 var800612c8nb = 3;
u8 var800612ccnb = 0;
#endif
#if VERSION >= VERSION_NTSC_1_0
@ -164,7 +153,7 @@ u32 joy00013980(void)
#if VERSION >= VERSION_NTSC_1_0
return var8005eeec;
#else
return var8005eeecnb;
return var8005eed8;
#endif
}
#endif
@ -309,11 +298,11 @@ void joySystemInit(void)
s32 i;
s32 j;
osCreateMesgQueue(&g_JoyStopCyclicPollingMesgQueue, &var80099eb8, 1);
osCreateMesgQueue(&g_JoyStopCyclicPollingDoneMesgQueue, &var80099ed8, 1);
osCreateMesgQueue(&g_JoyStartCyclicPollingMesgQueue, &var80099ef8, 1);
osCreateMesgQueue(&g_JoyStartCyclicPollingDoneMesgQueue, &var80099f18, 1);
osCreateMesgQueue(&g_PiMesgQueue, &var80099e90, 10);
osCreateMesgQueue(&g_JoyStopCyclicPollingMesgQueue, var80099eb8, 1);
osCreateMesgQueue(&g_JoyStopCyclicPollingDoneMesgQueue, var80099ed8, 1);
osCreateMesgQueue(&g_JoyStartCyclicPollingMesgQueue, var80099ef8, 1);
osCreateMesgQueue(&g_JoyStartCyclicPollingDoneMesgQueue, var80099f18, 1);
osCreateMesgQueue(&g_PiMesgQueue, var80099e90, ARRAYCOUNT(var80099e90));
osSetEventMesg(OS_EVENT_SI, &g_PiMesgQueue, NULL);
@ -551,6 +540,10 @@ glabel func0001509cnb
);
#endif
#if VERSION < VERSION_NTSC_1_0
u32 var800612d4nb = 0;
#endif
/**
* The use of the static variable suggests that the function is able to be
* called recursively, but its behaviour should not be run when recursing.
@ -584,7 +577,7 @@ void joyDebugJoy(void)
#if VERSION >= VERSION_NTSC_1_0
mainOverrideVariable("debugjoy", &var8005ef08);
#else
mainOverrideVariable("joyforce", &var8005ef08);
mainOverrideVariable("joyforce", &var800612c8nb);
#endif
#if VERSION >= VERSION_NTSC_1_0
@ -1328,7 +1321,7 @@ void joyReset(void)
{
s32 i;
osCreateMesgQueue(&g_PiMesgQueue, &var80099e90, 10);
osCreateMesgQueue(&g_PiMesgQueue, var80099e90, ARRAYCOUNT(var80099e90));
osSetEventMesg(OS_EVENT_SI, &g_PiMesgQueue, 0);
for (i = 0; i < 4; i++) {

View File

@ -21,7 +21,11 @@ void resetproc(void *data)
{
OSMesg msg = 0;
OSViMode *mode;
#if VERSION >= VERSION_NTSC_1_0
u32 stack[4];
#else
u32 stack[2];
#endif
static u64 prenmitime;

View File

@ -2266,8 +2266,10 @@ void sndInit(void)
#if VERSION >= VERSION_PAL_FINAL
u32 heaplen = 1024 * 446;
#else
#elif VERSION >= VERSION_NTSC_1_0
u32 heaplen = 1024 * 441;
#else
u32 heaplen = 1024 * 438;
#endif
g_Vars.langfilteron = false;
@ -2318,7 +2320,7 @@ void sndInit(void)
// Allocate some space at the start of the heap for a string identifier.
// This might be used to determine if the heap has overflowed.
g_SndGuardStringPtr = alHeapDBAlloc(0, 0, &g_SndHeap, 1, 32);
g_SndGuardStringPtr = alHeapAlloc(&g_SndHeap, 1, 32);
strcpy(g_SndGuardStringPtr, g_SndGuardString);
// Load sfx.ctl
@ -2326,7 +2328,7 @@ void sndInit(void)
// Load seq.ctl
var80095200 = 0xffffffff;
bankfile = alHeapDBAlloc(0, 0, &g_SndHeap, 1, len);
bankfile = alHeapAlloc(&g_SndHeap, 1, len);
dmaExec(bankfile, (u32) &_seqctlSegmentRomStart, len);
// Load seq.tbl

View File

@ -1,3 +1,4 @@
#include "versions.h"
#include <os_internal.h>
#include "controller.h"
#include "siint.h"
@ -18,7 +19,7 @@ s32 osPfsIsPlug(OSMesgQueue *queue, u8 *pattern)
int crc_error_cnt;
ret = 0;
bits = 0;
crc_error_cnt = 1;
crc_error_cnt = VERSION >= VERSION_NTSC_1_0 ? 1 : 3;
__osSiGetAccess();

View File

@ -1,3 +1,4 @@
#include "versions.h"
#include <os.h>
#include <os_internal.h>
#include <R4300.h>
@ -60,7 +61,9 @@ void osInitialize(void)
bzero(&osAppNMIBuffer, 0x40);
}
#if !PAL
#if VERSION >= VERSION_PAL_FINAL
// empty
#elif VERSION >= VERSION_NTSC_1_0
if (osTvType == OS_TV_PAL) {
osViClock = VI_PAL_CLOCK;
} else if (osTvType == OS_TV_MPAL) {
@ -68,6 +71,14 @@ void osInitialize(void)
} else {
osViClock = VI_NTSC_CLOCK;
}
#else
if (osTvType == OS_TV_PAL) {
osViClock = VI_PAL_CLOCK;
} else if (osTvType == OS_TV_MPAL) {
osViClock = VI_MPAL_CLOCK;
} else {
osViClock = VI_NTSC_CLOCK;
}
#endif
if (__osGetCause() & CAUSE_IP5) {

View File

@ -206,7 +206,11 @@ void viAllocateFbs(s32 stagenum)
fbsize = IS4MB() ? 320 * 220 * 2 : 320 * 220 * 4;
if (IS4MB() && PLAYERCOUNT() == 2) {
#if VERSION >= VERSION_NTSC_1_0
fbsize = 320 * 220;
#else
fbsize = 320 * 240;
#endif
g_Vars.fourmeg2player = true;
} else if ((g_Vars.coopplayernum >= 0 || g_Vars.antiplayernum >= 0) && PLAYERCOUNT() == 2) {
#if PAL

View File

@ -13,10 +13,21 @@
.word 0x00001449 # Release address
.word 0x00000000 # CRC 1
.word 0x00000000 # CRC 2
.word 0x00000000
.word 0x00000000
.if VERSION == VERSION_NTSC_BETA
.word 0x54e4d838
.word 0x2fbd9536
.else
.word 0x00000000
.word 0x00000000
.endif
.if VERSION == VERSION_NTSC_BETA
.ascii "Perfect Dark DBGNTSC"
.else
.ascii "Perfect Dark "
.endif
.word 0x00000000
.byte 0x00
.byte 0x00

View File

@ -458,7 +458,7 @@ class Extractor:
'files': [0x29160, 0x28080, 0x28080, 0x29b90, 0x28910, 0x28800, ],
'data': [0x30850, 0x39850, 0x39850, 0x39850, 0x39850, 0x39850, ],
'game': [0x43c40, 0x4fc40, 0x4fc40, 0x4fc40, 0x4fc40, 0x4fc40, ],
'garbage': [0x155cc0, 0x194b20, 0x194b20, 0x0, 0x180330, 0x0, ],
'garbage': [0x148c40, 0x194b20, 0x194b20, 0x0, 0x180330, 0x0, ],
'animations': [0x155dc0, 0x1a15c0, 0x1a15c0, 0x18cdc0, 0x18cdc0, 0x190c50, ],
'mpconfigs': [0x785130, 0x7d0a40, 0x7d0a40, 0x7bc240, 0x7bc240, 0x7c00d0, ],
'firingrange': [0x79e410, 0x7e9d20, 0x7e9d20, 0x7d5520, 0x7d5520, 0x7d93b0, ],

View File

@ -54,6 +54,12 @@ struct state {
* Size of the above gametable allocation in bytes.
*/
size_t gametablelen;
/**
* NTSC beta doesn't duplicate zip data unneccessarily so it must be
* identified and handled differently.
*/
bool is_ntscbeta;
};
void game_zip(void);

View File

@ -72,19 +72,21 @@ void pack_game(void)
memcpy(&state.rom[gamezipstart], state.gametable, state.gametablelen);
// Paste the second segment, truncating it to fit the allocation
truncatedlen = gamezipend - gamezipstart - state.gamezipslen;
if (!state.is_ntscbeta) {
// Paste the second segment, truncating it to fit the allocation
truncatedlen = gamezipend - gamezipstart - state.gamezipslen;
if (truncatedlen > state.gamezipslen) {
truncatedlen = state.gamezipslen;
if (truncatedlen > state.gamezipslen) {
truncatedlen = state.gamezipslen;
}
memcpy(&state.rom[gamezipstart + state.gamezipslen], state.gamezips, truncatedlen);
// The final two bytes from the real segment are duplicated into
// the first two bytes of the second segment's offset table
state.rom[gamezipstart + state.gamezipslen + 0] = state.rom[gamezipstart + state.gamezipslen - 2];
state.rom[gamezipstart + state.gamezipslen + 1] = state.rom[gamezipstart + state.gamezipslen - 1];
}
memcpy(&state.rom[gamezipstart + state.gamezipslen], state.gamezips, truncatedlen);
// The final two bytes from the real segment are duplicated into
// the first two bytes of the second segment's offset table
state.rom[gamezipstart + state.gamezipslen + 0] = state.rom[gamezipstart + state.gamezipslen - 2];
state.rom[gamezipstart + state.gamezipslen + 1] = state.rom[gamezipstart + state.gamezipslen - 1];
}
/**
@ -117,17 +119,19 @@ void pack_lib(void)
// Copy the buffer to its real spot in the ROM
copy("lib", buffer, seglen, "ROMALLOCATION_LIB");
// Copy it truncated to its fake spot
map_get_segment_rompos("libzip", &libzipstart, &libzipend);
if (!state.is_ntscbeta) {
// Copy it truncated to its fake spot
map_get_segment_rompos("libzip", &libzipstart, &libzipend);
truncatedlen = libzipend - libzipstart - seglen;
truncatedlen = libzipend - libzipstart - seglen;
if (truncatedlen > seglen) {
truncatedlen = seglen;
if (truncatedlen > seglen) {
truncatedlen = seglen;
}
memcpy(state.rom + libzipstart + seglen, buffer, truncatedlen);
}
memcpy(state.rom + libzipstart + seglen, buffer, truncatedlen);
free(buffer);
}

View File

@ -1,5 +1,6 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "mkrom.h"
extern struct state state;
@ -29,6 +30,8 @@ void rom_load(char *filename)
fseek(fp, 0, SEEK_SET);
fread(state.rom, state.romlen, 1, fp);
fclose(fp);
state.is_ntscbeta = strncmp(&state.rom[0x20], "Perfect Dark DBGNTSC", 20) == 0;
}
/**