Decompile textGetLanguageId

This commit is contained in:
Ryan Dwyer 2019-11-16 20:02:06 +10:00
parent 413adf5770
commit ca597eb593
5 changed files with 28 additions and 18 deletions

View File

@ -1960,22 +1960,31 @@ glabel func0f16e3fc
/* f16e6d0: 00000000 */ sll $zero,$zero,0x0
);
GLOBAL_ASM(
glabel func0f16e6d4
/* f16e6d4: 3c0e8008 */ lui $t6,0x8008
/* f16e6d8: 8dce4120 */ lw $t6,0x4120($t6)
/* f16e6dc: 00001825 */ or $v1,$zero,$zero
/* f16e6e0: 11c00002 */ beqz $t6,.L0f16e6ec
/* f16e6e4: 00000000 */ sll $zero,$zero,0x0
/* f16e6e8: 24030001 */ addiu $v1,$zero,0x1
.L0f16e6ec:
/* f16e6ec: 03e00008 */ jr $ra
/* f16e6f0: 00601025 */ or $v0,$v1,$zero
);
/**
* NTSC only supports English, while PAL supports 4 languages and JAP has its
* own. Each English file is followed immediately by the other translations.
*
* As it stands in the NTSC version, g_LanguageId is a flag that controls
* whether it uses English or Japanese text. This decomp is NTSC, so that's what
* you see here.
*
* For PAL, I suspect this function was adjusted to return values other than
* 0 and 1.
*/
s32 textGetLanguageId(void)
{
bool ret = 0;
if (g_LanguageId != 0) {
ret = 1;
}
return ret;
}
s32 textGetFileId(s32 bank)
{
return langtable[bank] + func0f16e6d4();
return langtable[bank] + textGetLanguageId();
}
void textSetBankSimple(s32 bank)

View File

@ -2375,7 +2375,7 @@ glabel func0f19b914
/* f19b918: afbf0014 */ sw $ra,0x14($sp)
/* f19b91c: afa401c8 */ sw $a0,0x1c8($sp)
/* f19b920: afa501cc */ sw $a1,0x1cc($sp)
/* f19b924: 0fc5b9b5 */ jal func0f16e6d4
/* f19b924: 0fc5b9b5 */ jal textGetLanguageId
/* f19b928: afa601d0 */ sw $a2,0x1d0($sp)
/* f19b92c: 3c0f8009 */ lui $t7,%hi(var800887c4)
/* f19b930: 25ef87c4 */ addiu $t7,$t7,%lo(var800887c4)
@ -3621,4 +3621,4 @@ glabel func0f19c910
/* f19c984: 00000000 */ sll $zero,$zero,0x0
/* f19c988: 00000000 */ sll $zero,$zero,0x0
/* f19c98c: 00000000 */ sll $zero,$zero,0x0
);
);

View File

@ -42,7 +42,7 @@ u32 func0f16e0b4(u32 arg0);
u32 func0f16e138(void);
u32 func0f16e1e0(s32 arg0);
u32 func0f16e3fc(void);
u32 func0f16e6d4(void);
s32 textGetLanguageId(void);
s32 textGetFileId(s32 bank);
void textSetBankSimple(s32 bank);
void textSetBank(s32 bank, s32 arg1, s32 arg2);

View File

@ -204,7 +204,6 @@ extern u32 var80081058;
extern struct smallsky smallskies[];
extern u32 var80082050;
extern u32 filetable[];
extern u16 langtable[];
extern u32 var80084008;
extern s32 var80084034;
extern u32 var80084038;
@ -219,6 +218,8 @@ extern u32 var800840e0;
extern u32 var800840f0;
extern u32 var800840f4;
extern u32 var800840fc;
extern u32 g_LanguageId;
extern u16 langtable[];
extern u32 var800841b8;
extern u32 var80084220;
extern struct something *somethings[];

View File

@ -6123,7 +6123,7 @@ u32 var80084110 = 0x7f1b7900;
u32 var80084114 = 0x7f1b7908;
u32 var80084118 = 0x7f1b7910;
u32 var8008411c = 0x00000000;
u32 var80084120 = 0x00000000;
u32 g_LanguageId = 0;
// 2a144
u16 langtable[] = {