Attempt to decompile lang0f16e3fc

This commit is contained in:
Ryan Dwyer
2022-07-02 20:27:23 +10:00
parent a1fe175a7e
commit 41041fe6f2
4 changed files with 82 additions and 12 deletions
+6 -6
View File
@@ -3549,7 +3549,7 @@ glabel func0f154f38
/* f154d7c: 55c00006 */ bnezl $t6,.JF0f154d98
/* f154d80: 96390000 */ lhu $t9,0x0($s1)
/* f154d84: 94c40000 */ lhu $a0,0x0($a2)
/* f154d88: 0fc5b967 */ jal func0f16e3fc
/* f154d88: 0fc5b967 */ jal lang0f16e3fc
/* f154d8c: 2484ff80 */ addiu $a0,$a0,-128
/* f154d90: ae220008 */ sw $v0,0x8($s1)
/* f154d94: 96390000 */ lhu $t9,0x0($s1)
@@ -4978,7 +4978,7 @@ glabel func0f1552d4
/* f155624: 24040002 */ addiu $a0,$zero,0x2
/* f155628: 248c0080 */ addiu $t4,$a0,0x80
.L0f15562c:
/* f15562c: 0fc5b8ff */ jal func0f16e3fc
/* f15562c: 0fc5b8ff */ jal lang0f16e3fc
/* f155630: a3ac0080 */ sb $t4,0x80($sp)
/* f155634: afa20088 */ sw $v0,0x88($sp)
/* f155638: 26100002 */ addiu $s0,$s0,0x2
@@ -5127,7 +5127,7 @@ glabel func0f15568c
/* f1556c4: 962f0000 */ lhu $t7,0x0($s1)
/* f1556c8: 96240000 */ lhu $a0,0x0($s1)
/* f1556cc: afac00b0 */ sw $t4,0xb0($sp)
/* f1556d0: 0fc5b967 */ jal func0f16e3fc
/* f1556d0: 0fc5b967 */ jal lang0f16e3fc
/* f1556d4: 2484ff80 */ addiu $a0,$a0,-128
/* f1556d8: 8fac00b0 */ lw $t4,0xb0($sp)
/* f1556dc: 3c0d8008 */ lui $t5,0x8008
@@ -9518,7 +9518,7 @@ glabel textRenderProjected
/* f1565a0: 24040002 */ addiu $a0,$zero,0x2
/* f1565a4: 248f0080 */ addiu $t7,$a0,0x80
.L0f1565a8:
/* f1565a8: 0fc5b8ff */ jal func0f16e3fc
/* f1565a8: 0fc5b8ff */ jal lang0f16e3fc
/* f1565ac: a3af0068 */ sb $t7,0x68($sp)
/* f1565b0: 8fb800d4 */ lw $t8,0xd4($sp)
/* f1565b4: 8fa800dc */ lw $t0,0xdc($sp)
@@ -9700,7 +9700,7 @@ glabel func0f156790
/* f156ba0: 57000008 */ bnezl $t8,.JF0f156bc4
/* f156ba4: 02001025 */ move $v0,$s0
/* f156ba8: 96240000 */ lhu $a0,0x0($s1)
/* f156bac: 0fc5b967 */ jal func0f16e3fc
/* f156bac: 0fc5b967 */ jal lang0f16e3fc
/* f156bb0: 2484ff80 */ addiu $a0,$a0,-128
/* f156bb4: 8fa90058 */ lw $t1,0x58($sp)
/* f156bb8: 8faa005c */ lw $t2,0x5c($sp)
@@ -11544,7 +11544,7 @@ glabel textRender
/* f1571c4: 24040002 */ addiu $a0,$zero,0x2
/* f1571c8: 24990080 */ addiu $t9,$a0,0x80
.L0f1571cc:
/* f1571cc: 0fc5b8ff */ jal func0f16e3fc
/* f1571cc: 0fc5b8ff */ jal lang0f16e3fc
/* f1571d0: a3b90074 */ sb $t9,0x74($sp)
/* f1571d4: 8fab00e8 */ lw $t3,0xe8($sp)
/* f1571d8: 8e6d0000 */ lw $t5,0x0($s3)
+74 -4
View File
@@ -53,12 +53,12 @@ u8 *g_LangBuffer = NULL;
u8 *g_LangBufferPos = NULL;
s32 g_LangBufferSize = 0;
u32 *g_LangBanks[69];
void *var800aabb4;
struct var800aabb4 *var800aabb4;
struct var800aabb8 *var800aabb8;
s32 g_LanguageId = LANGUAGE_NTSC_EN;
#else
u32 *g_LangBanks[69];
void *var800aabb4;
struct var800aabb4 *var800aabb4;
struct var800aabb8 *var800aabb8;
bool g_Jpn = false;
#endif
@@ -217,7 +217,7 @@ u32 var80084810jf = 0;
u32 var80084814jf = 8;
GLOBAL_ASM(
glabel func0f16e3fc
glabel lang0f16e3fc
/* f16e59c: 27bdffd0 */ addiu $sp,$sp,-48
/* f16e5a0: afb00018 */ sw $s0,0x18($sp)
/* f16e5a4: 308e2000 */ andi $t6,$a0,0x2000
@@ -456,7 +456,7 @@ glabel func0f16e3fc
);
#else
GLOBAL_ASM(
glabel func0f16e3fc
glabel lang0f16e3fc
/* f16e3fc: 27bdffc8 */ addiu $sp,$sp,-56
/* f16e400: afb00018 */ sw $s0,0x18($sp)
/* f16e404: 308e2000 */ andi $t6,$a0,0x2000
@@ -658,6 +658,76 @@ glabel func0f16e3fc
);
#endif
extern u8 _jpndata1;
extern u8 _jpndata2;
// Mismatch: Regalloc. The if (1) solves a-regalloc but not t-regalloc,
// and moving it down one line solves t-regalloc but not a-regalloc.
//struct var800aabb4 *lang0f16e3fc(s32 arg0)
//{
// s32 i;
// s32 t2 = -1;
// s32 t3 = -1;
// bool t0 = false;
//
// if (arg0 & 0x2000) {
// t0 = true;
// }
//
// for (i = 0; i < 0x7c; i++) {
// if ((t0 || (arg0 >> 1) != var800aabb8[i].unk00_02)
// && (!t0 || i + 1 >= 0x7c
// || (arg0 >> 1) != var800aabb8[i + 0].unk00_02
// || (arg0 >> 1) != var800aabb8[i + 1].unk00_02)) {
// if (var800aabb8[i].unk00_00 == 0) {
// if (1);
// t2 = i;
// }
//
// if (var800aabb8[i].unk00_00 == 0 && var800aabb8[i + 1].unk00_00 == 0 && i + 1 < 0x7c) {
// t3 = i;
// }
// } else {
// break;
// }
// }
//
// if (i < 0x7c) {
// if (!t0) {
// var800aabb8[i].unk00_00 = 2;
//
// return &var800aabb4[i];
// } else {
// var800aabb8[i + 0].unk00_00 = 2;
// var800aabb8[i + 1].unk00_00 = 2;
//
// return &var800aabb4[i];
// }
// }
//
// if (!t0 && t2 >= 0) {
// var800aabb8[t2].unk00_00 = 2;
// var800aabb8[t2].unk00_02 = arg0 >> 1;
//
// dmaExec(&var800aabb4[t2], (u32)&_jpndata1 + (arg0 >> 1) * 0x60, 0x60);
//
// return &var800aabb4[t2];
// }
//
// if (t0 && t3 >= 0) {
// var800aabb8[t3 + 0].unk00_00 = 2;
// var800aabb8[t3 + 1].unk00_00 = 2;
// var800aabb8[t3 + 0].unk00_02 = arg0 >> 1;
// var800aabb8[t3 + 1].unk00_02 = arg0 >> 1;
//
// dmaExec(&var800aabb4[t3], (u32)&_jpndata2 + ((arg0 & 0x1fff) >> 1) * 0x80, 0x80);
//
// return &var800aabb4[t3];
// }
//
// return &var800aabb4[0];
//}
/**
* NTSC only supports English, while PAL supports 4 languages and JPN has its
* own. Each English file is followed immediately by the other translations.
+1 -1
View File
@@ -248,7 +248,7 @@ extern u32 g_AudioXReasonsActive[4];
extern s32 g_MusicXReasonMinDurations[4];
extern s32 g_MusicXReasonMaxDurations[4];
extern u32 *g_LangBanks[69];
extern void *var800aabb4;
extern struct var800aabb4 *var800aabb4;
extern struct var800aabb8 *var800aabb8;
extern struct texture *g_Textures;
extern struct texturething var800aabc8;
+1 -1
View File
@@ -8,7 +8,7 @@ void langInit(void);
void langTick(void);
u32 langGetLangBankIndexFromStagenum(s32 stagenum);
u32 func0f16e3fc(void);
struct var800aabb4 *lang0f16e3fc(s32 arg0);
s32 langGetFileNumOffset(void);
s32 langGetFileId(s32 bank);
void langLoad(s32 bank);