mirror of
https://gitlab.com/ryandwyer/perfect-dark
synced 2026-07-29 07:32:16 -04:00
1216 lines
44 KiB
C
1216 lines
44 KiB
C
#include <ultra64.h>
|
|
#include "constants.h"
|
|
#include "game/file.h"
|
|
#include "game/lang.h"
|
|
#include "bss.h"
|
|
#include "lib/dma.h"
|
|
#include "data.h"
|
|
#include "types.h"
|
|
|
|
/**
|
|
* NTSC appears to use a boolean for Japanese support.
|
|
* PAL ignores this mostly and introduces g_LanguageId.
|
|
*/
|
|
#if VERSION >= VERSION_PAL_BETA
|
|
bool g_Jpn = VERSION == VERSION_JPN_FINAL ? true : false;
|
|
u32 var80084664pf = 0;
|
|
u32 var80084668pf = 0;
|
|
u32 var8008466cpf = 0;
|
|
u32 *g_LangBanks[69];
|
|
void *var800aabb4;
|
|
struct var800aabb8 *var800aabb8;
|
|
s32 g_LanguageId = LANGUAGE_NTSC_EN;
|
|
#else
|
|
u32 *g_LangBanks[69];
|
|
void *var800aabb4;
|
|
struct var800aabb8 *var800aabb8;
|
|
bool g_Jpn = false;
|
|
#endif
|
|
|
|
u16 g_LangFiles[] = {
|
|
/* 0*/ 0,
|
|
/* 1*/ FILE_LAMEE,
|
|
/* 2*/ FILE_LARCHE,
|
|
/* 3*/ FILE_LARKE,
|
|
/* 4*/ FILE_LASHE,
|
|
/* 5*/ FILE_LAZTE,
|
|
/* 6*/ FILE_LCATE,
|
|
/* 7*/ FILE_LCAVEE,
|
|
/* 8*/ FILE_LARECE,
|
|
/* 9*/ FILE_LCRADE,
|
|
/*10*/ FILE_LCRYPE,
|
|
/*11*/ FILE_LDAME,
|
|
/*12*/ FILE_LDEPOE,
|
|
/*13*/ FILE_LDESTE,
|
|
/*14*/ FILE_LDISHE,
|
|
/*15*/ FILE_LEARE,
|
|
/*16*/ FILE_LELDE,
|
|
/*17*/ FILE_LIMPE,
|
|
/*18*/ FILE_LJUNE,
|
|
/*19*/ FILE_LLEEE,
|
|
/*20*/ FILE_LLENE,
|
|
/*21*/ FILE_LLIPE,
|
|
/*22*/ FILE_LLUEE,
|
|
/*23*/ FILE_LOATE,
|
|
/*24*/ FILE_LPAME,
|
|
/*25*/ FILE_LPETEE,
|
|
/*26*/ FILE_LREFE,
|
|
/*27*/ FILE_LRITE,
|
|
/*28*/ FILE_LRUNE,
|
|
/*29*/ FILE_LSEVBE,
|
|
/*30*/ FILE_LSEVE,
|
|
/*31*/ FILE_LSEVXE,
|
|
/*32*/ FILE_LSEVXBE,
|
|
/*33*/ FILE_LSHOE,
|
|
/*34*/ FILE_LSILOE,
|
|
/*35*/ FILE_LSTATE,
|
|
/*36*/ FILE_LTRAE,
|
|
/*37*/ FILE_LWAXE,
|
|
/*38*/ FILE_LGUNE,
|
|
/*39*/ FILE_LTITLEE,
|
|
/*40*/ FILE_LMPMENUE,
|
|
/*41*/ FILE_LPROPOBJE,
|
|
/*42*/ FILE_LMPWEAPONSE,
|
|
/*43*/ FILE_LOPTIONSE,
|
|
/*44*/ FILE_LMISCE,
|
|
/*45*/ FILE_LUFFE,
|
|
/*46*/ FILE_LOLDE,
|
|
/*47*/ FILE_LATEE,
|
|
/*48*/ FILE_LLAME,
|
|
/*49*/ FILE_LMP1E,
|
|
/*50*/ FILE_LMP2E,
|
|
/*51*/ FILE_LMP3E,
|
|
/*52*/ FILE_LMP4E,
|
|
/*53*/ FILE_LMP5E,
|
|
/*54*/ FILE_LMP6E,
|
|
/*55*/ FILE_LMP7E,
|
|
/*56*/ FILE_LMP8E,
|
|
/*57*/ FILE_LMP9E,
|
|
/*58*/ FILE_LMP10E,
|
|
/*59*/ FILE_LMP11E,
|
|
/*60*/ FILE_LMP12E,
|
|
/*61*/ FILE_LMP13E,
|
|
/*62*/ FILE_LMP14E,
|
|
/*63*/ FILE_LMP15E,
|
|
/*64*/ FILE_LMP16E,
|
|
/*65*/ FILE_LMP17E,
|
|
/*66*/ FILE_LMP18E,
|
|
/*67*/ FILE_LMP19E,
|
|
/*68*/ FILE_LMP20E,
|
|
};
|
|
|
|
u32 langGetLangBankIndexFromStagenum(s32 stagenum)
|
|
{
|
|
u32 bank;
|
|
|
|
switch (stagenum) {
|
|
case STAGE_PELAGIC: bank = LANGBANK_DAM; break;
|
|
case STAGE_EXTRACTION: bank = LANGBANK_ARK; break;
|
|
case STAGE_TEST_RUN: bank = LANGBANK_RUN; break;
|
|
case STAGE_24: bank = LANGBANK_SEVX; break;
|
|
case STAGE_MAIANSOS: bank = LANGBANK_SEV; break;
|
|
case STAGE_TEST_DEST: bank = LANGBANK_DEST; break;
|
|
case STAGE_2B: bank = LANGBANK_SEVXB; break;
|
|
case STAGE_RETAKING: bank = LANGBANK_SEVB; break;
|
|
case STAGE_WAR: bank = LANGBANK_STAT; break;
|
|
case STAGE_CHICAGO: bank = LANGBANK_PETE; break;
|
|
case STAGE_G5BUILDING: bank = LANGBANK_DEPO; break;
|
|
case STAGE_ESCAPE: bank = LANGBANK_TRA; break;
|
|
case STAGE_MP_TEMPLE: bank = LANGBANK_JUN; break;
|
|
case STAGE_MP_PIPES: bank = LANGBANK_CRAD; break;
|
|
case STAGE_MP_G5BUILDING: bank = LANGBANK_CRYP; break;
|
|
case STAGE_CITRAINING: bank = LANGBANK_DISH; break;
|
|
case STAGE_MP_COMPLEX: bank = LANGBANK_REF; break;
|
|
case STAGE_MP_SKEDAR: bank = LANGBANK_OAT; break;
|
|
case STAGE_TEST_LEN: bank = LANGBANK_LEN; break;
|
|
case STAGE_DEFECTION: bank = LANGBANK_AME; break;
|
|
case STAGE_VILLA: bank = LANGBANK_ELD; break;
|
|
case STAGE_DEFENSE: bank = LANGBANK_IMP; break;
|
|
case STAGE_TEST_ASH: bank = LANGBANK_ASH; break;
|
|
case STAGE_INVESTIGATION: bank = LANGBANK_EAR; break;
|
|
case STAGE_ATTACKSHIP: bank = LANGBANK_LEE; break;
|
|
case STAGE_RESCUE: bank = LANGBANK_LIP; break;
|
|
case STAGE_INFILTRATION: bank = LANGBANK_LUE; break;
|
|
case STAGE_28: bank = LANGBANK_DAM; break;
|
|
case STAGE_DEEPSEA: bank = LANGBANK_PAM; break;
|
|
case STAGE_SKEDARRUINS: bank = LANGBANK_SHO; break;
|
|
case STAGE_AIRFORCEONE: bank = LANGBANK_RIT; break;
|
|
case STAGE_TEST_ARCH: bank = LANGBANK_ARCH; break;
|
|
case STAGE_MP_RAVINE: bank = LANGBANK_AREC; break;
|
|
case STAGE_CRASHSITE: bank = LANGBANK_AZT; break;
|
|
case STAGE_AIRBASE: bank = LANGBANK_CAVE; break;
|
|
case STAGE_TEST_UFF: bank = LANGBANK_UFF; break;
|
|
case STAGE_TEST_OLD: bank = LANGBANK_OLD; break;
|
|
case STAGE_DUEL: bank = LANGBANK_ATE; break;
|
|
case STAGE_TEST_LAM: bank = LANGBANK_LAM; break;
|
|
case STAGE_MP_BASE: bank = LANGBANK_MP1; break;
|
|
case STAGE_TEST_MP2: bank = LANGBANK_MP2; break;
|
|
case STAGE_MP_AREA52: bank = LANGBANK_MP3; break;
|
|
case STAGE_MP_WAREHOUSE: bank = LANGBANK_MP4; break;
|
|
case STAGE_MP_CARPARK: bank = LANGBANK_MP5; break;
|
|
case STAGE_TEST_MP6: bank = LANGBANK_MP6; break;
|
|
case STAGE_TEST_MP7: bank = LANGBANK_MP7; break;
|
|
case STAGE_TEST_MP8: bank = LANGBANK_MP8; break;
|
|
case STAGE_MP_RUINS: bank = LANGBANK_MP9; break;
|
|
case STAGE_MP_SEWERS: bank = LANGBANK_MP10; break;
|
|
case STAGE_MP_FELICITY: bank = LANGBANK_MP11; break;
|
|
case STAGE_MP_FORTRESS: bank = LANGBANK_MP12; break;
|
|
case STAGE_MP_VILLA: bank = LANGBANK_MP13; break;
|
|
case STAGE_TEST_MP14: bank = LANGBANK_MP14; break;
|
|
case STAGE_MP_GRID: bank = LANGBANK_MP15; break;
|
|
case STAGE_TEST_MP16: bank = LANGBANK_MP16; break;
|
|
case STAGE_TEST_MP17: bank = LANGBANK_MP17; break;
|
|
case STAGE_TEST_MP18: bank = LANGBANK_MP18; break;
|
|
case STAGE_TEST_MP19: bank = LANGBANK_MP19; break;
|
|
case STAGE_TEST_MP20: bank = LANGBANK_MP20; break;
|
|
case STAGE_MBR: bank = LANGBANK_WAX; break;
|
|
case STAGE_TEST_SILO: bank = LANGBANK_SILO; break;
|
|
default:
|
|
while (true) {
|
|
// empty
|
|
}
|
|
}
|
|
|
|
return bank;
|
|
}
|
|
|
|
#if VERSION == VERSION_JPN_FINAL
|
|
const char var7f1b8850jf[] = "tmul";
|
|
const char var7f1b8858jf[] = "tload";
|
|
u32 var80084810jf = 0;
|
|
u32 var80084814jf = 8;
|
|
|
|
GLOBAL_ASM(
|
|
glabel func0f16e3fc
|
|
/* f16e59c: 27bdffd0 */ addiu $sp,$sp,-48
|
|
/* f16e5a0: afb00018 */ sw $s0,0x18($sp)
|
|
/* f16e5a4: 308e2000 */ andi $t6,$a0,0x2000
|
|
/* f16e5a8: 00808025 */ move $s0,$a0
|
|
/* f16e5ac: afbf001c */ sw $ra,0x1c($sp)
|
|
/* f16e5b0: 2409ffff */ li $t1,-1
|
|
/* f16e5b4: 240affff */ li $t2,-1
|
|
/* f16e5b8: 11c00002 */ beqz $t6,.JF0f16e5c4
|
|
/* f16e5bc: 00004025 */ move $t0,$zero
|
|
/* f16e5c0: 24080001 */ li $t0,0x1
|
|
.JF0f16e5c4:
|
|
/* f16e5c4: 3c047f1c */ lui $a0,0x7f1c
|
|
/* f16e5c8: 3c058008 */ lui $a1,0x8008
|
|
/* f16e5cc: 24a54814 */ addiu $a1,$a1,0x4814
|
|
/* f16e5d0: 24848850 */ addiu $a0,$a0,-30640
|
|
/* f16e5d4: afa80020 */ sw $t0,0x20($sp)
|
|
/* f16e5d8: afa90028 */ sw $t1,0x28($sp)
|
|
/* f16e5dc: 0c0036b4 */ jal mainOverrideVariable
|
|
/* f16e5e0: afaa0024 */ sw $t2,0x24($sp)
|
|
/* f16e5e4: 3c047f1c */ lui $a0,0x7f1c
|
|
/* f16e5e8: 3c058008 */ lui $a1,0x8008
|
|
/* f16e5ec: 24a54810 */ addiu $a1,$a1,0x4810
|
|
/* f16e5f0: 0c0036b4 */ jal mainOverrideVariable
|
|
/* f16e5f4: 24848858 */ addiu $a0,$a0,-30632
|
|
/* f16e5f8: 3c028008 */ lui $v0,0x8008
|
|
/* f16e5fc: 8c424810 */ lw $v0,0x4810($v0)
|
|
/* f16e600: 8fa80020 */ lw $t0,0x20($sp)
|
|
/* f16e604: 8fa90028 */ lw $t1,0x28($sp)
|
|
/* f16e608: 10400002 */ beqz $v0,.JF0f16e614
|
|
/* f16e60c: 8faa0024 */ lw $t2,0x24($sp)
|
|
/* f16e610: 00408025 */ move $s0,$v0
|
|
.JF0f16e614:
|
|
/* f16e614: 3c07800a */ lui $a3,0x800a
|
|
/* f16e618: 8ce7d140 */ lw $a3,-0x2ec0($a3)
|
|
/* f16e61c: 00003025 */ move $a2,$zero
|
|
/* f16e620: 3c04800b */ lui $a0,0x800b
|
|
/* f16e624: 58e00026 */ blezl $a3,.JF0f16e6c0
|
|
/* f16e628: 00c7082a */ slt $at,$a2,$a3
|
|
/* f16e62c: 8c84b5a8 */ lw $a0,-0x4a58($a0)
|
|
.JF0f16e630:
|
|
/* f16e630: 15000005 */ bnez $t0,.JF0f16e648
|
|
/* f16e634: 00000000 */ nop
|
|
/* f16e638: 948f0000 */ lhu $t7,0x0($a0)
|
|
/* f16e63c: 31f83fff */ andi $t8,$t7,0x3fff
|
|
/* f16e640: 5218001f */ beql $s0,$t8,.JF0f16e6c0
|
|
/* f16e644: 00c7082a */ slt $at,$a2,$a3
|
|
.JF0f16e648:
|
|
/* f16e648: 1100000a */ beqz $t0,.JF0f16e674
|
|
/* f16e64c: 94830000 */ lhu $v1,0x0($a0)
|
|
/* f16e650: 24d90001 */ addiu $t9,$a2,0x1
|
|
/* f16e654: 0327082a */ slt $at,$t9,$a3
|
|
/* f16e658: 10200006 */ beqz $at,.JF0f16e674
|
|
/* f16e65c: 306b3fff */ andi $t3,$v1,0x3fff
|
|
/* f16e660: 160b0004 */ bne $s0,$t3,.JF0f16e674
|
|
/* f16e664: 02001025 */ move $v0,$s0
|
|
/* f16e668: 948c0002 */ lhu $t4,0x2($a0)
|
|
/* f16e66c: 318d3fff */ andi $t5,$t4,0x3fff
|
|
/* f16e670: 104d0012 */ beq $v0,$t5,.JF0f16e6bc
|
|
.JF0f16e674:
|
|
/* f16e674: 00031382 */ srl $v0,$v1,0xe
|
|
/* f16e678: 14400002 */ bnez $v0,.JF0f16e684
|
|
/* f16e67c: 24c50001 */ addiu $a1,$a2,0x1
|
|
/* f16e680: 00c04825 */ move $t1,$a2
|
|
.JF0f16e684:
|
|
/* f16e684: 5440000a */ bnezl $v0,.JF0f16e6b0
|
|
/* f16e688: 00a7082a */ slt $at,$a1,$a3
|
|
/* f16e68c: 948e0002 */ lhu $t6,0x2($a0)
|
|
/* f16e690: 00a7082a */ slt $at,$a1,$a3
|
|
/* f16e694: 000e7b82 */ srl $t7,$t6,0xe
|
|
/* f16e698: 55e00005 */ bnezl $t7,.JF0f16e6b0
|
|
/* f16e69c: 00a7082a */ slt $at,$a1,$a3
|
|
/* f16e6a0: 50200003 */ beqzl $at,.JF0f16e6b0
|
|
/* f16e6a4: 00a7082a */ slt $at,$a1,$a3
|
|
/* f16e6a8: 00c05025 */ move $t2,$a2
|
|
/* f16e6ac: 00a7082a */ slt $at,$a1,$a3
|
|
.JF0f16e6b0:
|
|
/* f16e6b0: 00a03025 */ move $a2,$a1
|
|
/* f16e6b4: 1420ffde */ bnez $at,.JF0f16e630
|
|
/* f16e6b8: 24840002 */ addiu $a0,$a0,0x2
|
|
.JF0f16e6bc:
|
|
/* f16e6bc: 00c7082a */ slt $at,$a2,$a3
|
|
.JF0f16e6c0:
|
|
/* f16e6c0: 1020002b */ beqz $at,.JF0f16e770
|
|
/* f16e6c4: 3c18800b */ lui $t8,0x800b
|
|
/* f16e6c8: 8f18b5a8 */ lw $t8,-0x4a58($t8)
|
|
/* f16e6cc: 00061840 */ sll $v1,$a2,0x1
|
|
/* f16e6d0: 15000010 */ bnez $t0,.JF0f16e714
|
|
/* f16e6d4: 03032021 */ addu $a0,$t8,$v1
|
|
/* f16e6d8: 90990000 */ lbu $t9,0x0($a0)
|
|
/* f16e6dc: 3c0d8008 */ lui $t5,0x8008
|
|
/* f16e6e0: 3c18800b */ lui $t8,0x800b
|
|
/* f16e6e4: 332bff3f */ andi $t3,$t9,0xff3f
|
|
/* f16e6e8: 356c0080 */ ori $t4,$t3,0x80
|
|
/* f16e6ec: a08c0000 */ sb $t4,0x0($a0)
|
|
/* f16e6f0: 8dad4814 */ lw $t5,0x4814($t5)
|
|
/* f16e6f4: 8f18b5a4 */ lw $t8,-0x4a5c($t8)
|
|
/* f16e6f8: 00cd0019 */ multu $a2,$t5
|
|
/* f16e6fc: 00007012 */ mflo $t6
|
|
/* f16e700: 000e7880 */ sll $t7,$t6,0x2
|
|
/* f16e704: 01ee7823 */ subu $t7,$t7,$t6
|
|
/* f16e708: 000f7880 */ sll $t7,$t7,0x2
|
|
/* f16e70c: 1000007b */ b .JF0f16e8fc
|
|
/* f16e710: 01f81021 */ addu $v0,$t7,$t8
|
|
.JF0f16e714:
|
|
/* f16e714: 90990000 */ lbu $t9,0x0($a0)
|
|
/* f16e718: 3c07800b */ lui $a3,0x800b
|
|
/* f16e71c: 24e7b5a8 */ addiu $a3,$a3,-19032
|
|
/* f16e720: 332bff3f */ andi $t3,$t9,0xff3f
|
|
/* f16e724: 356c0080 */ ori $t4,$t3,0x80
|
|
/* f16e728: a08c0000 */ sb $t4,0x0($a0)
|
|
/* f16e72c: 8ced0000 */ lw $t5,0x0($a3)
|
|
/* f16e730: 3c198008 */ lui $t9,0x8008
|
|
/* f16e734: 01a32021 */ addu $a0,$t5,$v1
|
|
/* f16e738: 908e0002 */ lbu $t6,0x2($a0)
|
|
/* f16e73c: 3c0d800b */ lui $t5,0x800b
|
|
/* f16e740: 31cfff3f */ andi $t7,$t6,0xff3f
|
|
/* f16e744: 35f80080 */ ori $t8,$t7,0x80
|
|
/* f16e748: a0980002 */ sb $t8,0x2($a0)
|
|
/* f16e74c: 8f394814 */ lw $t9,0x4814($t9)
|
|
/* f16e750: 8dadb5a4 */ lw $t5,-0x4a5c($t5)
|
|
/* f16e754: 00d90019 */ multu $a2,$t9
|
|
/* f16e758: 00005812 */ mflo $t3
|
|
/* f16e75c: 000b6080 */ sll $t4,$t3,0x2
|
|
/* f16e760: 018b6023 */ subu $t4,$t4,$t3
|
|
/* f16e764: 000c6080 */ sll $t4,$t4,0x2
|
|
/* f16e768: 10000064 */ b .JF0f16e8fc
|
|
/* f16e76c: 018d1021 */ addu $v0,$t4,$t5
|
|
.JF0f16e770:
|
|
/* f16e770: 15000039 */ bnez $t0,.JF0f16e858
|
|
/* f16e774: 00000000 */ nop
|
|
/* f16e778: 05200037 */ bltz $t1,.JF0f16e858
|
|
/* f16e77c: 3c07800b */ lui $a3,0x800b
|
|
/* f16e780: 24e7b5a8 */ addiu $a3,$a3,-19032
|
|
/* f16e784: 8cee0000 */ lw $t6,0x0($a3)
|
|
/* f16e788: 00091840 */ sll $v1,$t1,0x1
|
|
/* f16e78c: 320d3fff */ andi $t5,$s0,0x3fff
|
|
/* f16e790: 01c31021 */ addu $v0,$t6,$v1
|
|
/* f16e794: 904f0000 */ lbu $t7,0x0($v0)
|
|
/* f16e798: 2408000c */ li $t0,0xc
|
|
/* f16e79c: 3c0c800b */ lui $t4,0x800b
|
|
/* f16e7a0: 31f8ff3f */ andi $t8,$t7,0xff3f
|
|
/* f16e7a4: 37190080 */ ori $t9,$t8,0x80
|
|
/* f16e7a8: a0590000 */ sb $t9,0x0($v0)
|
|
/* f16e7ac: 8ceb0000 */ lw $t3,0x0($a3)
|
|
/* f16e7b0: 3c198008 */ lui $t9,0x8008
|
|
/* f16e7b4: 01631021 */ addu $v0,$t3,$v1
|
|
/* f16e7b8: 944e0000 */ lhu $t6,0x0($v0)
|
|
/* f16e7bc: 31cfc000 */ andi $t7,$t6,0xc000
|
|
/* f16e7c0: 01afc025 */ or $t8,$t5,$t7
|
|
/* f16e7c4: a4580000 */ sh $t8,0x0($v0)
|
|
/* f16e7c8: 8f394814 */ lw $t9,0x4814($t9)
|
|
/* f16e7cc: 8d8cb5a4 */ lw $t4,-0x4a5c($t4)
|
|
/* f16e7d0: afa90028 */ sw $t1,0x28($sp)
|
|
/* f16e7d4: 03280019 */ multu $t9,$t0
|
|
/* f16e7d8: 001978c0 */ sll $t7,$t9,0x3
|
|
/* f16e7dc: 01f97821 */ addu $t7,$t7,$t9
|
|
/* f16e7e0: 000f7940 */ sll $t7,$t7,0x5
|
|
/* f16e7e4: 00003012 */ mflo $a2
|
|
/* f16e7e8: 00000000 */ nop
|
|
/* f16e7ec: 00000000 */ nop
|
|
/* f16e7f0: 01260019 */ multu $t1,$a2
|
|
/* f16e7f4: 00005812 */ mflo $t3
|
|
/* f16e7f8: 016c2021 */ addu $a0,$t3,$t4
|
|
/* f16e7fc: 3c0b0018 */ lui $t3,0x18
|
|
/* f16e800: 02190019 */ multu $s0,$t9
|
|
/* f16e804: 256b8c40 */ addiu $t3,$t3,-29632
|
|
/* f16e808: 00007012 */ mflo $t6
|
|
/* f16e80c: 00000000 */ nop
|
|
/* f16e810: 00000000 */ nop
|
|
/* f16e814: 01c80019 */ multu $t6,$t0
|
|
/* f16e818: 00006812 */ mflo $t5
|
|
/* f16e81c: 01afc021 */ addu $t8,$t5,$t7
|
|
/* f16e820: 0c0034ec */ jal dmaExec
|
|
/* f16e824: 030b2821 */ addu $a1,$t8,$t3
|
|
/* f16e828: 3c0c8008 */ lui $t4,0x8008
|
|
/* f16e82c: 8fa90028 */ lw $t1,0x28($sp)
|
|
/* f16e830: 8d8c4814 */ lw $t4,0x4814($t4)
|
|
/* f16e834: 3c0d800b */ lui $t5,0x800b
|
|
/* f16e838: 8dadb5a4 */ lw $t5,-0x4a5c($t5)
|
|
/* f16e83c: 012c0019 */ multu $t1,$t4
|
|
/* f16e840: 00007012 */ mflo $t6
|
|
/* f16e844: 000ec880 */ sll $t9,$t6,0x2
|
|
/* f16e848: 032ec823 */ subu $t9,$t9,$t6
|
|
/* f16e84c: 0019c880 */ sll $t9,$t9,0x2
|
|
/* f16e850: 1000002a */ b .JF0f16e8fc
|
|
/* f16e854: 032d1021 */ addu $v0,$t9,$t5
|
|
.JF0f16e858:
|
|
/* f16e858: 11000021 */ beqz $t0,.JF0f16e8e0
|
|
/* f16e85c: 00000000 */ nop
|
|
/* f16e860: 0540001f */ bltz $t2,.JF0f16e8e0
|
|
/* f16e864: 3c07800b */ lui $a3,0x800b
|
|
/* f16e868: 24e7b5a8 */ addiu $a3,$a3,-19032
|
|
/* f16e86c: 8cef0000 */ lw $t7,0x0($a3)
|
|
/* f16e870: 000a2040 */ sll $a0,$t2,0x1
|
|
/* f16e874: 3c02800b */ lui $v0,0x800b
|
|
/* f16e878: 01e41821 */ addu $v1,$t7,$a0
|
|
/* f16e87c: 90780000 */ lbu $t8,0x0($v1)
|
|
/* f16e880: 330bff3f */ andi $t3,$t8,0xff3f
|
|
/* f16e884: 356c0080 */ ori $t4,$t3,0x80
|
|
/* f16e888: a06c0000 */ sb $t4,0x0($v1)
|
|
/* f16e88c: 8cee0000 */ lw $t6,0x0($a3)
|
|
/* f16e890: 320b3fff */ andi $t3,$s0,0x3fff
|
|
/* f16e894: 01c41821 */ addu $v1,$t6,$a0
|
|
/* f16e898: 90790002 */ lbu $t9,0x2($v1)
|
|
/* f16e89c: 332dff3f */ andi $t5,$t9,0xff3f
|
|
/* f16e8a0: 35af0080 */ ori $t7,$t5,0x80
|
|
/* f16e8a4: a06f0002 */ sb $t7,0x2($v1)
|
|
/* f16e8a8: 8cf80000 */ lw $t8,0x0($a3)
|
|
/* f16e8ac: 03041821 */ addu $v1,$t8,$a0
|
|
/* f16e8b0: 946c0000 */ lhu $t4,0x0($v1)
|
|
/* f16e8b4: 318ec000 */ andi $t6,$t4,0xc000
|
|
/* f16e8b8: 016ec825 */ or $t9,$t3,$t6
|
|
/* f16e8bc: a4790000 */ sh $t9,0x0($v1)
|
|
/* f16e8c0: 8ced0000 */ lw $t5,0x0($a3)
|
|
/* f16e8c4: 01a41821 */ addu $v1,$t5,$a0
|
|
/* f16e8c8: 946f0002 */ lhu $t7,0x2($v1)
|
|
/* f16e8cc: 31f8c000 */ andi $t8,$t7,0xc000
|
|
/* f16e8d0: 01785825 */ or $t3,$t3,$t8
|
|
/* f16e8d4: a46b0002 */ sh $t3,0x2($v1)
|
|
/* f16e8d8: 10000008 */ b .JF0f16e8fc
|
|
/* f16e8dc: 8c42b5a4 */ lw $v0,-0x4a5c($v0)
|
|
.JF0f16e8e0:
|
|
/* f16e8e0: 3c03800a */ lui $v1,0x800a
|
|
/* f16e8e4: 2463d370 */ addiu $v1,$v1,-11408
|
|
/* f16e8e8: 8c6c0000 */ lw $t4,0x0($v1)
|
|
/* f16e8ec: 3c02800b */ lui $v0,0x800b
|
|
/* f16e8f0: 258e0001 */ addiu $t6,$t4,0x1
|
|
/* f16e8f4: ac6e0000 */ sw $t6,0x0($v1)
|
|
/* f16e8f8: 8c42b5a4 */ lw $v0,-0x4a5c($v0)
|
|
.JF0f16e8fc:
|
|
/* f16e8fc: 8fbf001c */ lw $ra,0x1c($sp)
|
|
/* f16e900: 8fb00018 */ lw $s0,0x18($sp)
|
|
/* f16e904: 27bd0030 */ addiu $sp,$sp,0x30
|
|
/* f16e908: 03e00008 */ jr $ra
|
|
/* f16e90c: 00000000 */ nop
|
|
);
|
|
#else
|
|
GLOBAL_ASM(
|
|
glabel func0f16e3fc
|
|
/* f16e3fc: 27bdffc8 */ addiu $sp,$sp,-56
|
|
/* f16e400: afb00018 */ sw $s0,0x18($sp)
|
|
/* f16e404: 308e2000 */ andi $t6,$a0,0x2000
|
|
/* f16e408: 00808025 */ or $s0,$a0,$zero
|
|
/* f16e40c: afbf001c */ sw $ra,0x1c($sp)
|
|
/* f16e410: 240affff */ addiu $t2,$zero,-1
|
|
/* f16e414: 240bffff */ addiu $t3,$zero,-1
|
|
/* f16e418: 11c00002 */ beqz $t6,.L0f16e424
|
|
/* f16e41c: 00004025 */ or $t0,$zero,$zero
|
|
/* f16e420: 24080001 */ addiu $t0,$zero,0x1
|
|
.L0f16e424:
|
|
/* f16e424: 3c0c800b */ lui $t4,%hi(var800aabb8)
|
|
/* f16e428: 8d8cabb8 */ lw $t4,%lo(var800aabb8)($t4)
|
|
/* f16e42c: 00002825 */ or $a1,$zero,$zero
|
|
/* f16e430: 00003825 */ or $a3,$zero,$zero
|
|
/* f16e434: 2409007c */ addiu $t1,$zero,0x7c
|
|
/* f16e438: 01802025 */ or $a0,$t4,$zero
|
|
.L0f16e43c:
|
|
/* f16e43c: 15000006 */ bnez $t0,.L0f16e458
|
|
/* f16e440: 00000000 */ nop
|
|
/* f16e444: 94980000 */ lhu $t8,0x0($a0)
|
|
/* f16e448: 00107843 */ sra $t7,$s0,0x1
|
|
/* f16e44c: 33193fff */ andi $t9,$t8,0x3fff
|
|
/* f16e450: 51f9001f */ beql $t7,$t9,.L0f16e4d0
|
|
/* f16e454: 28a1007c */ slti $at,$a1,0x7c
|
|
.L0f16e458:
|
|
/* f16e458: 1100000b */ beqz $t0,.L0f16e488
|
|
/* f16e45c: 94830000 */ lhu $v1,0x0($a0)
|
|
/* f16e460: 24ae0001 */ addiu $t6,$a1,0x1
|
|
/* f16e464: 29c1007c */ slti $at,$t6,0x7c
|
|
/* f16e468: 10200007 */ beqz $at,.L0f16e488
|
|
/* f16e46c: 00101043 */ sra $v0,$s0,0x1
|
|
/* f16e470: 30783fff */ andi $t8,$v1,0x3fff
|
|
/* f16e474: 54580005 */ bnel $v0,$t8,.L0f16e48c
|
|
/* f16e478: 00031382 */ srl $v0,$v1,0xe
|
|
/* f16e47c: 948f0002 */ lhu $t7,0x2($a0)
|
|
/* f16e480: 31f93fff */ andi $t9,$t7,0x3fff
|
|
/* f16e484: 10590011 */ beq $v0,$t9,.L0f16e4cc
|
|
.L0f16e488:
|
|
/* f16e488: 00031382 */ srl $v0,$v1,0xe
|
|
.L0f16e48c:
|
|
/* f16e48c: 14400002 */ bnez $v0,.L0f16e498
|
|
/* f16e490: 24a60001 */ addiu $a2,$a1,0x1
|
|
/* f16e494: 00a05025 */ or $t2,$a1,$zero
|
|
.L0f16e498:
|
|
/* f16e498: 14400009 */ bnez $v0,.L0f16e4c0
|
|
/* f16e49c: 24e70002 */ addiu $a3,$a3,0x2
|
|
/* f16e4a0: 948e0002 */ lhu $t6,0x2($a0)
|
|
/* f16e4a4: 28c1007c */ slti $at,$a2,0x7c
|
|
/* f16e4a8: 000ec382 */ srl $t8,$t6,0xe
|
|
/* f16e4ac: 57000005 */ bnezl $t8,.L0f16e4c4
|
|
/* f16e4b0: 00c02825 */ or $a1,$a2,$zero
|
|
/* f16e4b4: 50200003 */ beqzl $at,.L0f16e4c4
|
|
/* f16e4b8: 00c02825 */ or $a1,$a2,$zero
|
|
/* f16e4bc: 00a05825 */ or $t3,$a1,$zero
|
|
.L0f16e4c0:
|
|
/* f16e4c0: 00c02825 */ or $a1,$a2,$zero
|
|
.L0f16e4c4:
|
|
/* f16e4c4: 14c9ffdd */ bne $a2,$t1,.L0f16e43c
|
|
/* f16e4c8: 24840002 */ addiu $a0,$a0,0x2
|
|
.L0f16e4cc:
|
|
/* f16e4cc: 28a1007c */ slti $at,$a1,0x7c
|
|
.L0f16e4d0:
|
|
/* f16e4d0: 10200021 */ beqz $at,.L0f16e558
|
|
/* f16e4d4: 00000000 */ nop
|
|
/* f16e4d8: 1500000c */ bnez $t0,.L0f16e50c
|
|
/* f16e4dc: 240d0060 */ addiu $t5,$zero,0x60
|
|
/* f16e4e0: 00ad0019 */ multu $a1,$t5
|
|
/* f16e4e4: 908f0000 */ lbu $t7,0x0($a0)
|
|
/* f16e4e8: 31f9ff3f */ andi $t9,$t7,0xff3f
|
|
/* f16e4ec: 372e0080 */ ori $t6,$t9,0x80
|
|
/* f16e4f0: a08e0000 */ sb $t6,0x0($a0)
|
|
/* f16e4f4: 3c0f800b */ lui $t7,%hi(var800aabb4)
|
|
/* f16e4f8: 8defabb4 */ lw $t7,%lo(var800aabb4)($t7)
|
|
/* f16e4fc: 0000c012 */ mflo $t8
|
|
/* f16e500: 030f1021 */ addu $v0,$t8,$t7
|
|
/* f16e504: 1000006f */ b .L0f16e6c4
|
|
/* f16e508: 8fbf001c */ lw $ra,0x1c($sp)
|
|
.L0f16e50c:
|
|
/* f16e50c: 90990000 */ lbu $t9,0x0($a0)
|
|
/* f16e510: 3c09800b */ lui $t1,%hi(var800aabb8)
|
|
/* f16e514: 2529abb8 */ addiu $t1,$t1,%lo(var800aabb8)
|
|
/* f16e518: 332eff3f */ andi $t6,$t9,0xff3f
|
|
/* f16e51c: 35d80080 */ ori $t8,$t6,0x80
|
|
/* f16e520: a0980000 */ sb $t8,0x0($a0)
|
|
/* f16e524: 8d2f0000 */ lw $t7,0x0($t1)
|
|
/* f16e528: 240d0060 */ addiu $t5,$zero,0x60
|
|
/* f16e52c: 00ad0019 */ multu $a1,$t5
|
|
/* f16e530: 01e72021 */ addu $a0,$t7,$a3
|
|
/* f16e534: 90990002 */ lbu $t9,0x2($a0)
|
|
/* f16e538: 332eff3f */ andi $t6,$t9,0xff3f
|
|
/* f16e53c: 35d80080 */ ori $t8,$t6,0x80
|
|
/* f16e540: a0980002 */ sb $t8,0x2($a0)
|
|
/* f16e544: 3c19800b */ lui $t9,%hi(var800aabb4)
|
|
/* f16e548: 8f39abb4 */ lw $t9,%lo(var800aabb4)($t9)
|
|
/* f16e54c: 00007812 */ mflo $t7
|
|
/* f16e550: 1000005b */ b .L0f16e6c0
|
|
/* f16e554: 01f91021 */ addu $v0,$t7,$t9
|
|
.L0f16e558:
|
|
/* f16e558: 15000025 */ bnez $t0,.L0f16e5f0
|
|
/* f16e55c: 00000000 */ nop
|
|
/* f16e560: 05400023 */ bltz $t2,.L0f16e5f0
|
|
/* f16e564: 240d0060 */ addiu $t5,$zero,0x60
|
|
/* f16e568: 014d0019 */ multu $t2,$t5
|
|
/* f16e56c: 000a3840 */ sll $a3,$t2,0x1
|
|
/* f16e570: 01871821 */ addu $v1,$t4,$a3
|
|
/* f16e574: 906e0000 */ lbu $t6,0x0($v1)
|
|
/* f16e578: 3c09800b */ lui $t1,%hi(var800aabb8)
|
|
/* f16e57c: 2529abb8 */ addiu $t1,$t1,%lo(var800aabb8)
|
|
/* f16e580: 31d8ff3f */ andi $t8,$t6,0xff3f
|
|
/* f16e584: 370f0080 */ ori $t7,$t8,0x80
|
|
/* f16e588: a06f0000 */ sb $t7,0x0($v1)
|
|
/* f16e58c: 8d390000 */ lw $t9,0x0($t1)
|
|
/* f16e590: 00004012 */ mflo $t0
|
|
/* f16e594: 00101043 */ sra $v0,$s0,0x1
|
|
/* f16e598: 03271821 */ addu $v1,$t9,$a3
|
|
/* f16e59c: 004d0019 */ multu $v0,$t5
|
|
/* f16e5a0: 946f0000 */ lhu $t7,0x0($v1)
|
|
/* f16e5a4: 30583fff */ andi $t8,$v0,0x3fff
|
|
/* f16e5a8: 24060060 */ addiu $a2,$zero,0x60
|
|
/* f16e5ac: 31f9c000 */ andi $t9,$t7,0xc000
|
|
/* f16e5b0: 03197025 */ or $t6,$t8,$t9
|
|
/* f16e5b4: a46e0000 */ sh $t6,0x0($v1)
|
|
/* f16e5b8: 3c0f800b */ lui $t7,%hi(var800aabb4)
|
|
/* f16e5bc: 8defabb4 */ lw $t7,%lo(var800aabb4)($t7)
|
|
/* f16e5c0: 3c190019 */ lui $t9,%hi(_jpndata1)
|
|
/* f16e5c4: 27394440 */ addiu $t9,$t9,%lo(_jpndata1)
|
|
/* f16e5c8: 0000c012 */ mflo $t8
|
|
/* f16e5cc: 03192821 */ addu $a1,$t8,$t9
|
|
/* f16e5d0: afa80024 */ sw $t0,0x24($sp)
|
|
/* f16e5d4: 0c003504 */ jal dmaExec
|
|
/* f16e5d8: 010f2021 */ addu $a0,$t0,$t7
|
|
/* f16e5dc: 3c0e800b */ lui $t6,%hi(var800aabb4)
|
|
/* f16e5e0: 8fa80024 */ lw $t0,0x24($sp)
|
|
/* f16e5e4: 8dceabb4 */ lw $t6,%lo(var800aabb4)($t6)
|
|
/* f16e5e8: 10000035 */ b .L0f16e6c0
|
|
/* f16e5ec: 010e1021 */ addu $v0,$t0,$t6
|
|
.L0f16e5f0:
|
|
/* f16e5f0: 11000032 */ beqz $t0,.L0f16e6bc
|
|
/* f16e5f4: 3c02800b */ lui $v0,%hi(var800aabb4)
|
|
/* f16e5f8: 05600030 */ bltz $t3,.L0f16e6bc
|
|
/* f16e5fc: 000b1840 */ sll $v1,$t3,0x1
|
|
/* f16e600: 01831021 */ addu $v0,$t4,$v1
|
|
/* f16e604: 904f0000 */ lbu $t7,0x0($v0)
|
|
/* f16e608: 3c09800b */ lui $t1,%hi(var800aabb8)
|
|
/* f16e60c: 2529abb8 */ addiu $t1,$t1,%lo(var800aabb8)
|
|
/* f16e610: 31f8ff3f */ andi $t8,$t7,0xff3f
|
|
/* f16e614: 37190080 */ ori $t9,$t8,0x80
|
|
/* f16e618: a0590000 */ sb $t9,0x0($v0)
|
|
/* f16e61c: 8d2e0000 */ lw $t6,0x0($t1)
|
|
/* f16e620: 240d0060 */ addiu $t5,$zero,0x60
|
|
/* f16e624: 016d0019 */ multu $t3,$t5
|
|
/* f16e628: 01c31021 */ addu $v0,$t6,$v1
|
|
/* f16e62c: 904f0002 */ lbu $t7,0x2($v0)
|
|
/* f16e630: 24060080 */ addiu $a2,$zero,0x80
|
|
/* f16e634: 31f8ff3f */ andi $t8,$t7,0xff3f
|
|
/* f16e638: 37190080 */ ori $t9,$t8,0x80
|
|
/* f16e63c: a0590002 */ sb $t9,0x2($v0)
|
|
/* f16e640: 8d2e0000 */ lw $t6,0x0($t1)
|
|
/* f16e644: 00107843 */ sra $t7,$s0,0x1
|
|
/* f16e648: 31e73fff */ andi $a3,$t7,0x3fff
|
|
/* f16e64c: 01c31021 */ addu $v0,$t6,$v1
|
|
/* f16e650: 94590000 */ lhu $t9,0x0($v0)
|
|
/* f16e654: 00004012 */ mflo $t0
|
|
/* f16e658: 332ec000 */ andi $t6,$t9,0xc000
|
|
/* f16e65c: 00ee7825 */ or $t7,$a3,$t6
|
|
/* f16e660: a44f0000 */ sh $t7,0x0($v0)
|
|
/* f16e664: 8d380000 */ lw $t8,0x0($t1)
|
|
/* f16e668: 03031021 */ addu $v0,$t8,$v1
|
|
/* f16e66c: 94590002 */ lhu $t9,0x2($v0)
|
|
/* f16e670: 3c18800b */ lui $t8,%hi(var800aabb4)
|
|
/* f16e674: 332ec000 */ andi $t6,$t9,0xc000
|
|
/* f16e678: 00ee7825 */ or $t7,$a3,$t6
|
|
/* f16e67c: a44f0002 */ sh $t7,0x2($v0)
|
|
/* f16e680: 8f18abb4 */ lw $t8,%lo(var800aabb4)($t8)
|
|
/* f16e684: 32191fff */ andi $t9,$s0,0x1fff
|
|
/* f16e688: 00197043 */ sra $t6,$t9,0x1
|
|
/* f16e68c: 01182021 */ addu $a0,$t0,$t8
|
|
/* f16e690: 3c18001a */ lui $t8,%hi(_jpndata2)
|
|
/* f16e694: 2718fb40 */ addiu $t8,$t8,%lo(_jpndata2)
|
|
/* f16e698: 000e79c0 */ sll $t7,$t6,0x7
|
|
/* f16e69c: 01f82821 */ addu $a1,$t7,$t8
|
|
/* f16e6a0: 0c003504 */ jal dmaExec
|
|
/* f16e6a4: afa80024 */ sw $t0,0x24($sp)
|
|
/* f16e6a8: 3c19800b */ lui $t9,%hi(var800aabb4)
|
|
/* f16e6ac: 8fa80024 */ lw $t0,0x24($sp)
|
|
/* f16e6b0: 8f39abb4 */ lw $t9,%lo(var800aabb4)($t9)
|
|
/* f16e6b4: 10000002 */ b .L0f16e6c0
|
|
/* f16e6b8: 01191021 */ addu $v0,$t0,$t9
|
|
.L0f16e6bc:
|
|
/* f16e6bc: 8c42abb4 */ lw $v0,%lo(var800aabb4)($v0)
|
|
.L0f16e6c0:
|
|
/* f16e6c0: 8fbf001c */ lw $ra,0x1c($sp)
|
|
.L0f16e6c4:
|
|
/* f16e6c4: 8fb00018 */ lw $s0,0x18($sp)
|
|
/* f16e6c8: 27bd0038 */ addiu $sp,$sp,0x38
|
|
/* f16e6cc: 03e00008 */ jr $ra
|
|
/* f16e6d0: 00000000 */ nop
|
|
);
|
|
#endif
|
|
|
|
/**
|
|
* NTSC only supports English, while PAL supports 4 languages and JPN has its
|
|
* own. Each English file is followed immediately by the other translations.
|
|
*/
|
|
s32 langGetFileNumOffset(void)
|
|
{
|
|
#if PAL
|
|
s32 offset = g_LanguageId;
|
|
return offset + 2;
|
|
#else
|
|
s32 offset = 0;
|
|
|
|
if (g_Jpn) {
|
|
offset = 1;
|
|
}
|
|
|
|
return offset;
|
|
#endif
|
|
}
|
|
|
|
s32 langGetFileId(s32 bank)
|
|
{
|
|
return g_LangFiles[bank] + langGetFileNumOffset();
|
|
}
|
|
|
|
#if VERSION >= VERSION_JPN_FINAL
|
|
GLOBAL_ASM(
|
|
glabel langSetBankSimple
|
|
/* f16e964: 27bdffe0 */ addiu $sp,$sp,-32
|
|
/* f16e968: afbf0014 */ sw $ra,0x14($sp)
|
|
/* f16e96c: 0fc5ba4c */ jal langGetFileId
|
|
/* f16e970: afa40020 */ sw $a0,0x20($sp)
|
|
/* f16e974: 0fc59d19 */ jal fileGetInflatedLength
|
|
/* f16e978: 00402025 */ move $a0,$v0
|
|
/* f16e97c: 3c038008 */ lui $v1,0x8008
|
|
/* f16e980: 8c634774 */ lw $v1,0x4774($v1)
|
|
/* f16e984: 3c058008 */ lui $a1,0x8008
|
|
/* f16e988: 8ca5477c */ lw $a1,0x477c($a1)
|
|
/* f16e98c: 3c068008 */ lui $a2,0x8008
|
|
/* f16e990: 8cc64778 */ lw $a2,0x4778($a2)
|
|
/* f16e994: 00627021 */ addu $t6,$v1,$v0
|
|
/* f16e998: 01c57821 */ addu $t7,$t6,$a1
|
|
/* f16e99c: 01e6c023 */ subu $t8,$t7,$a2
|
|
/* f16e9a0: 0700001e */ bltz $t8,.JF0f16ea1c
|
|
/* f16e9a4: afa2001c */ sw $v0,0x1c($sp)
|
|
/* f16e9a8: 0065c821 */ addu $t9,$v1,$a1
|
|
/* f16e9ac: 03263823 */ subu $a3,$t9,$a2
|
|
/* f16e9b0: 04e10003 */ bgez $a3,.JF0f16e9c0
|
|
/* f16e9b4: 00074143 */ sra $t0,$a3,0x5
|
|
/* f16e9b8: 24e1001f */ addiu $at,$a3,0x1f
|
|
/* f16e9bc: 00014143 */ sra $t0,$at,0x5
|
|
.JF0f16e9c0:
|
|
/* f16e9c0: 00084940 */ sll $t1,$t0,0x5
|
|
/* f16e9c4: afa90018 */ sw $t1,0x18($sp)
|
|
/* f16e9c8: 0fc5ba4c */ jal langGetFileId
|
|
/* f16e9cc: 8fa40020 */ lw $a0,0x20($sp)
|
|
/* f16e9d0: 3c068008 */ lui $a2,0x8008
|
|
/* f16e9d4: 8cc64778 */ lw $a2,0x4778($a2)
|
|
/* f16e9d8: 8fa70018 */ lw $a3,0x18($sp)
|
|
/* f16e9dc: 00402025 */ move $a0,$v0
|
|
/* f16e9e0: 0fc59d84 */ jal func0f167200
|
|
/* f16e9e4: 24050022 */ li $a1,0x22
|
|
/* f16e9e8: 8faa0020 */ lw $t2,0x20($sp)
|
|
/* f16e9ec: 3c0c8008 */ lui $t4,0x8008
|
|
/* f16e9f0: 8d8c4778 */ lw $t4,0x4778($t4)
|
|
/* f16e9f4: 8fad001c */ lw $t5,0x1c($sp)
|
|
/* f16e9f8: 3c01800b */ lui $at,0x800b
|
|
/* f16e9fc: 000a5880 */ sll $t3,$t2,0x2
|
|
/* f16ea00: 002b0821 */ addu $at,$at,$t3
|
|
/* f16ea04: ac22b490 */ sw $v0,-0x4b70($at)
|
|
/* f16ea08: 0fc5dc84 */ jal align32
|
|
/* f16ea0c: 018d2021 */ addu $a0,$t4,$t5
|
|
/* f16ea10: 3c018008 */ lui $at,0x8008
|
|
/* f16ea14: 10000003 */ b .JF0f16ea24
|
|
/* f16ea18: ac224778 */ sw $v0,0x4778($at)
|
|
.JF0f16ea1c:
|
|
/* f16ea1c: 240e0045 */ li $t6,0x45
|
|
/* f16ea20: a00e0000 */ sb $t6,0x0($zero)
|
|
.JF0f16ea24:
|
|
/* f16ea24: 8fbf0014 */ lw $ra,0x14($sp)
|
|
/* f16ea28: 27bd0020 */ addiu $sp,$sp,0x20
|
|
/* f16ea2c: 03e00008 */ jr $ra
|
|
/* f16ea30: 00000000 */ nop
|
|
);
|
|
#elif VERSION >= VERSION_PAL_FINAL
|
|
GLOBAL_ASM(
|
|
glabel langSetBankSimple
|
|
/* f16f578: 27bdffe0 */ addiu $sp,$sp,-32
|
|
/* f16f57c: afbf0014 */ sw $ra,0x14($sp)
|
|
/* f16f580: 0fc5bd51 */ jal langGetFileId
|
|
/* f16f584: afa40020 */ sw $a0,0x20($sp)
|
|
/* f16f588: 0fc59ff5 */ jal fileGetInflatedLength
|
|
/* f16f58c: 00402025 */ move $a0,$v0
|
|
/* f16f590: 3c038008 */ lui $v1,0x8008
|
|
/* f16f594: 8c634664 */ lw $v1,0x4664($v1)
|
|
/* f16f598: 3c058008 */ lui $a1,0x8008
|
|
/* f16f59c: 8ca5466c */ lw $a1,0x466c($a1)
|
|
/* f16f5a0: 3c068008 */ lui $a2,0x8008
|
|
/* f16f5a4: 8cc64668 */ lw $a2,0x4668($a2)
|
|
/* f16f5a8: 00627021 */ addu $t6,$v1,$v0
|
|
/* f16f5ac: 01c57821 */ addu $t7,$t6,$a1
|
|
/* f16f5b0: 01e6c023 */ subu $t8,$t7,$a2
|
|
/* f16f5b4: 0700001e */ bltz $t8,.PF0f16f630
|
|
/* f16f5b8: afa2001c */ sw $v0,0x1c($sp)
|
|
/* f16f5bc: 0065c821 */ addu $t9,$v1,$a1
|
|
/* f16f5c0: 03263823 */ subu $a3,$t9,$a2
|
|
/* f16f5c4: 04e10003 */ bgez $a3,.PF0f16f5d4
|
|
/* f16f5c8: 00074143 */ sra $t0,$a3,0x5
|
|
/* f16f5cc: 24e1001f */ addiu $at,$a3,0x1f
|
|
/* f16f5d0: 00014143 */ sra $t0,$at,0x5
|
|
.PF0f16f5d4:
|
|
/* f16f5d4: 00084940 */ sll $t1,$t0,0x5
|
|
/* f16f5d8: afa90018 */ sw $t1,0x18($sp)
|
|
/* f16f5dc: 0fc5bd51 */ jal langGetFileId
|
|
/* f16f5e0: 8fa40020 */ lw $a0,0x20($sp)
|
|
/* f16f5e4: 3c068008 */ lui $a2,0x8008
|
|
/* f16f5e8: 8cc64668 */ lw $a2,0x4668($a2)
|
|
/* f16f5ec: 8fa70018 */ lw $a3,0x18($sp)
|
|
/* f16f5f0: 00402025 */ move $a0,$v0
|
|
/* f16f5f4: 0fc5a060 */ jal func0f167200
|
|
/* f16f5f8: 24050022 */ li $a1,0x22
|
|
/* f16f5fc: 8faa0020 */ lw $t2,0x20($sp)
|
|
/* f16f600: 3c0c8008 */ lui $t4,0x8008
|
|
/* f16f604: 8d8c4668 */ lw $t4,0x4668($t4)
|
|
/* f16f608: 8fad001c */ lw $t5,0x1c($sp)
|
|
/* f16f60c: 3c01800b */ lui $at,0x800b
|
|
/* f16f610: 000a5880 */ sll $t3,$t2,0x2
|
|
/* f16f614: 002b0821 */ addu $at,$at,$t3
|
|
/* f16f618: ac22b040 */ sw $v0,-0x4fc0($at)
|
|
/* f16f61c: 0fc5df7c */ jal align32
|
|
/* f16f620: 018d2021 */ addu $a0,$t4,$t5
|
|
/* f16f624: 3c018008 */ lui $at,0x8008
|
|
/* f16f628: 10000003 */ b .PF0f16f638
|
|
/* f16f62c: ac224668 */ sw $v0,0x4668($at)
|
|
.PF0f16f630:
|
|
/* f16f630: 240e0045 */ li $t6,0x45
|
|
/* f16f634: a00e0000 */ sb $t6,0x0($zero)
|
|
.PF0f16f638:
|
|
/* f16f638: 8fbf0014 */ lw $ra,0x14($sp)
|
|
/* f16f63c: 27bd0020 */ addiu $sp,$sp,0x20
|
|
/* f16f640: 03e00008 */ jr $ra
|
|
/* f16f644: 00000000 */ nop
|
|
);
|
|
#elif VERSION >= VERSION_PAL_BETA
|
|
GLOBAL_ASM(
|
|
glabel langSetBankSimple
|
|
/* f170078: 27bdffe0 */ addiu $sp,$sp,-32
|
|
/* f17007c: afbf0014 */ sw $ra,0x14($sp)
|
|
/* f170080: 0fc5c011 */ jal langGetFileId
|
|
/* f170084: afa40020 */ sw $a0,0x20($sp)
|
|
/* f170088: 0fc5a1b1 */ jal fileGetInflatedLength
|
|
/* f17008c: 00402025 */ move $a0,$v0
|
|
/* f170090: 3c038008 */ lui $v1,0x8008
|
|
/* f170094: 8c6365f4 */ lw $v1,0x65f4($v1)
|
|
/* f170098: 3c058008 */ lui $a1,0x8008
|
|
/* f17009c: 8ca565fc */ lw $a1,0x65fc($a1)
|
|
/* f1700a0: 3c068008 */ lui $a2,0x8008
|
|
/* f1700a4: 8cc665f8 */ lw $a2,0x65f8($a2)
|
|
/* f1700a8: 00627021 */ addu $t6,$v1,$v0
|
|
/* f1700ac: 01c57821 */ addu $t7,$t6,$a1
|
|
/* f1700b0: 01e6c023 */ subu $t8,$t7,$a2
|
|
/* f1700b4: 0700001e */ bltz $t8,.PB0f170130
|
|
/* f1700b8: afa2001c */ sw $v0,0x1c($sp)
|
|
/* f1700bc: 0065c821 */ addu $t9,$v1,$a1
|
|
/* f1700c0: 03263823 */ subu $a3,$t9,$a2
|
|
/* f1700c4: 04e10003 */ bgez $a3,.PB0f1700d4
|
|
/* f1700c8: 00074143 */ sra $t0,$a3,0x5
|
|
/* f1700cc: 24e1001f */ addiu $at,$a3,0x1f
|
|
/* f1700d0: 00014143 */ sra $t0,$at,0x5
|
|
.PB0f1700d4:
|
|
/* f1700d4: 00084940 */ sll $t1,$t0,0x5
|
|
/* f1700d8: afa90018 */ sw $t1,0x18($sp)
|
|
/* f1700dc: 0fc5c011 */ jal langGetFileId
|
|
/* f1700e0: 8fa40020 */ lw $a0,0x20($sp)
|
|
/* f1700e4: 3c068008 */ lui $a2,0x8008
|
|
/* f1700e8: 8cc665f8 */ lw $a2,0x65f8($a2)
|
|
/* f1700ec: 8fa70018 */ lw $a3,0x18($sp)
|
|
/* f1700f0: 00402025 */ move $a0,$v0
|
|
/* f1700f4: 0fc5a21c */ jal func0f167200
|
|
/* f1700f8: 24050022 */ li $a1,0x22
|
|
/* f1700fc: 8faa0020 */ lw $t2,0x20($sp)
|
|
/* f170100: 3c0c8008 */ lui $t4,0x8008
|
|
/* f170104: 8d8c65f8 */ lw $t4,0x65f8($t4)
|
|
/* f170108: 8fad001c */ lw $t5,0x1c($sp)
|
|
/* f17010c: 3c01800b */ lui $at,0x800b
|
|
/* f170110: 000a5880 */ sll $t3,$t2,0x2
|
|
/* f170114: 002b0821 */ addu $at,$at,$t3
|
|
/* f170118: ac22f0c0 */ sw $v0,-0xf40($at)
|
|
/* f17011c: 0fc5e23c */ jal align32
|
|
/* f170120: 018d2021 */ addu $a0,$t4,$t5
|
|
/* f170124: 3c018008 */ lui $at,0x8008
|
|
/* f170128: 10000003 */ b .PB0f170138
|
|
/* f17012c: ac2265f8 */ sw $v0,0x65f8($at)
|
|
.PB0f170130:
|
|
/* f170130: 240e0045 */ li $t6,0x45
|
|
/* f170134: a00e0000 */ sb $t6,0x0($zero)
|
|
.PB0f170138:
|
|
/* f170138: 8fbf0014 */ lw $ra,0x14($sp)
|
|
/* f17013c: 27bd0020 */ addiu $sp,$sp,0x20
|
|
/* f170140: 03e00008 */ jr $ra
|
|
/* f170144: 00000000 */ nop
|
|
);
|
|
#else
|
|
void langSetBankSimple(s32 bank)
|
|
{
|
|
s32 file_id = langGetFileId(bank);
|
|
g_LangBanks[bank] = func0f1670fc(file_id, 0x22);
|
|
}
|
|
#endif
|
|
|
|
void langSetBank(s32 bank, u8 *arg1, s32 arg2)
|
|
{
|
|
s32 file_id = langGetFileId(bank);
|
|
g_LangBanks[bank] = func0f167200(file_id, 0x22, arg1, arg2);
|
|
}
|
|
|
|
void langClearBank(s32 bank)
|
|
{
|
|
g_LangBanks[bank] = NULL;
|
|
}
|
|
|
|
/**
|
|
* Resolve a text ID to a string.
|
|
*
|
|
* g_LangBanks is an array of pointers to language file data in RAM. Many of
|
|
* those pointers will be NULL because only the necessary language files are
|
|
* loaded at any given time.
|
|
*
|
|
* The language file data consists of a variable-length array of offsets into
|
|
* the file. Not to be confused with pointers.
|
|
*/
|
|
char *langGet(s32 textid)
|
|
{
|
|
s32 bankindex = textid >> 9;
|
|
s32 textindex = textid & 0x1ff;
|
|
u32 *bank = g_LangBanks[bankindex];
|
|
u32 addr;
|
|
|
|
if (bank && bank[textindex]) {
|
|
addr = (u32)bank + bank[textindex];
|
|
} else {
|
|
addr = 0;
|
|
}
|
|
|
|
return (char *)addr;
|
|
}
|
|
|
|
#if VERSION >= VERSION_JPN_FINAL
|
|
GLOBAL_ASM(
|
|
glabel func0f16f6ecpf
|
|
/* f16ead8: 27bdffd8 */ addiu $sp,$sp,-40
|
|
/* f16eadc: afbf0024 */ sw $ra,0x24($sp)
|
|
/* f16eae0: 3c048008 */ lui $a0,0x8008
|
|
/* f16eae4: afb20020 */ sw $s2,0x20($sp)
|
|
/* f16eae8: afb1001c */ sw $s1,0x1c($sp)
|
|
/* f16eaec: afb00018 */ sw $s0,0x18($sp)
|
|
/* f16eaf0: 0fc5dc84 */ jal align32
|
|
/* f16eaf4: 8c844774 */ lw $a0,0x4774($a0)
|
|
/* f16eaf8: 3c018008 */ lui $at,0x8008
|
|
/* f16eafc: 3c11800b */ lui $s1,0x800b
|
|
/* f16eb00: ac224778 */ sw $v0,0x4778($at)
|
|
/* f16eb04: 2631b490 */ addiu $s1,$s1,-19312
|
|
/* f16eb08: 00008025 */ move $s0,$zero
|
|
/* f16eb0c: 24120045 */ li $s2,0x45
|
|
.JF0f16eb10:
|
|
/* f16eb10: 8e2e0000 */ lw $t6,0x0($s1)
|
|
/* f16eb14: 51c00004 */ beqzl $t6,.JF0f16eb28
|
|
/* f16eb18: 26100001 */ addiu $s0,$s0,0x1
|
|
/* f16eb1c: 0fc5ba59 */ jal langSetBankSimple
|
|
/* f16eb20: 02002025 */ move $a0,$s0
|
|
/* f16eb24: 26100001 */ addiu $s0,$s0,0x1
|
|
.JF0f16eb28:
|
|
/* f16eb28: 1612fff9 */ bne $s0,$s2,.JF0f16eb10
|
|
/* f16eb2c: 26310004 */ addiu $s1,$s1,0x4
|
|
/* f16eb30: 8fbf0024 */ lw $ra,0x24($sp)
|
|
/* f16eb34: 8fb00018 */ lw $s0,0x18($sp)
|
|
/* f16eb38: 8fb1001c */ lw $s1,0x1c($sp)
|
|
/* f16eb3c: 8fb20020 */ lw $s2,0x20($sp)
|
|
/* f16eb40: 03e00008 */ jr $ra
|
|
/* f16eb44: 27bd0028 */ addiu $sp,$sp,0x28
|
|
);
|
|
#elif VERSION >= VERSION_PAL_FINAL
|
|
GLOBAL_ASM(
|
|
glabel func0f16f6ecpf
|
|
/* f16f6ec: 27bdffd8 */ addiu $sp,$sp,-40
|
|
/* f16f6f0: afbf0024 */ sw $ra,0x24($sp)
|
|
/* f16f6f4: 3c048008 */ lui $a0,0x8008
|
|
/* f16f6f8: afb20020 */ sw $s2,0x20($sp)
|
|
/* f16f6fc: afb1001c */ sw $s1,0x1c($sp)
|
|
/* f16f700: afb00018 */ sw $s0,0x18($sp)
|
|
/* f16f704: 0fc5df7c */ jal align32
|
|
/* f16f708: 8c844664 */ lw $a0,0x4664($a0)
|
|
/* f16f70c: 3c018008 */ lui $at,0x8008
|
|
/* f16f710: 3c11800b */ lui $s1,0x800b
|
|
/* f16f714: ac224668 */ sw $v0,0x4668($at)
|
|
/* f16f718: 2631b040 */ addiu $s1,$s1,-20416
|
|
/* f16f71c: 00008025 */ move $s0,$zero
|
|
/* f16f720: 24120045 */ li $s2,0x45
|
|
.PF0f16f724:
|
|
/* f16f724: 8e2e0000 */ lw $t6,0x0($s1)
|
|
/* f16f728: 51c00004 */ beqzl $t6,.PF0f16f73c
|
|
/* f16f72c: 26100001 */ addiu $s0,$s0,0x1
|
|
/* f16f730: 0fc5bd5e */ jal langSetBankSimple
|
|
/* f16f734: 02002025 */ move $a0,$s0
|
|
/* f16f738: 26100001 */ addiu $s0,$s0,0x1
|
|
.PF0f16f73c:
|
|
/* f16f73c: 1612fff9 */ bne $s0,$s2,.PF0f16f724
|
|
/* f16f740: 26310004 */ addiu $s1,$s1,0x4
|
|
/* f16f744: 8fbf0024 */ lw $ra,0x24($sp)
|
|
/* f16f748: 8fb00018 */ lw $s0,0x18($sp)
|
|
/* f16f74c: 8fb1001c */ lw $s1,0x1c($sp)
|
|
/* f16f750: 8fb20020 */ lw $s2,0x20($sp)
|
|
/* f16f754: 03e00008 */ jr $ra
|
|
/* f16f758: 27bd0028 */ addiu $sp,$sp,0x28
|
|
);
|
|
#elif VERSION >= VERSION_PAL_BETA
|
|
GLOBAL_ASM(
|
|
glabel func0f16f6ecpf
|
|
/* f1701ec: 27bdffd8 */ addiu $sp,$sp,-40
|
|
/* f1701f0: afbf0024 */ sw $ra,0x24($sp)
|
|
/* f1701f4: 3c048008 */ lui $a0,0x8008
|
|
/* f1701f8: afb20020 */ sw $s2,0x20($sp)
|
|
/* f1701fc: afb1001c */ sw $s1,0x1c($sp)
|
|
/* f170200: afb00018 */ sw $s0,0x18($sp)
|
|
/* f170204: 0fc5e23c */ jal align32
|
|
/* f170208: 8c8465f4 */ lw $a0,0x65f4($a0)
|
|
/* f17020c: 3c018008 */ lui $at,0x8008
|
|
/* f170210: 3c11800b */ lui $s1,0x800b
|
|
/* f170214: ac2265f8 */ sw $v0,0x65f8($at)
|
|
/* f170218: 2631f0c0 */ addiu $s1,$s1,-3904
|
|
/* f17021c: 00008025 */ move $s0,$zero
|
|
/* f170220: 24120045 */ li $s2,0x45
|
|
.PB0f170224:
|
|
/* f170224: 8e2e0000 */ lw $t6,0x0($s1)
|
|
/* f170228: 51c00004 */ beqzl $t6,.PB0f17023c
|
|
/* f17022c: 26100001 */ addiu $s0,$s0,0x1
|
|
/* f170230: 0fc5c01e */ jal langSetBankSimple
|
|
/* f170234: 02002025 */ move $a0,$s0
|
|
/* f170238: 26100001 */ addiu $s0,$s0,0x1
|
|
.PB0f17023c:
|
|
/* f17023c: 1612fff9 */ bne $s0,$s2,.PB0f170224
|
|
/* f170240: 26310004 */ addiu $s1,$s1,0x4
|
|
/* f170244: 8fbf0024 */ lw $ra,0x24($sp)
|
|
/* f170248: 8fb00018 */ lw $s0,0x18($sp)
|
|
/* f17024c: 8fb1001c */ lw $s1,0x1c($sp)
|
|
/* f170250: 8fb20020 */ lw $s2,0x20($sp)
|
|
/* f170254: 03e00008 */ jr $ra
|
|
/* f170258: 27bd0028 */ addiu $sp,$sp,0x28
|
|
);
|
|
#endif
|
|
|
|
#if VERSION >= VERSION_JPN_FINAL
|
|
GLOBAL_ASM(
|
|
glabel func0f16f75c
|
|
.late_rodata
|
|
glabel var7f1b9080pf
|
|
.word func0f16f75c+0x58
|
|
.word func0f16f75c+0x64
|
|
.word func0f16f75c+0x74
|
|
.word func0f16f75c+0x84
|
|
.word func0f16f75c+0x94
|
|
.word func0f16f75c+0xa4
|
|
.text
|
|
/* f16eb48: 3c0e800b */ lui $t6,0x800b
|
|
/* f16eb4c: 8dceb53c */ lw $t6,-0x4ac4($t6)
|
|
/* f16eb50: 27bdffe0 */ addiu $sp,$sp,-32
|
|
/* f16eb54: afbf0014 */ sw $ra,0x14($sp)
|
|
/* f16eb58: afa40020 */ sw $a0,0x20($sp)
|
|
/* f16eb5c: 11c00002 */ beqz $t6,.JF0f16eb68
|
|
/* f16eb60: 00001025 */ move $v0,$zero
|
|
/* f16eb64: 24020001 */ li $v0,0x1
|
|
.JF0f16eb68:
|
|
/* f16eb68: 10400004 */ beqz $v0,.JF0f16eb7c
|
|
/* f16eb6c: 27a4001f */ addiu $a0,$sp,0x1f
|
|
/* f16eb70: 0fc622a3 */ jal mpGetTeamsWithDefaultName
|
|
/* f16eb74: afa20018 */ sw $v0,0x18($sp)
|
|
/* f16eb78: 8fa20018 */ lw $v0,0x18($sp)
|
|
.JF0f16eb7c:
|
|
/* f16eb7c: 8faf0020 */ lw $t7,0x20($sp)
|
|
/* f16eb80: 2de10006 */ sltiu $at,$t7,0x6
|
|
/* f16eb84: 1020001c */ beqz $at,.JF0f16ebf8
|
|
/* f16eb88: 000f7880 */ sll $t7,$t7,0x2
|
|
/* f16eb8c: 3c017f1c */ lui $at,0x7f1c
|
|
/* f16eb90: 002f0821 */ addu $at,$at,$t7
|
|
/* f16eb94: 8c2f8980 */ lw $t7,-0x7680($at)
|
|
/* f16eb98: 01e00008 */ jr $t7
|
|
/* f16eb9c: 00000000 */ nop
|
|
/* f16eba0: 3c018008 */ lui $at,0x8008
|
|
/* f16eba4: 10000014 */ b .JF0f16ebf8
|
|
/* f16eba8: ac204780 */ sw $zero,0x4780($at)
|
|
/* f16ebac: 24180002 */ li $t8,0x2
|
|
/* f16ebb0: 3c018008 */ lui $at,0x8008
|
|
/* f16ebb4: 10000010 */ b .JF0f16ebf8
|
|
/* f16ebb8: ac384780 */ sw $t8,0x4780($at)
|
|
/* f16ebbc: 24190001 */ li $t9,0x1
|
|
/* f16ebc0: 3c018008 */ lui $at,0x8008
|
|
/* f16ebc4: 1000000c */ b .JF0f16ebf8
|
|
/* f16ebc8: ac394780 */ sw $t9,0x4780($at)
|
|
/* f16ebcc: 24080004 */ li $t0,0x4
|
|
/* f16ebd0: 3c018008 */ lui $at,0x8008
|
|
/* f16ebd4: 10000008 */ b .JF0f16ebf8
|
|
/* f16ebd8: ac284780 */ sw $t0,0x4780($at)
|
|
/* f16ebdc: 24090003 */ li $t1,0x3
|
|
/* f16ebe0: 3c018008 */ lui $at,0x8008
|
|
/* f16ebe4: 10000004 */ b .JF0f16ebf8
|
|
/* f16ebe8: ac294780 */ sw $t1,0x4780($at)
|
|
/* f16ebec: 240afffe */ li $t2,-2
|
|
/* f16ebf0: 3c018008 */ lui $at,0x8008
|
|
/* f16ebf4: ac2a4780 */ sw $t2,0x4780($at)
|
|
.JF0f16ebf8:
|
|
/* f16ebf8: 0fc5bab6 */ jal func0f16f6ecpf
|
|
/* f16ebfc: afa20018 */ sw $v0,0x18($sp)
|
|
/* f16ec00: 8fa20018 */ lw $v0,0x18($sp)
|
|
/* f16ec04: 50400004 */ beqzl $v0,.JF0f16ec18
|
|
/* f16ec08: 8fbf0014 */ lw $ra,0x14($sp)
|
|
/* f16ec0c: 0fc622c5 */ jal mpSetTeamNamesToDefault
|
|
/* f16ec10: 93a4001f */ lbu $a0,0x1f($sp)
|
|
/* f16ec14: 8fbf0014 */ lw $ra,0x14($sp)
|
|
.JF0f16ec18:
|
|
/* f16ec18: 27bd0020 */ addiu $sp,$sp,0x20
|
|
/* f16ec1c: 03e00008 */ jr $ra
|
|
/* f16ec20: 00000000 */ nop
|
|
);
|
|
#elif VERSION >= VERSION_PAL_FINAL
|
|
GLOBAL_ASM(
|
|
glabel func0f16f75c
|
|
.late_rodata
|
|
glabel var7f1b9080pf
|
|
.word func0f16f75c+0x58
|
|
.word func0f16f75c+0x64
|
|
.word func0f16f75c+0x74
|
|
.word func0f16f75c+0x84
|
|
.word func0f16f75c+0x94
|
|
.word func0f16f75c+0xa4
|
|
.text
|
|
/* f16f75c: 3c0e800b */ lui $t6,0x800b
|
|
/* f16f760: 8dceb0ec */ lw $t6,-0x4f14($t6)
|
|
/* f16f764: 27bdffe0 */ addiu $sp,$sp,-32
|
|
/* f16f768: afbf0014 */ sw $ra,0x14($sp)
|
|
/* f16f76c: afa40020 */ sw $a0,0x20($sp)
|
|
/* f16f770: 11c00002 */ beqz $t6,.PF0f16f77c
|
|
/* f16f774: 00001025 */ move $v0,$zero
|
|
/* f16f778: 24020001 */ li $v0,0x1
|
|
.PF0f16f77c:
|
|
/* f16f77c: 10400004 */ beqz $v0,.PF0f16f790
|
|
/* f16f780: 27a4001f */ addiu $a0,$sp,0x1f
|
|
/* f16f784: 0fc624bf */ jal mpGetTeamsWithDefaultName
|
|
/* f16f788: afa20018 */ sw $v0,0x18($sp)
|
|
/* f16f78c: 8fa20018 */ lw $v0,0x18($sp)
|
|
.PF0f16f790:
|
|
/* f16f790: 8faf0020 */ lw $t7,0x20($sp)
|
|
/* f16f794: 2de10006 */ sltiu $at,$t7,0x6
|
|
/* f16f798: 1020001c */ beqz $at,.PF0f16f80c
|
|
/* f16f79c: 000f7880 */ sll $t7,$t7,0x2
|
|
/* f16f7a0: 3c017f1c */ lui $at,0x7f1c
|
|
/* f16f7a4: 002f0821 */ addu $at,$at,$t7
|
|
/* f16f7a8: 8c2f9080 */ lw $t7,-0x6f80($at)
|
|
/* f16f7ac: 01e00008 */ jr $t7
|
|
/* f16f7b0: 00000000 */ nop
|
|
/* f16f7b4: 3c018008 */ lui $at,0x8008
|
|
/* f16f7b8: 10000014 */ b .PF0f16f80c
|
|
/* f16f7bc: ac204670 */ sw $zero,0x4670($at)
|
|
/* f16f7c0: 24180002 */ li $t8,0x2
|
|
/* f16f7c4: 3c018008 */ lui $at,0x8008
|
|
/* f16f7c8: 10000010 */ b .PF0f16f80c
|
|
/* f16f7cc: ac384670 */ sw $t8,0x4670($at)
|
|
/* f16f7d0: 24190001 */ li $t9,0x1
|
|
/* f16f7d4: 3c018008 */ lui $at,0x8008
|
|
/* f16f7d8: 1000000c */ b .PF0f16f80c
|
|
/* f16f7dc: ac394670 */ sw $t9,0x4670($at)
|
|
/* f16f7e0: 24080004 */ li $t0,0x4
|
|
/* f16f7e4: 3c018008 */ lui $at,0x8008
|
|
/* f16f7e8: 10000008 */ b .PF0f16f80c
|
|
/* f16f7ec: ac284670 */ sw $t0,0x4670($at)
|
|
/* f16f7f0: 24090003 */ li $t1,0x3
|
|
/* f16f7f4: 3c018008 */ lui $at,0x8008
|
|
/* f16f7f8: 10000004 */ b .PF0f16f80c
|
|
/* f16f7fc: ac294670 */ sw $t1,0x4670($at)
|
|
/* f16f800: 240afffe */ li $t2,-2
|
|
/* f16f804: 3c018008 */ lui $at,0x8008
|
|
/* f16f808: ac2a4670 */ sw $t2,0x4670($at)
|
|
.PF0f16f80c:
|
|
/* f16f80c: 0fc5bdbb */ jal func0f16f6ecpf
|
|
/* f16f810: afa20018 */ sw $v0,0x18($sp)
|
|
/* f16f814: 8fa20018 */ lw $v0,0x18($sp)
|
|
/* f16f818: 50400004 */ beqzl $v0,.PF0f16f82c
|
|
/* f16f81c: 8fbf0014 */ lw $ra,0x14($sp)
|
|
/* f16f820: 0fc624e1 */ jal mpSetTeamNamesToDefault
|
|
/* f16f824: 93a4001f */ lbu $a0,0x1f($sp)
|
|
/* f16f828: 8fbf0014 */ lw $ra,0x14($sp)
|
|
.PF0f16f82c:
|
|
/* f16f82c: 27bd0020 */ addiu $sp,$sp,0x20
|
|
/* f16f830: 03e00008 */ jr $ra
|
|
/* f16f834: 00000000 */ nop
|
|
);
|
|
#elif VERSION >= VERSION_PAL_BETA
|
|
GLOBAL_ASM(
|
|
glabel func0f16f75c
|
|
.late_rodata
|
|
glabel var7f1b9080pf
|
|
.word 0x7f1702b4
|
|
.word 0x7f1702c0
|
|
.word 0x7f1702d0
|
|
.word 0x7f1702e0
|
|
.word 0x7f1702f0
|
|
.word 0x7f170300
|
|
.text
|
|
/* f17025c: 3c0e800b */ lui $t6,0x800b
|
|
/* f170260: 8dcef16c */ lw $t6,-0xe94($t6)
|
|
/* f170264: 27bdffe0 */ addiu $sp,$sp,-32
|
|
/* f170268: afbf0014 */ sw $ra,0x14($sp)
|
|
/* f17026c: afa40020 */ sw $a0,0x20($sp)
|
|
/* f170270: 11c00002 */ beqz $t6,.PB0f17027c
|
|
/* f170274: 00001025 */ move $v0,$zero
|
|
/* f170278: 24020001 */ li $v0,0x1
|
|
.PB0f17027c:
|
|
/* f17027c: 10400004 */ beqz $v0,.PB0f170290
|
|
/* f170280: 27a4001f */ addiu $a0,$sp,0x1f
|
|
/* f170284: 0fc6277f */ jal mpGetTeamsWithDefaultName
|
|
/* f170288: afa20018 */ sw $v0,0x18($sp)
|
|
/* f17028c: 8fa20018 */ lw $v0,0x18($sp)
|
|
.PB0f170290:
|
|
/* f170290: 8faf0020 */ lw $t7,0x20($sp)
|
|
/* f170294: 2de10006 */ sltiu $at,$t7,0x6
|
|
/* f170298: 1020001c */ beqz $at,.PB0f17030c
|
|
/* f17029c: 000f7880 */ sll $t7,$t7,0x2
|
|
/* f1702a0: 3c017f1c */ lui $at,0x7f1c
|
|
/* f1702a4: 002f0821 */ addu $at,$at,$t7
|
|
/* f1702a8: 8c2f9dd0 */ lw $t7,-0x6230($at)
|
|
/* f1702ac: 01e00008 */ jr $t7
|
|
/* f1702b0: 00000000 */ nop
|
|
/* f1702b4: 3c018008 */ lui $at,0x8008
|
|
/* f1702b8: 10000014 */ b .PB0f17030c
|
|
/* f1702bc: ac206600 */ sw $zero,0x6600($at)
|
|
/* f1702c0: 24180002 */ li $t8,0x2
|
|
/* f1702c4: 3c018008 */ lui $at,0x8008
|
|
/* f1702c8: 10000010 */ b .PB0f17030c
|
|
/* f1702cc: ac386600 */ sw $t8,0x6600($at)
|
|
/* f1702d0: 24190001 */ li $t9,0x1
|
|
/* f1702d4: 3c018008 */ lui $at,0x8008
|
|
/* f1702d8: 1000000c */ b .PB0f17030c
|
|
/* f1702dc: ac396600 */ sw $t9,0x6600($at)
|
|
/* f1702e0: 24080004 */ li $t0,0x4
|
|
/* f1702e4: 3c018008 */ lui $at,0x8008
|
|
/* f1702e8: 10000008 */ b .PB0f17030c
|
|
/* f1702ec: ac286600 */ sw $t0,0x6600($at)
|
|
/* f1702f0: 24090003 */ li $t1,0x3
|
|
/* f1702f4: 3c018008 */ lui $at,0x8008
|
|
/* f1702f8: 10000004 */ b .PB0f17030c
|
|
/* f1702fc: ac296600 */ sw $t1,0x6600($at)
|
|
/* f170300: 240afffe */ li $t2,-2
|
|
/* f170304: 3c018008 */ lui $at,0x8008
|
|
/* f170308: ac2a6600 */ sw $t2,0x6600($at)
|
|
.PB0f17030c:
|
|
/* f17030c: 0fc5c07b */ jal func0f16f6ecpf
|
|
/* f170310: afa20018 */ sw $v0,0x18($sp)
|
|
/* f170314: 8fa20018 */ lw $v0,0x18($sp)
|
|
/* f170318: 50400004 */ beqzl $v0,.PB0f17032c
|
|
/* f17031c: 8fbf0014 */ lw $ra,0x14($sp)
|
|
/* f170320: 0fc627a1 */ jal mpSetTeamNamesToDefault
|
|
/* f170324: 93a4001f */ lbu $a0,0x1f($sp)
|
|
/* f170328: 8fbf0014 */ lw $ra,0x14($sp)
|
|
.PB0f17032c:
|
|
/* f17032c: 27bd0020 */ addiu $sp,$sp,0x20
|
|
/* f170330: 03e00008 */ jr $ra
|
|
/* f170334: 00000000 */ nop
|
|
);
|
|
#endif
|
|
|
|
#if VERSION == VERSION_JPN_FINAL
|
|
GLOBAL_ASM(
|
|
glabel func0f16ec24jf
|
|
/* f16ec24: 27bdffe8 */ addiu $sp,$sp,-24
|
|
/* f16ec28: 10800005 */ beqz $a0,.JF0f16ec40
|
|
/* f16ec2c: afbf0014 */ sw $ra,0x14($sp)
|
|
/* f16ec30: 240e0001 */ li $t6,0x1
|
|
/* f16ec34: 3c018008 */ lui $at,0x8008
|
|
/* f16ec38: 10000003 */ b .JF0f16ec48
|
|
/* f16ec3c: ac2e4770 */ sw $t6,0x4770($at)
|
|
.JF0f16ec40:
|
|
/* f16ec40: 3c018008 */ lui $at,0x8008
|
|
/* f16ec44: ac204770 */ sw $zero,0x4770($at)
|
|
.JF0f16ec48:
|
|
/* f16ec48: 0fc5bab6 */ jal func0f16f6ecpf
|
|
/* f16ec4c: 00000000 */ nop
|
|
/* f16ec50: 8fbf0014 */ lw $ra,0x14($sp)
|
|
/* f16ec54: 27bd0018 */ addiu $sp,$sp,0x18
|
|
/* f16ec58: 03e00008 */ jr $ra
|
|
/* f16ec5c: 00000000 */ nop
|
|
);
|
|
#endif
|