mirror of
https://gitlab.com/ryandwyer/perfect-dark
synced 2026-07-12 06:12:29 -04:00
Attempt to decompile lang0f16e3fc
This commit is contained in:
@@ -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
@@ -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
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user