Clean up d_msg_unit, misc fixes for PAL and JPN (#2848)

This commit is contained in:
Max Roncace 2025-11-22 21:40:49 -05:00 committed by GitHub
parent 5dce13b8c6
commit 24c1bf1723
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
17 changed files with 241 additions and 87 deletions

View File

@ -362,19 +362,23 @@ __global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:globa
@1010 = .bss:0x00000040; // type:object size:0x1 scope:local
@1009 = .bss:0x00000044; // type:object size:0x1 scope:local
henna = .bss:0x00000048; // type:object size:0x4 scope:global data:4byte
lbl_50_bss_4C = .bss:0x0000004C; // type:object size:0x1 data:byte
lbl_50_bss_4D = .bss:0x0000004D; // type:object size:0x1 data:byte
data_804BBBD4 = .bss:0x0000004C; // type:object size:0x1 data:byte
l_HIOInit = .bss:0x0000004D; // type:object size:0x1 data:byte
@4280 = .bss:0x00000050; // type:object size:0xC scope:local
l_HIO = .bss:0x0000005C; // type:object size:0x28 scope:global data:byte
@4921 = .bss:0x00000084; // type:object size:0xC scope:local
old_line_pos = .bss:0x00000090; // type:object size:0x4B0 scope:global
@5446 = .bss:0x00000540; // type:object size:0xC scope:local
init$5447 = .bss:0x0000054C; // type:object size:0x1 scope:local data:byte
sc$5445 = .bss:0x00000550; // type:object size:0xC scope:local
@8906 = .bss:0x0000055C; // type:object size:0xC scope:local
init$8907 = .bss:0x00000568; // type:object size:0x1 scope:local data:byte
@8909 = .bss:0x0000056C; // type:object size:0xC scope:local
sp_pos$8905 = .bss:0x00000578; // type:object size:0x18 scope:local
old_stick_x$9448 = .bss:0x00000590; // type:object size:0x4 scope:local
init$9449 = .bss:0x00000594; // type:object size:0x1 scope:local data:byte
old_stick_sx$9451 = .bss:0x00000598; // type:object size:0x4 scope:local
init$9452 = .bss:0x0000059C; // type:object size:0x1 scope:local data:byte
sInstance__40JASGlobalInstance<19JASDefaultBankTable> = .bss:0x000005A0; // type:object size:0x4 scope:global
sInstance__35JASGlobalInstance<14JASAudioThread> = .bss:0x000005A4; // type:object size:0x4 scope:global
sInstance__27JASGlobalInstance<7Z2SeMgr> = .bss:0x000005A8; // type:object size:0x4 scope:global

View File

@ -77,5 +77,5 @@ __vt__8cM3dGCyl = .data:0x0000019C; // type:object size:0xC scope:global
__vt__8cM3dGAab = .data:0x000001A8; // type:object size:0xC scope:global
__vt__12dBgS_ObjAcch = .data:0x000001B4; // type:object size:0x24 scope:global
__vt__12J3DFrameCtrl = .data:0x000001D8; // type:object size:0xC scope:global
lbl_482_bss_0 = .bss:0x00000000; // type:object size:0x1 data:byte
lbl_482_bss_1 = .bss:0x00000001; // type:object size:0x1 data:byte
init$1997 = .bss:0x00000000; // type:object size:0x1 data:byte
init$2129 = .bss:0x00000001; // type:object size:0x1 data:byte

View File

@ -121,6 +121,6 @@ __vt__12dBgS_ObjAcch = .data:0x000001B8; // type:object size:0x24 scope:global
__vt__8cM3dGPla = .data:0x000001DC; // type:object size:0xC scope:global
__vt__12daE_HP_HIO_c = .data:0x000001E8; // type:object size:0xC scope:global
__global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:global
lbl_200_bss_8 = .bss:0x00000008; // type:object size:0x1 data:byte
l_HIOInit = .bss:0x00000008; // type:object size:0x1 data:byte
@3921 = .bss:0x0000000C; // type:object size:0xC scope:local
l_HIO = .bss:0x00000018; // type:object size:0x14 scope:global data:byte

View File

@ -230,13 +230,18 @@ __global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:globa
@1012 = .bss:0x0000003C; // type:object size:0x1 scope:local
@1010 = .bss:0x00000040; // type:object size:0x1 scope:local
@1009 = .bss:0x00000044; // type:object size:0x1 scope:local
data_8052790d = .bss:0x00000045; // type:object size:0x1 scope:local
@4293 = .bss:0x00000048; // type:object size:0xC scope:local
init$4294 = .bss:0x00000054; // type:object size:0x1 scope:local
ang$4292 = .bss:0x00000058; // type:object size:0x6 scope:local
exec_count_dammy$4868 = .bss:0x0000005E; // type:object size:0x2 scope:local
init$4869 = .bss:0x00000060; // type:object size:0x1 scope:local
exec_count_dammy2$4871 = .bss:0x00000062; // type:object size:0x2 scope:local
init$4872 = .bss:0x00000064; // type:object size:0x1 scope:local
mAngleZ$5046 = .bss:0x00000068; // type:object size:0xBB8 scope:local
data_805284E8 = .bss:0x00000C20; // type:object size:0x1 scope:local data:byte
@5442 = .bss:0x00000C24; // type:object size:0xC scope:local
init$5443 = .bss:0x00000C30; // type:object size:0x1 scope:local
ang$5441 = .bss:0x00000C34; // type:object size:0x6 scope:local
@6340 = .bss:0x00000C3C; // type:object size:0xC scope:local
@6342 = .bss:0x00000C48; // type:object size:0xC scope:local
@ -325,15 +330,15 @@ sInstance__32JASGlobalInstance<11Z2FxLineMgr> = .bss:0x00000F78; // type:object
sInstance__31JASGlobalInstance<10Z2EnvSeMgr> = .bss:0x00000F7C; // type:object size:0x4 scope:global
sInstance__32JASGlobalInstance<11Z2SpeechMgr> = .bss:0x00000F80; // type:object size:0x4 scope:global
sInstance__34JASGlobalInstance<13Z2WolfHowlMgr> = .bss:0x00000F84; // type:object size:0x4 scope:global
lbl_73_bss_F88 = .bss:0x00000F88; // type:object size:0x1 data:byte
l_setType0$localstatic3$create__9daGrass_cFv = .bss:0x00000F8C; // type:object size:0x2A scope:local data:2byte
lbl_73_bss_FB6 = .bss:0x00000FB6; // type:object size:0x1 data:byte
l_setType1$localstatic5$create__9daGrass_cFv = .bss:0x00000FB8; // type:object size:0x7E scope:local data:2byte
lbl_73_bss_1036 = .bss:0x00001036; // type:object size:0x1 data:byte
l_setType2$localstatic7$create__9daGrass_cFv = .bss:0x00001038; // type:object size:0x12 scope:local data:2byte
lbl_73_bss_104A = .bss:0x0000104A; // type:object size:0x1 data:byte
l_setType3$localstatic9$create__9daGrass_cFv = .bss:0x0000104C; // type:object size:0x2A scope:local data:2byte
lbl_73_bss_1076 = .bss:0x00001076; // type:object size:0x1 data:byte
l_setType4$localstatic11$create__9daGrass_cFv = .bss:0x00001078; // type:object size:0x66 scope:local data:2byte
lbl_73_bss_10DE = .bss:0x000010DE; // type:object size:0x1 data:byte
init$localstatic4$create__9daGrass_cFv = .bss:0x00000F88; // type:object size:0x1 scope:global data:byte
l_setType0$localstatic3$create__9daGrass_cFv = .bss:0x00000F8C; // type:object size:0x2A scope:global data:2byte
init$localstatic6$create__9daGrass_cFv = .bss:0x00000FB6; // type:object size:0x1 scope:global data:byte
l_setType1$localstatic5$create__9daGrass_cFv = .bss:0x00000FB8; // type:object size:0x7E scope:global data:2byte
init$localstatic8$create__9daGrass_cFv = .bss:0x00001036; // type:object size:0x1 scope:global data:byte
l_setType2$localstatic7$create__9daGrass_cFv = .bss:0x00001038; // type:object size:0x12 scope:global data:2byte
init$localstatic10$create__9daGrass_cFv = .bss:0x0000104A; // type:object size:0x1 scope:global data:byte
l_setType3$localstatic9$create__9daGrass_cFv = .bss:0x0000104C; // type:object size:0x2A scope:global data:2byte
init$localstatic12$create__9daGrass_cFv = .bss:0x00001076; // type:object size:0x1 scope:global data:byte
l_setType4$localstatic11$create__9daGrass_cFv = .bss:0x00001078; // type:object size:0x66 scope:global data:2byte
init$localstatic14$create__9daGrass_cFv = .bss:0x000010DE; // type:object size:0x1 scope:global data:byte
l_setType5$localstatic13$create__9daGrass_cFv = .bss:0x000010E0; // type:object size:0x2A scope:local data:2byte

View File

@ -293,6 +293,7 @@ _dtors = .dtors:0x00000000; // type:label scope:global
@11348 = .rodata:0x000002F4; // type:object size:0x4 scope:local
@11462 = .rodata:0x000002F8; // type:object size:0x4 scope:local
@stringBase0 = .rodata:0x000002FC; // type:object size:0x1D scope:local data:string_table
...data.0 = .data:0x00000000; // type:label scope:local
cNullVec__6Z2Calc = .data:0x00000000; // type:object size:0xC scope:global
@1787 = .data:0x0000000C; // type:object size:0x4 scope:local
lbl_50_data_10 = .data:0x00000010; // type:object size:0x10
@ -361,19 +362,23 @@ __global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:globa
@1010 = .bss:0x00000040; // type:object size:0x1 scope:local
@1009 = .bss:0x00000044; // type:object size:0x1 scope:local
henna = .bss:0x00000048; // type:object size:0x4 scope:global data:4byte
lbl_50_bss_4C = .bss:0x0000004C; // type:object size:0x1 data:byte
lbl_50_bss_4D = .bss:0x0000004D; // type:object size:0x1 data:byte
data_804BBBD4 = .bss:0x0000004C; // type:object size:0x1 data:byte
l_HIOInit = .bss:0x0000004D; // type:object size:0x1 data:byte
@4280 = .bss:0x00000050; // type:object size:0xC scope:local
l_HIO = .bss:0x0000005C; // type:object size:0x28 scope:global data:byte
@4921 = .bss:0x00000084; // type:object size:0xC scope:local
old_line_pos = .bss:0x00000090; // type:object size:0x4B0 scope:global
@5446 = .bss:0x00000540; // type:object size:0xC scope:local
init$5447 = .bss:0x0000054C; // type:object size:0x1 scope:local data:byte
sc$5445 = .bss:0x00000550; // type:object size:0xC scope:local
@8906 = .bss:0x0000055C; // type:object size:0xC scope:local
init$8907 = .bss:0x00000568; // type:object size:0x1 scope:local data:byte
@8909 = .bss:0x0000056C; // type:object size:0xC scope:local
sp_pos$8905 = .bss:0x00000578; // type:object size:0x18 scope:local
old_stick_x$9448 = .bss:0x00000590; // type:object size:0x4 scope:local
init$9449 = .bss:0x00000594; // type:object size:0x1 scope:local data:byte
old_stick_sx$9451 = .bss:0x00000598; // type:object size:0x4 scope:local
init$9452 = .bss:0x0000059C; // type:object size:0x1 scope:local data:byte
sInstance__40JASGlobalInstance<19JASDefaultBankTable> = .bss:0x000005A0; // type:object size:0x4 scope:global
sInstance__35JASGlobalInstance<14JASAudioThread> = .bss:0x000005A4; // type:object size:0x4 scope:global
sInstance__27JASGlobalInstance<7Z2SeMgr> = .bss:0x000005A8; // type:object size:0x4 scope:global

View File

@ -52,6 +52,7 @@ _dtors = .dtors:0x00000000; // type:label scope:global
@4094 = .rodata:0x00000038; // type:object size:0x4 scope:local
@4095 = .rodata:0x0000003C; // type:object size:0x4 scope:local align:4 data:float
@stringBase0 = .rodata:0x00000040; // type:object size:0xA scope:local data:string_table
...data.0 = .data:0x00000000; // type:label scope:local
cNullVec__6Z2Calc = .data:0x00000000; // type:object size:0xC scope:global
@1787 = .data:0x0000000C; // type:object size:0x4 scope:local
lbl_482_data_10 = .data:0x00000010; // type:object size:0x10
@ -76,5 +77,5 @@ __vt__8cM3dGCyl = .data:0x0000019C; // type:object size:0xC scope:global
__vt__8cM3dGAab = .data:0x000001A8; // type:object size:0xC scope:global
__vt__12dBgS_ObjAcch = .data:0x000001B4; // type:object size:0x24 scope:global
__vt__12J3DFrameCtrl = .data:0x000001D8; // type:object size:0xC scope:global
lbl_482_bss_0 = .bss:0x00000000; // type:object size:0x1 data:byte
lbl_482_bss_1 = .bss:0x00000001; // type:object size:0x1 data:byte
init$1997 = .bss:0x00000000; // type:object size:0x1 data:byte
init$2129 = .bss:0x00000001; // type:object size:0x1 data:byte

View File

@ -280,7 +280,7 @@ f_pc/f_pc_layer.cpp:
f_pc/f_pc_leaf.cpp:
.text start:0x80021A00 end:0x80021B88
.data start:0x8039DB48 end:0x8039DB60
.sbss start:0x8044AE70 end:0x8044AE80
.sbss start:0x8044AE70 end:0x8044AE78
f_pc/f_pc_layer_iter.cpp:
.text start:0x80021B88 end:0x80021CD4
@ -300,6 +300,7 @@ f_pc/f_pc_load.cpp:
f_pc/f_pc_manager.cpp:
.text start:0x800220A0 end:0x80022428
.bss start:0x803EEEF0 end:0x803EEF98
.sbss start:0x8044AE78 end:0x8044AE80
f_pc/f_pc_method.cpp:
.text start:0x80022428 end:0x800224F0
@ -590,13 +591,14 @@ d/d_bg_plc.cpp:
d/d_bg_s.cpp:
.text start:0x80074134 end:0x80075EEC
.data start:0x803A5768 end:0x803A57A0
.sbss start:0x8044B0A0 end:0x8044B0B0
.sbss start:0x8044B0A0 end:0x8044B0A8
.sdata2 start:0x8044C7F8 end:0x8044C800
d/d_bg_s_acch.cpp:
.text start:0x80075EEC end:0x800774DC
.data start:0x803A57A0 end:0x803A57D0
.bss start:0x8041EC60 end:0x8041ECC0
.sbss start:0x8044B0A8 end:0x8044B0B0
.sdata2 start:0x8044C800 end:0x8044C828
d/d_bg_s_chk.cpp:
@ -1395,7 +1397,7 @@ SSystem/SComponent/c_API.cpp:
SSystem/SComponent/c_malloc.cpp:
.text start:0x80265650 end:0x802656BC
.sbss start:0x8044B290 end:0x8044B2A0
.sbss start:0x8044B290 end:0x8044B298
SSystem/SComponent/c_API_controller_pad.cpp:
.text start:0x802656BC end:0x802656F8
@ -1415,6 +1417,7 @@ SSystem/SComponent/c_cc_s.cpp:
.text start:0x80266E9C end:0x8026824C
.data start:0x803BD888 end:0x803BD8B8
.bss start:0x8042AE00 end:0x8042AE18
.sbss start:0x8044B298 end:0x8044B2A0
.sdata2 start:0x8044F158 end:0x8044F190
SSystem/SComponent/c_counter.cpp:
@ -3560,13 +3563,14 @@ TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Os/dolphin/dolphin_trk_glue.c:
.text start:0x80374084 end:0x803745DC
.rodata start:0x8039CD68 end:0x8039CE70
.data start:0x803CD3E8 end:0x803CD410
.bss start:0x80449960 end:0x80449970
.bss start:0x80449960 end:0x80449968
TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Os/dolphin/targcont.c:
.text start:0x803745DC end:0x80374610
TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Os/dolphin/target_options.c:
.text start:0x80374610 end:0x8037462C
.bss start:0x80449968 end:0x80449970
TRK_MINNOW_DOLPHIN/debugger/embedded/MetroTRK/Export/mslsupp.c:
.text start:0x8037462C end:0x803747A4

View File

@ -121,6 +121,6 @@ __vt__12dBgS_ObjAcch = .data:0x000001B8; // type:object size:0x24 scope:global
__vt__8cM3dGPla = .data:0x000001DC; // type:object size:0xC scope:global
__vt__12daE_HP_HIO_c = .data:0x000001E8; // type:object size:0xC scope:global
__global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:global
lbl_200_bss_8 = .bss:0x00000008; // type:object size:0x1 data:byte
l_HIOInit = .bss:0x00000008; // type:object size:0x1 data:byte
@3921 = .bss:0x0000000C; // type:object size:0xC scope:local
l_HIO = .bss:0x00000018; // type:object size:0x14 scope:global data:byte

View File

@ -293,6 +293,7 @@ _dtors = .dtors:0x00000000; // type:label scope:global
@11356 = .rodata:0x000002F4; // type:object size:0x4 scope:local
@11481 = .rodata:0x000002F8; // type:object size:0x4 scope:local
@stringBase0 = .rodata:0x000002FC; // type:object size:0x1D scope:local data:string_table
...data.0 = .data:0x00000000; // type:label scope:local
cNullVec__6Z2Calc = .data:0x00000000; // type:object size:0xC scope:global
@1787 = .data:0x0000000C; // type:object size:0x4 scope:local
lbl_50_data_10 = .data:0x00000010; // type:object size:0x10
@ -361,19 +362,23 @@ __global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:globa
@1010 = .bss:0x00000040; // type:object size:0x1 scope:local
@1009 = .bss:0x00000044; // type:object size:0x1 scope:local
henna = .bss:0x00000048; // type:object size:0x4 scope:global data:4byte
lbl_50_bss_4C = .bss:0x0000004C; // type:object size:0x1 data:byte
lbl_50_bss_4D = .bss:0x0000004D; // type:object size:0x1 data:byte
data_804BBBD4 = .bss:0x0000004C; // type:object size:0x1 data:byte
l_HIOInit = .bss:0x0000004D; // type:object size:0x1 data:byte
@4280 = .bss:0x00000050; // type:object size:0xC scope:local
l_HIO = .bss:0x0000005C; // type:object size:0x28 scope:global data:byte
@4921 = .bss:0x00000084; // type:object size:0xC scope:local
old_line_pos = .bss:0x00000090; // type:object size:0x4B0 scope:global
@5446 = .bss:0x00000540; // type:object size:0xC scope:local
init$5447 = .bss:0x0000054C; // type:object size:0x1 scope:local data:byte
sc$5445 = .bss:0x00000550; // type:object size:0xC scope:local
@8906 = .bss:0x0000055C; // type:object size:0xC scope:local
init$8907 = .bss:0x00000568; // type:object size:0x1 scope:local data:byte
@8909 = .bss:0x0000056C; // type:object size:0xC scope:local
sp_pos$8905 = .bss:0x00000578; // type:object size:0x18 scope:local
old_stick_x$9448 = .bss:0x00000590; // type:object size:0x4 scope:local
init$9449 = .bss:0x00000594; // type:object size:0x1 scope:local data:byte
old_stick_sx$9451 = .bss:0x00000598; // type:object size:0x4 scope:local
init$9452 = .bss:0x0000059C; // type:object size:0x1 scope:local data:byte
sInstance__40JASGlobalInstance<19JASDefaultBankTable> = .bss:0x000005A0; // type:object size:0x4 scope:global
sInstance__35JASGlobalInstance<14JASAudioThread> = .bss:0x000005A4; // type:object size:0x4 scope:global
sInstance__27JASGlobalInstance<7Z2SeMgr> = .bss:0x000005A8; // type:object size:0x4 scope:global

View File

@ -13,3 +13,4 @@ d/actor/d_a_obj_iceleaf.cpp:
.text start:0x00000078 end:0x000016BC
.rodata start:0x00000000 end:0x0000004C
.data start:0x00000000 end:0x000001E4
.bss start:0x00000000 end:0x00000004

View File

@ -52,6 +52,7 @@ _dtors = .dtors:0x00000000; // type:label scope:global
@4094 = .rodata:0x00000038; // type:object size:0x4 scope:local
@4095 = .rodata:0x0000003C; // type:object size:0x4 scope:local align:4 data:float
@stringBase0 = .rodata:0x00000040; // type:object size:0xA scope:local data:string_table
...data.0 = .data:0x00000000; // type:label scope:local
cNullVec__6Z2Calc = .data:0x00000000; // type:object size:0xC scope:global
@1787 = .data:0x0000000C; // type:object size:0x4 scope:local
lbl_482_data_10 = .data:0x00000010; // type:object size:0x10
@ -76,5 +77,5 @@ __vt__8cM3dGCyl = .data:0x0000019C; // type:object size:0xC scope:global
__vt__8cM3dGAab = .data:0x000001A8; // type:object size:0xC scope:global
__vt__12dBgS_ObjAcch = .data:0x000001B4; // type:object size:0x24 scope:global
__vt__12J3DFrameCtrl = .data:0x000001D8; // type:object size:0xC scope:global
lbl_482_bss_0 = .bss:0x00000000; // type:object size:0x1 data:byte
lbl_482_bss_1 = .bss:0x00000001; // type:object size:0x1 data:byte
init$1997 = .bss:0x00000000; // type:object size:0x1 data:byte
init$2129 = .bss:0x00000001; // type:object size:0x1 data:byte

View File

@ -1771,7 +1771,7 @@ config.libs = [
ActorRel(MatchingFor(ALL_GCN), "d_a_e_gs"),
ActorRel(MatchingFor(ALL_GCN), "d_a_e_hb_leaf"),
ActorRel(MatchingFor(ALL_GCN), "d_a_e_hm"),
ActorRel(MatchingFor("GZ2E01"), "d_a_e_hp"),
ActorRel(MatchingFor(ALL_GCN), "d_a_e_hp"),
ActorRel(MatchingFor(ALL_GCN), "d_a_e_hz"),
ActorRel(MatchingFor(ALL_GCN), "d_a_e_hzelda"),
ActorRel(MatchingFor(ALL_GCN), "d_a_e_is"),

View File

@ -5720,12 +5720,16 @@ static int dmg_rod_Execute(dmg_rod_class* i_this) {
} else {
data_804BBBD4 = 0;
}
#elif VERSION == VERSION_GCN_PAL
#elif VERSION == VERSION_SHIELD
data_804BBBD4 = 0;
#elif REGION_PAL
if (dComIfGs_getPalLanguage() == 0) {
data_804BBBD4 = 2;
} else {
data_804BBBD4 = 0;
}
#elif REGION_JPN
data_804BBBD4 = 0;
#else
data_804BBBD4 = 1;
#endif
@ -6283,12 +6287,16 @@ static int dmg_rod_Create(fopAc_ac_c* i_this) {
} else {
data_804BBBD4 = 0;
}
#elif VERSION == VERSION_GCN_PAL
#elif VERSION == VERSION_SHIELD
data_804BBBD4 = 0;
#elif REGION_PAL
if (dComIfGs_getPalLanguage() == 0) {
data_804BBBD4 = 2;
} else {
data_804BBBD4 = 0;
}
#elif REGION_JPN
data_804BBBD4 = 0;
#else
data_804BBBD4 = 1;
#endif

View File

@ -273,13 +273,33 @@ void dMenu_Collect2D_c::screenSet() {
static const u64 text_a_tag[5] = {'atext1_1', 'atext1_2', 'atext1_3', 'atext1_4', 'atext1_5'};
static const u64 text_b_tag[5] = {'btext1_1', 'btext1_2', 'btext1_3', 'btext1_4', 'btext1_5'};
#if REGION_JPN
static_cast<J2DTextBox*>(mpScreen->search('t_t00'))->setFont(mDoExt_getRubyFont());
static_cast<J2DTextBox*>(mpScreen->search('t_t00'))->setString(0x20, "");
dMeter2Info_getStringKanji(
0x3E1, static_cast<J2DTextBox*>(mpScreen->search('t_t00'))->getStringPtr(), NULL);
mpScreen->search('f_t00')->hide();
#else
static_cast<J2DTextBox*>(mpScreen->search('f_t00'))->setFont(mDoExt_getRubyFont());
static_cast<J2DTextBox*>(mpScreen->search('f_t00'))->setString(0x20, "");
dMeter2Info_getStringKanji(
0x3E1, static_cast<J2DTextBox*>(mpScreen->search('f_t00'))->getStringPtr(), NULL);
mpScreen->search('t_t00')->hide();
#endif
for (int i = 0; i < 3; i++) {
#if REGION_JPN
static_cast<J2DTextBox*>(mpScreen->search(text_sv[i]))->setFont(mDoExt_getMesgFont());
static_cast<J2DTextBox*>(mpScreen->search(text_op[i]))->setFont(mDoExt_getMesgFont());
static_cast<J2DTextBox*>(mpScreen->search(text_sv[i]))->setString(0x20, "");
static_cast<J2DTextBox*>(mpScreen->search(text_op[i]))->setString(0x20, "");
dMeter2Info_getStringKanji(
0x60, static_cast<J2DTextBox*>(mpScreen->search(text_sv[i]))->getStringPtr(), NULL);
dMeter2Info_getStringKanji(
0x5F, static_cast<J2DTextBox*>(mpScreen->search(text_op[i]))->getStringPtr(), NULL);
mpScreen->search(ftext_sv[i])->hide();
mpScreen->search(ftext_op[i])->hide();
#else
static_cast<J2DTextBox*>(mpScreen->search(ftext_sv[i]))->setFont(mDoExt_getMesgFont());
static_cast<J2DTextBox*>(mpScreen->search(ftext_op[i]))->setFont(mDoExt_getMesgFont());
static_cast<J2DTextBox*>(mpScreen->search(ftext_sv[i]))->setString(0x20, "");
@ -290,6 +310,7 @@ void dMenu_Collect2D_c::screenSet() {
0x5F, static_cast<J2DTextBox*>(mpScreen->search(ftext_op[i]))->getStringPtr(), NULL);
mpScreen->search(text_sv[i])->hide();
mpScreen->search(text_op[i])->hide();
#endif
}
for (int i = 0; i < 5; i++) {
@ -301,6 +322,27 @@ void dMenu_Collect2D_c::screenSet() {
static_cast<J2DTextBox*>(mpScreenIcon->search(text_b_tag[i]))->setString(0x20, "");
}
#if REGION_JPN
static_cast<J2DTextBox*>(mpScreen->search('item_n00'))->setFont(mDoExt_getMesgFont());
static_cast<J2DTextBox*>(mpScreen->search('item_n01'))->setFont(mDoExt_getMesgFont());
static_cast<J2DTextBox*>(mpScreen->search('item_n02'))->setFont(mDoExt_getMesgFont());
static_cast<J2DTextBox*>(mpScreen->search('item_n03'))->setFont(mDoExt_getMesgFont());
static_cast<J2DTextBox*>(mpScreen->search('item_n00'))->setString(0x20, "");
static_cast<J2DTextBox*>(mpScreen->search('item_n01'))->setString(0x20, "");
static_cast<J2DTextBox*>(mpScreen->search('item_n02'))->setString(0x20, "");
static_cast<J2DTextBox*>(mpScreen->search('item_n03'))->setString(0x20, "");
static_cast<J2DTextBox*>(mpScreen->search('i_text1'))->setFont(mDoExt_getMesgFont());
static_cast<J2DTextBox*>(mpScreen->search('i_text0'))->setFont(mDoExt_getMesgFont());
static_cast<J2DTextBox*>(mpScreen->search('i_text1'))->setString(0x100, "");
static_cast<J2DTextBox*>(mpScreen->search('i_text0'))->setString(0x100, "");
mpScreen->search('item_n04')->hide();
mpScreen->search('item_n05')->hide();
mpScreen->search('item_n06')->hide();
mpScreen->search('item_n07')->hide();
mpScreen->search('f_text1')->hide();
mpScreen->search('f_text0')->hide();
#else
static_cast<J2DTextBox*>(mpScreen->search('item_n04'))->setFont(mDoExt_getMesgFont());
static_cast<J2DTextBox*>(mpScreen->search('item_n05'))->setFont(mDoExt_getMesgFont());
static_cast<J2DTextBox*>(mpScreen->search('item_n06'))->setFont(mDoExt_getMesgFont());
@ -320,6 +362,7 @@ void dMenu_Collect2D_c::screenSet() {
mpScreen->search('item_n03')->hide();
mpScreen->search('i_text1')->hide();
mpScreen->search('i_text0')->hide();
#endif
field_0x22d[0][0] = 0;
field_0x22d[1][0] = 0;
@ -2072,19 +2115,39 @@ void dMenu_Collect2D_c::_draw() {
mpScreen->draw(0.0f, 0.0f, grafPort);
if (mItemNameString == 0) {
#if REGION_JPN
char* stringPtr1 = static_cast<J2DTextBox*>(mpScreen->search('i_text1'))->getStringPtr();
#else
char* stringPtr1 = static_cast<J2DTextBox*>(mpScreen->search('f_text1'))->getStringPtr();
#endif
strcpy(stringPtr1, "");
#if REGION_JPN
char* stringPtr0 = static_cast<J2DTextBox*>(mpScreen->search('i_text0'))->getStringPtr();
#else
char* stringPtr0 = static_cast<J2DTextBox*>(mpScreen->search('f_text0'))->getStringPtr();
#endif
strcpy(stringPtr0, "");
} else {
#if REGION_JPN
J2DTextBox* textBox1 = static_cast<J2DTextBox*>(mpScreen->search('i_text1'));
#else
J2DTextBox* textBox1 = static_cast<J2DTextBox*>(mpScreen->search('f_text1'));
#endif
mpString->getString(mItemNameString, textBox1, NULL, NULL, NULL, 0);
#if REGION_JPN
J2DTextBox* textBox0 = static_cast<J2DTextBox*>(mpScreen->search('i_text0'));
#else
J2DTextBox* textBox0 = static_cast<J2DTextBox*>(mpScreen->search('f_text0'));
#endif
mpString->getString(mItemNameString, textBox0, NULL, NULL, NULL, 0);
#if REGION_JPN
textBox0 = static_cast<J2DTextBox*>(mpScreen->search('i_text0'));
#else
textBox0 = static_cast<J2DTextBox*>(mpScreen->search('f_text0'));
#endif
mpString->drawOutFontLocal(textBox0, -1.0f);
}
mpDrawCursor->draw();
@ -2174,6 +2237,17 @@ void dMenu_Collect2D_c::setItemNameString(u8 param_0, u8 param_1) {
if (uVar6 == 0) {
setItemNameStringNull();
} else {
#if REGION_JPN
char* stringPtr =
static_cast<J2DTextBox*>(mpScreen->search('item_n00'))->getStringPtr();
dMeter2Info_getStringKanji(uVar6, stringPtr, NULL);
stringPtr = static_cast<J2DTextBox*>(mpScreen->search('item_n01'))->getStringPtr();
dMeter2Info_getStringKanji(uVar6, stringPtr, NULL);
stringPtr = static_cast<J2DTextBox*>(mpScreen->search('item_n02'))->getStringPtr();
dMeter2Info_getStringKanji(uVar6, stringPtr, NULL);
stringPtr = static_cast<J2DTextBox*>(mpScreen->search('item_n03'))->getStringPtr();
dMeter2Info_getStringKanji(uVar6, stringPtr, NULL);
#else
char* stringPtr =
static_cast<J2DTextBox*>(mpScreen->search('item_n04'))->getStringPtr();
dMeter2Info_getStringKanji(uVar6, stringPtr, NULL);
@ -2183,6 +2257,7 @@ void dMenu_Collect2D_c::setItemNameString(u8 param_0, u8 param_1) {
dMeter2Info_getStringKanji(uVar6, stringPtr, NULL);
stringPtr = static_cast<J2DTextBox*>(mpScreen->search('item_n07'))->getStringPtr();
dMeter2Info_getStringKanji(uVar6, stringPtr, NULL);
#endif
}
}
}
@ -2191,6 +2266,15 @@ void dMenu_Collect2D_c::setItemNameString(u8 param_0, u8 param_1) {
*/
void dMenu_Collect2D_c::setItemNameStringNull() {
mItemNameString = 0;
#if REGION_JPN
J2DTextBox* textBox = (J2DTextBox*)mpScreen->search('item_n00');
strcpy(textBox->getStringPtr(), "");
textBox = (J2DTextBox*)mpScreen->search('item_n01');
strcpy(textBox->getStringPtr(), "");
textBox = (J2DTextBox*)mpScreen->search('item_n02');
strcpy(textBox->getStringPtr(), "");
textBox = (J2DTextBox*)mpScreen->search('item_n03');
#else
J2DTextBox* textBox = (J2DTextBox*)mpScreen->search('item_n04');
strcpy(textBox->getStringPtr(), "");
textBox = (J2DTextBox*)mpScreen->search('item_n05');
@ -2198,6 +2282,7 @@ void dMenu_Collect2D_c::setItemNameStringNull() {
textBox = (J2DTextBox*)mpScreen->search('item_n06');
strcpy(textBox->getStringPtr(), "");
textBox = (J2DTextBox*)mpScreen->search('item_n07');
#endif
strcpy(textBox->getStringPtr(), "");
}

View File

@ -134,7 +134,11 @@ dMsgObject_HIO_c::dMsgObject_HIO_c() {
mBoxMidnaHaloAlpha = 1.0f;
mBoxWolfHaloAlpha = 0.3f;
mBoxTalkHaloAlpha = 1.0f;
#if REGION_JPN
mBoxTalkScaleX = 1.1f;
#else
mBoxTalkScaleX = 1.2f;
#endif
mBoxNaviScaleX = 1.0f;
mBoxMidnaScaleX = 1.0f;
mBoxItemScaleX = 1.05f;
@ -1652,7 +1656,7 @@ void dMsgObject_c::readMessageGroupLocal(mDoDvdThd_mountXArchive_c** p_arcMount)
static char arcName[22];
int msgGroup = dStage_stagInfo_GetMsgGroup(dComIfGp_getStage()->getStagInfo());
#if VERSION == VERSION_GCN_PAL
#if REGION_PAL
switch (dComIfGs_getPalLanguage()) {
case dSv_player_config_c::LANGAUGE_GERMAN:
sprintf(arcName, "/res/Msgde/bmgres%d.arc", msgGroup);
@ -1669,6 +1673,8 @@ void dMsgObject_c::readMessageGroupLocal(mDoDvdThd_mountXArchive_c** p_arcMount)
default:
sprintf(arcName, "/res/Msguk/bmgres%d.arc", msgGroup);
}
#elif REGION_JPN
sprintf(arcName, "/res/Msgjp/bmgres%d.arc", msgGroup);
#else
sprintf(arcName, "/res/Msgus/bmgres%d.arc", msgGroup);
#endif

View File

@ -219,17 +219,27 @@ void dMsgUnit_c::setTag(int i_type, int i_value, char* o_buffer, bool param_4) {
*o_buffer = 0;
bool stack9 = false;
bool stack8 = false;
int param_2b = i_value;
int param_2b = i_value; // sp40
int tens_digit; // sp3C
int ones_digit; // sp38
int seconds; // r27
int minutes; // sp34
if (i_type == 0x10000) {
sprintf(o_buffer, "%d", i_value);
} else if (i_type == 0x10001) {
int tens_digit = i_value / 10;
int ones_digit = i_value % 10;
return;
}
if (i_type == 0x10001) {
tens_digit = i_value / 10;
ones_digit = i_value % 10;
sprintf(o_buffer, "%d-%d", tens_digit, ones_digit);
} else if (i_type == 4 && param_4 == true) {
int seconds = i_value / 1000;
int minutes = seconds / 60;
return;
}
if (i_type == 4 && param_4 == true) {
seconds = i_value / 1000;
minutes = seconds / 60;
seconds -= minutes * 60;
if (minutes > 99) {
minutes = 99;
@ -238,7 +248,12 @@ void dMsgUnit_c::setTag(int i_type, int i_value, char* o_buffer, bool param_4) {
if (minutes != 0 || seconds != 0) {
sprintf(o_buffer, "%d:%02d", minutes, seconds);
}
} else if (i_type == 3 && param_4 == true) {
return;
}
if (i_type == 3 && param_4 == true) {
(void)seconds; // dummy use to force into register instead of stack
f32 iVar8b;
f32 dayTime = g_env_light.getDaytime();
f32 hour = dayTime / 15.0f;
@ -266,20 +281,20 @@ void dMsgUnit_c::setTag(int i_type, int i_value, char* o_buffer, bool param_4) {
bmg_section_t* pSection = (bmg_section_t*)(((u8*)pHeader) + filepos);
for (; filepos < filesize; filepos += pSection->size) {
switch(pSection->magic) {
case 'FLW1':
break;
case 'FLI1':
break;
case 'INF1':
pInfoBlock = (dMsgUnit_inf1_section_t*)pSection;
break;
case 'DAT1':
pMsgDataBlock = pSection;
break;
case 'STR1':
pStrAttributeBlock = (str1_section_t*)pSection;
break;
switch (pSection->magic) {
case 'FLW1':
break;
case 'FLI1':
break;
case 'INF1':
pInfoBlock = (dMsgUnit_inf1_section_t*)pSection;
break;
case 'DAT1':
pMsgDataBlock = pSection;
break;
case 'STR1':
pStrAttributeBlock = (str1_section_t*)pSection;
break;
}
pSection = (bmg_section_t*)((u8*)pSection + pSection->size);
}
@ -287,39 +302,45 @@ void dMsgUnit_c::setTag(int i_type, int i_value, char* o_buffer, bool param_4) {
// This section is weird. The debug seems like entriesStr is outside the condition
// but the normal build doesn't really work with that. Same for pInfoBlock->entries.
#ifdef DEBUG
dMsgUnit_inf1_entry* entry = &pInfoBlock->entries[i_type];
u32 dat1EntryOffset = entry->dat1EntryOffset;
u16 startFrame = entry->startFrame;
u16 endFrame = entry->endFrame;
const char* entriesStr = pStrAttributeBlock->entries->str;
#else
u16 startFrame = pInfoBlock->entries[i_type].startFrame;
u16 endFrame = pInfoBlock->entries[i_type].endFrame;
const char* entriesStr;
#endif
#ifdef DEBUG
dMsgUnit_inf1_entry* entriesInf = &pInfoBlock->entries[i_type];
u32 dat1EntryOffset = entriesInf->dat1EntryOffset;
const char* uVar5;
if (i_value == 1
#ifdef DEBUG
|| (dComIfGs_getPalLanguage() == dSv_player_config_c::LANGAUGE_SPANISH && i_value == 0)
#elif VERSION == VERSION_GCN_PAL
|| (dComIfGs_getPalLanguage() == dSv_player_config_c::LANGAUGE_FRENCH && i_value == 0)
#endif
) {
#ifdef DEBUG
uVar5 = entriesStr + endFrame;
u16 vals[14];
vals[0] = entriesInf->startFrame;
vals[1] = entriesInf->endFrame;
(void)entriesInf; // dummy use to force into register instead of stack
str1_entry_t* entriesStr = pStrAttributeBlock->entries;
#else
u32 dat1EntryOffset = pInfoBlock->entries[i_type].dat1EntryOffset;
const char* uVar5;
u16 vals[14];
vals[0] = pInfoBlock->entries[i_type].startFrame;
vals[1] = pInfoBlock->entries[i_type].endFrame;
#endif
#if REGION_PAL
if (i_value == 1 ||
(dComIfGs_getPalLanguage() == dSv_player_config_c::LANGAUGE_FRENCH &&
i_value == 0)) {
#elif !REGION_USA
if (i_value == 1 ||
(dComIfGs_getPalLanguage() == dSv_player_config_c::LANGAUGE_SPANISH &&
i_value == 0)) {
#else
if (i_value == 1) {
#endif
#ifdef DEBUG
uVar5 = entriesStr->str + vals[0];
#else
uVar5 = pStrAttributeBlock->entries->str + vals[0];
#endif
} else {
uVar5 = entriesStr + startFrame;
#elif VERSION == VERSION_GCN_PAL
uVar5 = pStrAttributeBlock->entries->str + startFrame;
} else {
uVar5 = pStrAttributeBlock->entries->str + endFrame;
#else
uVar5 = pStrAttributeBlock->entries->str + endFrame;
} else {
uVar5 = pStrAttributeBlock->entries->str + startFrame;
#endif
#ifdef DEBUG
uVar5 = entriesStr->str + vals[1];
#else
uVar5 = pStrAttributeBlock->entries->str + vals[1];
#endif
}
if (strcmp(uVar5, "") == 0) {
@ -328,7 +349,6 @@ void dMsgUnit_c::setTag(int i_type, int i_value, char* o_buffer, bool param_4) {
sprintf(o_buffer, "%d %s", i_value, uVar5);
}
}
if (i_type == 3 && param_4 == true) {
char buffer[20];
setTag(4, 0, buffer, false);

View File

@ -3540,8 +3540,13 @@ static ResFONT* mDoExt_resfont0;
/* 80014994-800149F0 00F2D4 005C+00 1/1 0/0 0/0 .text mDoExt_initFont0__Fv */
static void mDoExt_initFont0() {
static char const fontdata[] = "rodan_b_24_22.bfn";
#if REGION_JPN
mDoExt_initFontCommon(&mDoExt_font0, &mDoExt_resfont0, mDoExt_getZeldaHeap(),
fontdata, dComIfGp_getFontArchive(), 0, 200, 512);
#else
mDoExt_initFontCommon(&mDoExt_font0, &mDoExt_resfont0, mDoExt_getZeldaHeap(),
fontdata, dComIfGp_getFontArchive(), 1, 0, 0);
#endif
}
/* 800149F0-80014A2C 00F330 003C+00 0/0 51/51 2/2 .text mDoExt_getMesgFont__Fv */
@ -3564,7 +3569,11 @@ void mDoExt_removeMesgFont() {
delete mDoExt_font0;
mDoExt_font0 = NULL;
if (mDoExt_resfont0 != NULL) {
#if REGION_JPN
JKRFileLoader::removeResource(mDoExt_resfont0, NULL);
#else
JKRFree(mDoExt_resfont0);
#endif
mDoExt_resfont0 = NULL;
}
}