From eacf2883a62a7e88dd92cb590887858655feea02 Mon Sep 17 00:00:00 2001 From: AltoXorg <56553686+Alto1772@users.noreply.github.com> Date: Thu, 7 Dec 2023 11:20:52 +0800 Subject: [PATCH 01/18] main segment cleanup --- ver/jp/asm/data/os/exceptasm.rodata.s | 54 ------------------ ver/jp/asm/data/os/osSetIntMask.rodata.s | 71 ------------------------ ver/jp/asm/os/exceptasm.s | 51 +++++++++++++++++ ver/jp/asm/os/osSetIntMask.s | 68 +++++++++++++++++++++++ ver/jp/splat.yaml | 48 ---------------- ver/jp/undefined_syms.txt | 7 --- 6 files changed, 119 insertions(+), 180 deletions(-) delete mode 100644 ver/jp/asm/data/os/exceptasm.rodata.s delete mode 100644 ver/jp/asm/data/os/osSetIntMask.rodata.s diff --git a/ver/jp/asm/data/os/exceptasm.rodata.s b/ver/jp/asm/data/os/exceptasm.rodata.s deleted file mode 100644 index 54e3f973425..00000000000 --- a/ver/jp/asm/data/os/exceptasm.rodata.s +++ /dev/null @@ -1,54 +0,0 @@ -.include "macro.inc" - -.section .rodata - -/* Generated by spimdisasm 1.11.1 */ - -glabel D_JP_80099D60 -/* 75160 80099D60 */ .byte 0x00 -/* 75161 80099D61 */ .byte 0x14 -/* 75162 80099D62 */ .byte 0x18 -/* 75163 80099D63 */ .byte 0x18 -/* 75164 80099D64 */ .byte 0x1C -/* 75165 80099D65 */ .byte 0x1C -/* 75166 80099D66 */ .byte 0x1C -/* 75167 80099D67 */ .byte 0x1C -/* 75168 80099D68 */ .byte 0x20 -/* 75169 80099D69 */ .byte 0x20 -/* 7516A 80099D6A */ .byte 0x20 -/* 7516B 80099D6B */ .byte 0x20 -/* 7516C 80099D6C */ .byte 0x20 -/* 7516D 80099D6D */ .byte 0x20 -/* 7516E 80099D6E */ .byte 0x20 -/* 7516F 80099D6F */ .byte 0x20 -/* 75170 80099D70 */ .byte 0x00 -/* 75171 80099D71 */ .byte 0x04 -/* 75172 80099D72 */ .byte 0x08 -/* 75173 80099D73 */ .byte 0x08 -/* 75174 80099D74 */ .byte 0x0C -/* 75175 80099D75 */ .byte 0x0C -/* 75176 80099D76 */ .byte 0x0C -/* 75177 80099D77 */ .byte 0x0C -/* 75178 80099D78 */ .byte 0x10 -/* 75179 80099D79 */ .byte 0x10 -/* 7517A 80099D7A */ .byte 0x10 -/* 7517B 80099D7B */ .byte 0x10 -/* 7517C 80099D7C */ .byte 0x10 -/* 7517D 80099D7D */ .byte 0x10 -/* 7517E 80099D7E */ .byte 0x10 -/* 7517F 80099D7F */ .byte 0x10 - -.align 3 -glabel jtbl_JP_80099D80 -/* 75180 80099D80 8006AEE0 */ .word .LJP_8006AEE0 -/* 75184 80099D84 8006AEA4 */ .word .LJP_8006AEA4 -/* 75188 80099D88 8006AE80 */ .word .LJP_8006AE80 -/* 7518C 80099D8C 8006ACA8 */ .word .LJP_8006ACA8 -/* 75190 80099D90 8006AC60 */ .word .LJP_8006AC60 -/* 75194 80099D94 8006AE1C */ .word .LJP_8006AE1C -/* 75198 80099D98 8006AC24 */ .word .LJP_8006AC24 -/* 7519C 80099D9C 8006AC30 */ .word .LJP_8006AC30 -/* 751A0 80099DA0 8006AC3C */ .word .LJP_8006AC3C -/* 751A4 80099DA4 00000000 */ .word 0x00000000 -/* 751A8 80099DA8 00000000 */ .word 0x00000000 -/* 751AC 80099DAC 00000000 */ .word 0x00000000 diff --git a/ver/jp/asm/data/os/osSetIntMask.rodata.s b/ver/jp/asm/data/os/osSetIntMask.rodata.s deleted file mode 100644 index 292f8cc9b8d..00000000000 --- a/ver/jp/asm/data/os/osSetIntMask.rodata.s +++ /dev/null @@ -1,71 +0,0 @@ -.include "macro.inc" - -.section .rodata - -/* Generated by spimdisasm 1.11.1 */ - -glabel D_80099AA0 -/* 74E80 80099A80 */ .short 0x0555 -/* 74E82 80099A82 */ .short 0x0556 -/* 74E84 80099A84 */ .short 0x0559 -/* 74E86 80099A86 */ .short 0x055A -/* 74E88 80099A88 */ .short 0x0565 -/* 74E8A 80099A8A */ .short 0x0566 -/* 74E8C 80099A8C */ .short 0x0569 -/* 74E8E 80099A8E */ .short 0x056A -/* 74E90 80099A90 */ .short 0x0595 -/* 74E92 80099A92 */ .short 0x0596 -/* 74E94 80099A94 */ .short 0x0599 -/* 74E96 80099A96 */ .short 0x059A -/* 74E98 80099A98 */ .short 0x05A5 -/* 74E9A 80099A9A */ .short 0x05A6 -/* 74E9C 80099A9C */ .short 0x05A9 -/* 74E9E 80099A9E */ .short 0x05AA -/* 74EA0 80099AA0 */ .short 0x0655 -/* 74EA2 80099AA2 */ .short 0x0656 -/* 74EA4 80099AA4 */ .short 0x0659 -/* 74EA6 80099AA6 */ .short 0x065A -/* 74EA8 80099AA8 */ .short 0x0665 -/* 74EAA 80099AAA */ .short 0x0666 -/* 74EAC 80099AAC */ .short 0x0669 -/* 74EAE 80099AAE */ .short 0x066A -/* 74EB0 80099AB0 */ .short 0x0695 -/* 74EB2 80099AB2 */ .short 0x0696 -/* 74EB4 80099AB4 */ .short 0x0699 -/* 74EB6 80099AB6 */ .short 0x069A -/* 74EB8 80099AB8 */ .short 0x06A5 -/* 74EBA 80099ABA */ .short 0x06A6 -/* 74EBC 80099ABC */ .short 0x06A9 -/* 74EBE 80099ABE */ .short 0x06AA -/* 74EC0 80099AC0 */ .short 0x0955 -/* 74EC2 80099AC2 */ .short 0x0956 -/* 74EC4 80099AC4 */ .short 0x0959 -/* 74EC6 80099AC6 */ .short 0x095A -/* 74EC8 80099AC8 */ .short 0x0965 -/* 74ECA 80099ACA */ .short 0x0966 -/* 74ECC 80099ACC */ .short 0x0969 -/* 74ECE 80099ACE */ .short 0x096A -/* 74ED0 80099AD0 */ .short 0x0995 -/* 74ED2 80099AD2 */ .short 0x0996 -/* 74ED4 80099AD4 */ .short 0x0999 -/* 74ED6 80099AD6 */ .short 0x099A -/* 74ED8 80099AD8 */ .short 0x09A5 -/* 74EDA 80099ADA */ .short 0x09A6 -/* 74EDC 80099ADC */ .short 0x09A9 -/* 74EDE 80099ADE */ .short 0x09AA -/* 74EE0 80099AE0 */ .short 0x0A55 -/* 74EE2 80099AE2 */ .short 0x0A56 -/* 74EE4 80099AE4 */ .short 0x0A59 -/* 74EE6 80099AE6 */ .short 0x0A5A -/* 74EE8 80099AE8 */ .short 0x0A65 -/* 74EEA 80099AEA */ .short 0x0A66 -/* 74EEC 80099AEC */ .short 0x0A69 -/* 74EEE 80099AEE */ .short 0x0A6A -/* 74EF0 80099AF0 */ .short 0x0A95 -/* 74EF2 80099AF2 */ .short 0x0A96 -/* 74EF4 80099AF4 */ .short 0x0A99 -/* 74EF6 80099AF6 */ .short 0x0A9A -/* 74EF8 80099AF8 */ .short 0x0AA5 -/* 74EFA 80099AFA */ .short 0x0AA6 -/* 74EFC 80099AFC */ .short 0x0AA9 -/* 74EFE 80099AFE */ .short 0x0AAA diff --git a/ver/jp/asm/os/exceptasm.s b/ver/jp/asm/os/exceptasm.s index 52fc1c52c71..bfd23ff36d3 100644 --- a/ver/jp/asm/os/exceptasm.s +++ b/ver/jp/asm/os/exceptasm.s @@ -5,6 +5,57 @@ .set noreorder /* don't insert nops after branches */ .set gp=64 /* allow use of 64-bit general purpose registers */ +.section .rodata + +glabel D_JP_80099D60 +/* 75160 80099D60 */ .byte 0x00 +/* 75161 80099D61 */ .byte 0x14 +/* 75162 80099D62 */ .byte 0x18 +/* 75163 80099D63 */ .byte 0x18 +/* 75164 80099D64 */ .byte 0x1C +/* 75165 80099D65 */ .byte 0x1C +/* 75166 80099D66 */ .byte 0x1C +/* 75167 80099D67 */ .byte 0x1C +/* 75168 80099D68 */ .byte 0x20 +/* 75169 80099D69 */ .byte 0x20 +/* 7516A 80099D6A */ .byte 0x20 +/* 7516B 80099D6B */ .byte 0x20 +/* 7516C 80099D6C */ .byte 0x20 +/* 7516D 80099D6D */ .byte 0x20 +/* 7516E 80099D6E */ .byte 0x20 +/* 7516F 80099D6F */ .byte 0x20 +/* 75170 80099D70 */ .byte 0x00 +/* 75171 80099D71 */ .byte 0x04 +/* 75172 80099D72 */ .byte 0x08 +/* 75173 80099D73 */ .byte 0x08 +/* 75174 80099D74 */ .byte 0x0C +/* 75175 80099D75 */ .byte 0x0C +/* 75176 80099D76 */ .byte 0x0C +/* 75177 80099D77 */ .byte 0x0C +/* 75178 80099D78 */ .byte 0x10 +/* 75179 80099D79 */ .byte 0x10 +/* 7517A 80099D7A */ .byte 0x10 +/* 7517B 80099D7B */ .byte 0x10 +/* 7517C 80099D7C */ .byte 0x10 +/* 7517D 80099D7D */ .byte 0x10 +/* 7517E 80099D7E */ .byte 0x10 +/* 7517F 80099D7F */ .byte 0x10 + +.align 3 +glabel jtbl_JP_80099D80 +/* 75180 80099D80 8006AEE0 */ .word .LJP_8006AEE0 +/* 75184 80099D84 8006AEA4 */ .word .LJP_8006AEA4 +/* 75188 80099D88 8006AE80 */ .word .LJP_8006AE80 +/* 7518C 80099D8C 8006ACA8 */ .word .LJP_8006ACA8 +/* 75190 80099D90 8006AC60 */ .word .LJP_8006AC60 +/* 75194 80099D94 8006AE1C */ .word .LJP_8006AE1C +/* 75198 80099D98 8006AC24 */ .word .LJP_8006AC24 +/* 7519C 80099D9C 8006AC30 */ .word .LJP_8006AC30 +/* 751A0 80099DA0 8006AC3C */ .word .LJP_8006AC3C +/* 751A4 80099DA4 00000000 */ .word 0x00000000 +/* 751A8 80099DA8 00000000 */ .word 0x00000000 +/* 751AC 80099DAC 00000000 */ .word 0x00000000 + .section .text, "ax" /* Generated by spimdisasm 1.11.1 */ diff --git a/ver/jp/asm/os/osSetIntMask.s b/ver/jp/asm/os/osSetIntMask.s index dc3b28e10c1..55900940eb7 100644 --- a/ver/jp/asm/os/osSetIntMask.s +++ b/ver/jp/asm/os/osSetIntMask.s @@ -5,6 +5,74 @@ .set noreorder /* don't insert nops after branches */ .set gp=64 /* allow use of 64-bit general purpose registers */ +.section .rodata + +glabel D_80099AA0 +/* 74E80 80099A80 */ .short 0x0555 +/* 74E82 80099A82 */ .short 0x0556 +/* 74E84 80099A84 */ .short 0x0559 +/* 74E86 80099A86 */ .short 0x055A +/* 74E88 80099A88 */ .short 0x0565 +/* 74E8A 80099A8A */ .short 0x0566 +/* 74E8C 80099A8C */ .short 0x0569 +/* 74E8E 80099A8E */ .short 0x056A +/* 74E90 80099A90 */ .short 0x0595 +/* 74E92 80099A92 */ .short 0x0596 +/* 74E94 80099A94 */ .short 0x0599 +/* 74E96 80099A96 */ .short 0x059A +/* 74E98 80099A98 */ .short 0x05A5 +/* 74E9A 80099A9A */ .short 0x05A6 +/* 74E9C 80099A9C */ .short 0x05A9 +/* 74E9E 80099A9E */ .short 0x05AA +/* 74EA0 80099AA0 */ .short 0x0655 +/* 74EA2 80099AA2 */ .short 0x0656 +/* 74EA4 80099AA4 */ .short 0x0659 +/* 74EA6 80099AA6 */ .short 0x065A +/* 74EA8 80099AA8 */ .short 0x0665 +/* 74EAA 80099AAA */ .short 0x0666 +/* 74EAC 80099AAC */ .short 0x0669 +/* 74EAE 80099AAE */ .short 0x066A +/* 74EB0 80099AB0 */ .short 0x0695 +/* 74EB2 80099AB2 */ .short 0x0696 +/* 74EB4 80099AB4 */ .short 0x0699 +/* 74EB6 80099AB6 */ .short 0x069A +/* 74EB8 80099AB8 */ .short 0x06A5 +/* 74EBA 80099ABA */ .short 0x06A6 +/* 74EBC 80099ABC */ .short 0x06A9 +/* 74EBE 80099ABE */ .short 0x06AA +/* 74EC0 80099AC0 */ .short 0x0955 +/* 74EC2 80099AC2 */ .short 0x0956 +/* 74EC4 80099AC4 */ .short 0x0959 +/* 74EC6 80099AC6 */ .short 0x095A +/* 74EC8 80099AC8 */ .short 0x0965 +/* 74ECA 80099ACA */ .short 0x0966 +/* 74ECC 80099ACC */ .short 0x0969 +/* 74ECE 80099ACE */ .short 0x096A +/* 74ED0 80099AD0 */ .short 0x0995 +/* 74ED2 80099AD2 */ .short 0x0996 +/* 74ED4 80099AD4 */ .short 0x0999 +/* 74ED6 80099AD6 */ .short 0x099A +/* 74ED8 80099AD8 */ .short 0x09A5 +/* 74EDA 80099ADA */ .short 0x09A6 +/* 74EDC 80099ADC */ .short 0x09A9 +/* 74EDE 80099ADE */ .short 0x09AA +/* 74EE0 80099AE0 */ .short 0x0A55 +/* 74EE2 80099AE2 */ .short 0x0A56 +/* 74EE4 80099AE4 */ .short 0x0A59 +/* 74EE6 80099AE6 */ .short 0x0A5A +/* 74EE8 80099AE8 */ .short 0x0A65 +/* 74EEA 80099AEA */ .short 0x0A66 +/* 74EEC 80099AEC */ .short 0x0A69 +/* 74EEE 80099AEE */ .short 0x0A6A +/* 74EF0 80099AF0 */ .short 0x0A95 +/* 74EF2 80099AF2 */ .short 0x0A96 +/* 74EF4 80099AF4 */ .short 0x0A99 +/* 74EF6 80099AF6 */ .short 0x0A9A +/* 74EF8 80099AF8 */ .short 0x0AA5 +/* 74EFA 80099AFA */ .short 0x0AA6 +/* 74EFC 80099AFC */ .short 0x0AA9 +/* 74EFE 80099AFE */ .short 0x0AAA + .section .text, "ax" /* Generated by spimdisasm 1.11.1 */ diff --git a/ver/jp/splat.yaml b/ver/jp/splat.yaml index 251e4cf3396..a8e6165c57c 100644 --- a/ver/jp/splat.yaml +++ b/ver/jp/splat.yaml @@ -392,54 +392,6 @@ segments: - [0x72A40, bin, gspF3DEX2kawase_fifo_data] - [0x72E60, bin, n_aspMain_data] - [0x73110] - - [auto, .rodata, is_debug] - - [auto, .rodata, main_loop] - - [auto, .rodata, 43F0] - - [auto, .rodata, curtains] - - [auto, .rodata, crash_screen] - - [auto, .rodata, cam_main] - - [auto, .rodata, cam_mode_5] - - [auto, .rodata, cam_mode_zone_interp] - - [auto, .rodata, cam_math] - - [auto, .rodata, state_logos] - - [auto, .rodata, state_file_select] - - [auto, .rodata, 111f0_len_860] - - [auto, .rodata, state_intro] - - [auto, .rodata, state_title_screen] - - [auto, .rodata, state_demo] - - [auto, .rodata, npc] - - [auto, .rodata, encounter] - - [auto, .rodata, status_icons] - - [auto, .rodata, 23680] - - [auto, .rodata, audio/28910_len_5090] - - [auto, .rodata, audio/2e230_len_2190] - - [auto, .rodata, audio/30450] - - [auto, .rodata, audio/33450] - - [auto, .rodata, audio/reverb] - - - [auto, .rodata, 5B320] - - [auto, .rodata, world/world] - - [0x74E80, rodata, os/osSetIntMask] - - [0x74F00] - - [auto, .rodata, os/devmgr] - - [auto, .rodata, os/aisetfrequency] - - [auto, .rodata, os/guLookAt] - - [auto, .rodata, os/lookathil] - - [auto, .rodata, os/lookatref] - - [auto, .rodata, os/perspective] - - [auto, .rodata, os/xprintf] - - [auto, .rodata, os/viswapcontext] - - - [0x75160, rodata, os/exceptasm] - - [0x751B0] - - [auto, .rodata, os/xlitob] - - [auto, .rodata, os/xldtob] - - [auto, .rodata, gcc/divdi3] - - [auto, .rodata, gcc/moddi3] - - [auto, .rodata, gcc/udivdi3] - - [auto, .rodata, gcc/umoddi3] - - [auto, .rodata, battle/battle] - - [0x75990] - name: engine1 type: code diff --git a/ver/jp/undefined_syms.txt b/ver/jp/undefined_syms.txt index 99b3901cd92..c8e533b5ece 100644 --- a/ver/jp/undefined_syms.txt +++ b/ver/jp/undefined_syms.txt @@ -34,12 +34,8 @@ obfuscation_shims_ROM_START = 0x31F340; battle_heap_create_obfuscated_ROM_END = 0x31F340; obfuscation_shims_ROM_END = 0x31F430; obfuscated_obfuscation_shims_VRAM = 0x7599F6D8; - -osViModeNtscLan1 = 0x80095800; - osMemSize = 0x80000318; osTvType = 0x80000300; -osMemSize = 0x80000318; osRomBase = 0x80000308; osResetType = 0x8000030C; osAppNMIBuffer = 0x8000031C; @@ -48,7 +44,6 @@ osAppNMIBuffer = 0x8000031C; __osGetSR = 0x8006C650; __osHwIntTable = 0x800958A0; -D_80074010 = 0x80073FF0; // main.bss @@ -1189,7 +1184,6 @@ HES_StatusSPIncrement4 = 0x801084A0; HES_StatusSPIncrement5 = 0x801084C8; HES_StatusSPIncrement6 = 0x801084F0; HES_StatusSPIncrement7 = 0x80108518; -HES_StatusSPIncrement8 = 0x80108540; HES_StatusStar1 = 0x80108568; HES_StatusStar2 = 0x80108590; @@ -1324,4 +1318,3 @@ EVS_WorldTwink_Update = 0x802BD20C; EVS_WorldTwink_UseAbility = 0x802BD228; EVS_WorldTwink_PutAway = 0x802BD244; -D_80109610_JP = 0x80109610; From 7f8326d008c94c617c98eb5ad95d85f19fb3d7cb Mon Sep 17 00:00:00 2001 From: AltoXorg <56553686+Alto1772@users.noreply.github.com> Date: Mon, 11 Dec 2023 21:37:18 +0800 Subject: [PATCH 02/18] engine1 --- include/common_structs.h | 4 +- src/8a860_len_3f30.c | 323 ++++- .../popup_menu_draw_menu_contents.s | 1269 +++++++++++++++++ ver/jp/splat.yaml | 435 +++++- ver/jp/symbol_addrs.txt | 466 ++++++ ver/jp/undefined_syms.txt | 112 +- 6 files changed, 2475 insertions(+), 134 deletions(-) create mode 100644 ver/jp/asm/nonmatchings/8a860_len_3f30/popup_menu_draw_menu_contents.s diff --git a/include/common_structs.h b/include/common_structs.h index e0d5a176105..756d55819bf 100644 --- a/include/common_structs.h +++ b/include/common_structs.h @@ -1201,7 +1201,9 @@ typedef struct MessagePrintState { /* 0x486 */ u8 curLine; /* 0x487 */ u8 unkArraySize; /* 0x488 */ u16 lineEndPos[4]; - /* 0x490 */ char unk_490[0x38]; + /* 0x490 */ char unk_490[0x18]; + /* 0x4A8 */ u8 unk4A8; // curOption in JP? + /* 0x4A9 */ char unk_4A9[0x1F]; /* 0x4C8 */ u16 unk_4C8; /* 0x4CA */ s16 unk_4CA; /* 0x4CC */ u16 unk_4CC; diff --git a/src/8a860_len_3f30.c b/src/8a860_len_3f30.c index 96c14ec35dd..10210b24013 100644 --- a/src/8a860_len_3f30.c +++ b/src/8a860_len_3f30.c @@ -17,6 +17,7 @@ extern HudScript HES_PartnerRank2B; HudScript* D_80109890[] = { &HES_PartnerRank1A, &HES_PartnerRank2A }; HudScript* D_80109898[] = { &HES_PartnerRank1B, &HES_PartnerRank2B }; +#if !VERSION_JP s16 PopupWorldStartX[] = { [POPUP_MENU_USE_ITEM] 140, [POPUP_MENU_SWITCH_PARTNER] 140, @@ -50,6 +51,7 @@ s16 PopupContentScissorWidths[] = { [POPUP_MENU_USEKEY] 137, [POPUP_MENU_POST_OFFICE] 137, }; +#endif SHIFT_BSS s32 gPopupState; SHIFT_BSS s32 D_8010D644; @@ -315,6 +317,14 @@ void func_800F16CC(void) { gPopupState = POPUP_STATE_20; } +#if VERSION_JP +#define MENU_USEKEY_DIFF 242 +#define MENU_ALREADY_PARTNER_DIFF 32 +#else +#define MENU_USEKEY_DIFF 280 +#define MENU_ALREADY_PARTNER_DIFF 40 +#endif + #if VERSION_PAL s32 popup_menu_update(void); INCLUDE_ASM(s32, "8a860_len_3f30", popup_menu_update); @@ -339,19 +349,62 @@ s32 popup_menu_update(void) { switch (gPopupState) { case POPUP_STATE_INIT: +#if VERSION_JP + D_8010D67C = 32; + D_8010D67E = 72; + D_8010D680 = 32; + PopupMenu_StarPieceCounterPosX = 32; +#else D_8010D67C = 20; D_8010D67E = 72; D_8010D680 = 20; +#endif D_8010D682 = 186; D_8010D684 = 16; D_8010D686 = 88; +#if !VERSION_JP PopupMenu_StarPieceCounterPosX = 32; +#endif PopupMenu_StarPieceCounterPosY = 164; if (PopupNotBattle) { +#if VERSION_JP + + switch (gPopupMenu->popupType) { + case POPUP_MENU_USE_ITEM: + case POPUP_MENU_THROW_AWAY_ITEM: + case POPUP_MENU_CHECK_ITEM: + case POPUP_MENU_CLAIM_ITEM: + case POPUP_MENU_READ_LETTER: + case POPUP_MENU_TAKE_FROM_CHEST: + case POPUP_MENU_USEKEY: + D_8010D67C += 144; + break; + case POPUP_MENU_TRADE_FOR_BADGE: + D_8010D67C += 122; + break; + case POPUP_MENU_UPGRADE_PARTNER: + D_8010D67C += 134; + break; + case POPUP_MENU_SELL_ITEM: + D_8010D67C += 122; + break; + case POPUP_MENU_SWITCH_PARTNER: + case POPUP_MENU_READ_DIARY_PAGE: + case POPUP_MENU_READ_POSTCARD: + case POPUP_MENU_POST_OFFICE: + D_8010D67C += 160; + break; + } +#else D_8010D67C = PopupWorldStartX[gPopupMenu->popupType] + 20; +#endif } if (PopupMenu_MaxDisplayableEntryCount >= 7) { +#if VERSION_JP + D_8010D67E -= 10; +#else D_8010D67E = 62; +#endif } D_8010D68C = 0; elementID = hud_element_create(&HES_EmptyBar); @@ -540,6 +593,68 @@ s32 popup_menu_update(void) { set_window_update(WINDOW_ID_15, 2); set_window_update(WINDOW_ID_17, 1); } +#elif VERSION_JP + switch (gPopupMenu->popupType) { + case POPUP_MENU_USE_ITEM: + case POPUP_MENU_THROW_AWAY_ITEM: + case POPUP_MENU_CHECK_ITEM: + case POPUP_MENU_CLAIM_ITEM: + case POPUP_MENU_TAKE_FROM_CHEST: + case POPUP_MENU_USEKEY: + set_window_properties(WINDOW_ID_14, posX, posY, 130, (PopupMenu_DisplayedEntryCount * LINE_HEIGHT) + 26, WINDOW_PRIORITY_20, popup_menu_draw_menu_contents, NULL, -1); + set_window_properties(WINDOW_ID_15, 12, -6, 106, 16, WINDOW_PRIORITY_21, popup_menu_draw_title_contents, NULL, WINDOW_ID_14); + set_window_update(WINDOW_ID_15, WINDOW_UPDATE_SHOW); + set_window_update(WINDOW_ID_17, WINDOW_UPDATE_HIDE); + break; + case POPUP_MENU_SWITCH_PARTNER: + set_window_properties(WINDOW_ID_14, posX, posY, 104, (PopupMenu_DisplayedEntryCount * LINE_HEIGHT) + 26, WINDOW_PRIORITY_20, popup_menu_draw_menu_contents, NULL, -1); + set_window_properties(WINDOW_ID_17, 14, -6, 72, 16, WINDOW_PRIORITY_21, popup_menu_draw_title_contents, NULL, WINDOW_ID_14); + set_window_update(WINDOW_ID_15, WINDOW_UPDATE_HIDE); + set_window_update(WINDOW_ID_17, WINDOW_UPDATE_SHOW); + break; + case POPUP_MENU_TRADE_FOR_BADGE: + set_window_properties(WINDOW_ID_14, posX, posY, 152, (PopupMenu_DisplayedEntryCount * LINE_HEIGHT) + 26, WINDOW_PRIORITY_20, popup_menu_draw_menu_contents, NULL, -1); + set_window_properties(WINDOW_ID_15, 12, -6, 106, 16, WINDOW_PRIORITY_21, popup_menu_draw_title_contents, NULL, WINDOW_ID_14); + set_window_update(WINDOW_ID_15, WINDOW_UPDATE_SHOW); + set_window_update(WINDOW_ID_17, WINDOW_UPDATE_HIDE); + break; + case POPUP_MENU_UPGRADE_PARTNER: + set_window_properties(WINDOW_ID_14, posX, posY, 126, (PopupMenu_DisplayedEntryCount * LINE_HEIGHT) + 26, WINDOW_PRIORITY_20, popup_menu_draw_menu_contents, NULL, -1); + set_window_properties(WINDOW_ID_17, 12, -6, 66, 16, WINDOW_PRIORITY_21, popup_menu_draw_title_contents, NULL, WINDOW_ID_14); + set_window_update(WINDOW_ID_15, WINDOW_UPDATE_HIDE); + set_window_update(WINDOW_ID_17, WINDOW_UPDATE_SHOW); + break; + case POPUP_MENU_SELL_ITEM: + set_window_properties(WINDOW_ID_14, posX, posY, 152, (PopupMenu_DisplayedEntryCount * LINE_HEIGHT) + 26, WINDOW_PRIORITY_20, popup_menu_draw_menu_contents, NULL, -1); + set_window_properties(WINDOW_ID_15, 12, -6, 106, 16, WINDOW_PRIORITY_21, popup_menu_draw_title_contents, NULL, WINDOW_ID_14); + set_window_update(WINDOW_ID_15, WINDOW_UPDATE_SHOW); + set_window_update(WINDOW_ID_17, WINDOW_UPDATE_HIDE); + break; + case POPUP_MENU_READ_LETTER: + set_window_properties(WINDOW_ID_14, posX, posY, 120, (PopupMenu_DisplayedEntryCount * LINE_HEIGHT) + 26, WINDOW_PRIORITY_20, popup_menu_draw_menu_contents, NULL, -1); + set_window_properties(WINDOW_ID_15, 24, -6, 72, 16, WINDOW_PRIORITY_21, popup_menu_draw_title_contents, NULL, WINDOW_ID_14); + set_window_update(WINDOW_ID_15, WINDOW_UPDATE_SHOW); + set_window_update(WINDOW_ID_17, WINDOW_UPDATE_HIDE); + break; + case POPUP_MENU_READ_DIARY_PAGE: + set_window_properties(WINDOW_ID_14, posX, posY, 108, (PopupMenu_DisplayedEntryCount * LINE_HEIGHT) + 26, WINDOW_PRIORITY_20, popup_menu_draw_menu_contents, NULL, -1); + set_window_properties(WINDOW_ID_15, 12, -6, 84, 16, WINDOW_PRIORITY_21, popup_menu_draw_title_contents, NULL, WINDOW_ID_14); + set_window_update(WINDOW_ID_15, WINDOW_UPDATE_SHOW); + set_window_update(WINDOW_ID_17, WINDOW_UPDATE_HIDE); + break; + case POPUP_MENU_READ_POSTCARD: + set_window_properties(WINDOW_ID_14, posX, posY, 124, (PopupMenu_DisplayedEntryCount * LINE_HEIGHT) + 26, WINDOW_PRIORITY_20, popup_menu_draw_menu_contents, NULL, -1); + set_window_properties(WINDOW_ID_15, 12, -6, 100, 16, WINDOW_PRIORITY_21, popup_menu_draw_title_contents, NULL, WINDOW_ID_14); + set_window_update(WINDOW_ID_15, WINDOW_UPDATE_SHOW); + set_window_update(WINDOW_ID_17, WINDOW_UPDATE_HIDE); + break; + case POPUP_MENU_POST_OFFICE: + set_window_properties(WINDOW_ID_14, posX, posY, 96, (PopupMenu_DisplayedEntryCount * LINE_HEIGHT) + 26, WINDOW_PRIORITY_20, popup_menu_draw_menu_contents, NULL, -1); + set_window_properties(WINDOW_ID_17, 10, -6, 72, 16, WINDOW_PRIORITY_21, popup_menu_draw_title_contents, NULL, WINDOW_ID_14); + set_window_update(WINDOW_ID_15, WINDOW_UPDATE_HIDE); + set_window_update(WINDOW_ID_17, WINDOW_UPDATE_SHOW); + break; + } #else switch (gPopupMenu->popupType) { case POPUP_MENU_USE_ITEM: @@ -613,6 +728,19 @@ s32 popup_menu_update(void) { } #endif +#if VERSION_JP + switch (gPopupMenu->popupType) { + case POPUP_MENU_UPGRADE_PARTNER: + set_window_properties(WINDOW_ID_18, 84, -6, 40, 16, WINDOW_PRIORITY_21, popup_draw_cost_icon, NULL, WINDOW_ID_14); + break; + case POPUP_MENU_TRADE_FOR_BADGE: + set_window_properties(WINDOW_ID_16, 116, -14, 32, 32, WINDOW_PRIORITY_21, popup_draw_cost_icon, NULL, WINDOW_ID_14); + break; + case POPUP_MENU_SELL_ITEM: + set_window_properties(WINDOW_ID_16, 116, -14, 32, 32, WINDOW_PRIORITY_21, popup_draw_cost_icon, NULL, WINDOW_ID_14); + break; + } +#else switch (gPopupMenu->popupType) { case POPUP_MENU_TRADE_FOR_BADGE: set_window_properties(WINDOW_ID_16, 126, -14, 32, 32, WINDOW_PRIORITY_21, popup_draw_cost_icon, NULL, WINDOW_ID_14); @@ -621,6 +749,7 @@ s32 popup_menu_update(void) { set_window_properties(WINDOW_ID_16, 131, -14, 32, 32, WINDOW_PRIORITY_21, popup_draw_cost_icon, NULL, WINDOW_ID_14); break; } +#endif if (gPopupMenu->popupType == POPUP_MENU_TRADE_FOR_BADGE) { posX = PopupMenu_StarPieceCounterPosX; @@ -650,7 +779,7 @@ s32 popup_menu_update(void) { { posX = D_8010D680; posY = D_8010D682; - set_window_properties(WINDOW_ID_19, posX, posY, 280, 32, WINDOW_PRIORITY_20, func_800F48F4, NULL, -1); + set_window_properties(WINDOW_ID_19, posX, posY, MENU_USEKEY_DIFF, 32, WINDOW_PRIORITY_20, func_800F48F4, NULL, -1); } posX = D_8010D684; @@ -664,6 +793,40 @@ s32 popup_menu_update(void) { set_window_properties(WINDOW_ID_21, posX, posY, gPopupMenu->unk_340 + 144, height, WINDOW_PRIORITY_20, func_800F4944, NULL, -1); #else switch (gPopupMenu->popupType) { +#if VERSION_JP + case POPUP_MENU_USE_ITEM: + case POPUP_MENU_SWITCH_PARTNER: + case POPUP_MENU_THROW_AWAY_ITEM: + case POPUP_MENU_CHECK_ITEM: + case POPUP_MENU_CLAIM_ITEM: + case POPUP_MENU_READ_LETTER: + case POPUP_MENU_TAKE_FROM_CHEST: + case POPUP_MENU_READ_DIARY_PAGE: + case POPUP_MENU_READ_POSTCARD: + case POPUP_MENU_USEKEY: + case POPUP_MENU_POST_OFFICE: + switch (gPopupMenu->dipMode) { + case 0: + set_window_properties(WINDOW_ID_21, D_8010D684, D_8010D686, 152, 32, WINDOW_PRIORITY_20, func_800F4944, NULL, -1); + break; + case 1: + set_window_properties(WINDOW_ID_21, D_8010D684, D_8010D686, 152, 32, WINDOW_PRIORITY_20, func_800F4944, NULL, -1); + break; + case 2: + set_window_properties(WINDOW_ID_21, D_8010D684, D_8010D686, 152, 32, WINDOW_PRIORITY_20, func_800F4944, NULL, -1); + break; + } + break; + case POPUP_MENU_TRADE_FOR_BADGE: + set_window_properties(WINDOW_ID_21, D_8010D684, D_8010D686, 136, 32, WINDOW_PRIORITY_20, func_800F4944, NULL, -1); + break; + case POPUP_MENU_UPGRADE_PARTNER: + set_window_properties(WINDOW_ID_21, D_8010D684, D_8010D686, 136, 48, WINDOW_PRIORITY_20, func_800F4944, NULL, -1); + break; + case POPUP_MENU_SELL_ITEM: + set_window_properties(WINDOW_ID_21, D_8010D684, D_8010D686, 120, 32, WINDOW_PRIORITY_20, func_800F4944, NULL, -1); + break; +#else case POPUP_MENU_USE_ITEM: case POPUP_MENU_CHECK_ITEM: case POPUP_MENU_CLAIM_ITEM: @@ -690,6 +853,7 @@ s32 popup_menu_update(void) { case POPUP_MENU_SELL_ITEM: set_window_properties(WINDOW_ID_21, posX, posY, 120, 32, WINDOW_PRIORITY_20, func_800F4944, NULL, -1); break; +#endif } #endif @@ -1041,7 +1205,7 @@ s32 popup_menu_update(void) { set_window_properties(WINDOW_ID_BATTLE_POPUP, 160 - (width / 2), posY, width, 40, WINDOW_PRIORITY_20, popup_draw_already_have_partner, NULL, -1); #else width = get_msg_width(MSG_Menus_006B, 0) + 23; - set_window_properties(WINDOW_ID_BATTLE_POPUP, 160 - (width / 2), 80, width, 40, WINDOW_PRIORITY_20, popup_draw_already_have_partner, NULL, -1); + set_window_properties(WINDOW_ID_BATTLE_POPUP, 160 - (width / 2), 80, width, MENU_ALREADY_PARTNER_DIFF, WINDOW_PRIORITY_20, popup_draw_already_have_partner, NULL, -1); #endif set_window_update(WINDOW_ID_BATTLE_POPUP, WINDOW_UPDATE_SHOW); D_8010D644 = 60; @@ -1140,7 +1304,12 @@ s32 popup_menu_update(void) { case POPUP_STATE_CANCEL_DIP_AWAIT_CHOICE: if (D_8010D6A4 == 1) { set_window_update(WINDOW_ID_21, WINDOW_UPDATE_HIDE); - switch (D_8010D6A0->curOption) { +#if VERSION_JP + switch (D_8010D6A0->unk4A8) // duplicate of curOption? +#else + switch (D_8010D6A0->curOption) +#endif + { case 0: gPopupState = POPUP_STATE_CANCEL_DIP_ACCEPT; break; @@ -1208,6 +1377,9 @@ s32 popup_menu_update(void) { } #endif +#if VERSION_JP +INCLUDE_ASM(const s32, "8a860_len_3f30", popup_menu_draw_menu_contents); +#else void popup_menu_draw_menu_contents(s32* userData, s32 baseX, s32 baseY, s32 width, s32 height, s32 opacity, s32 darkening) { s32 x, y; s32 x1, y1; @@ -1578,6 +1750,7 @@ void popup_menu_draw_menu_contents(s32* userData, s32 baseX, s32 baseY, s32 widt hud_element_draw_without_clipping(id); } } +#endif #if VERSION_PAL void popup_menu_draw_title_contents(s32* userData, s32 baseX, s32 baseY, s32 width, s32 height, s32 opacity, s32 darkening) { @@ -1609,6 +1782,33 @@ void popup_menu_draw_title_contents(s32* userData, s32 baseX, s32 baseY, s32 wid } } #else + +#if VERSION_JP +#define MSG_USE_ITEM_DIFF MSG_Menus_JP_004F +#define MSG_USE_KEY_DIFF MSG_Menus_JP_0050 +#define X_TITLE_VAR1 35 +#define X_TITLE_VAR2 82 +#define X_TITLE_VAR3 102 +#define X_TITLE_VAR4 4 +#define X_TITLE_VAR5 38 +#define X_TITLE_VAR6 31 +#define X_TITLE_VAR7 16 +#define X_TITLE_VAR8 35 +#define X_TITLE_VAR9 23 +#else +#define MSG_USE_ITEM_DIFF MSG_Menus_Items +#define MSG_USE_KEY_DIFF MSG_Menus_Items +#define X_TITLE_VAR1 26 +#define X_TITLE_VAR2 94 +#define X_TITLE_VAR3 114 +#define X_TITLE_VAR4 6 +#define X_TITLE_VAR5 27 +#define X_TITLE_VAR6 4 +#define X_TITLE_VAR7 6 +#define X_TITLE_VAR8 27 +#define X_TITLE_VAR9 8 +#endif + void popup_menu_draw_title_contents( s32* userData, s32 baseX, s32 baseY, s32 width, s32 height, s32 opacity, s32 darkening) { @@ -1620,45 +1820,52 @@ void popup_menu_draw_title_contents( case POPUP_MENU_CLAIM_ITEM: switch (gPopupMenu->dipMode) { case 0: - draw_msg(MSG_Menus_Items, baseX + 26, baseY + 2, PopupMenu_Alpha, MSG_PAL_32, DRAW_MSG_STYLE_MENU); + draw_msg(MSG_USE_ITEM_DIFF, baseX + X_TITLE_VAR1, baseY + 2, PopupMenu_Alpha, MSG_PAL_32, DRAW_MSG_STYLE_MENU); break; case 1: draw_msg(MSG_Menus_DoubleDip, baseX + 4, baseY + 2, PopupMenu_Alpha, MSG_PAL_32, DRAW_MSG_STYLE_MENU); - draw_number(gPopupMenu->titleNumber, baseX + 94, baseY + 2, DRAW_NUMBER_CHARSET_THIN, MSG_PAL_32, + draw_number(gPopupMenu->titleNumber, baseX + X_TITLE_VAR2, baseY + 2, DRAW_NUMBER_CHARSET_THIN, MSG_PAL_32, PopupMenu_Alpha, DRAW_NUMBER_STYLE_MONOSPACE | DRAW_NUMBER_STYLE_ALIGN_RIGHT); - draw_number(2, baseX + 114, baseY + 2, DRAW_NUMBER_CHARSET_THIN, MSG_PAL_32, PopupMenu_Alpha, DRAW_NUMBER_STYLE_MONOSPACE | DRAW_NUMBER_STYLE_ALIGN_RIGHT); + draw_number(2, baseX + X_TITLE_VAR3, baseY + 2, DRAW_NUMBER_CHARSET_THIN, MSG_PAL_32, PopupMenu_Alpha, DRAW_NUMBER_STYLE_MONOSPACE | DRAW_NUMBER_STYLE_ALIGN_RIGHT); break; case 2: - draw_msg(MSG_Menus_TripleDip, baseX + 6, baseY + 2, PopupMenu_Alpha, MSG_PAL_32, DRAW_MSG_STYLE_MENU); - draw_number(gPopupMenu->titleNumber, baseX + 94, baseY + 2, DRAW_NUMBER_CHARSET_THIN, MSG_PAL_32, + draw_msg(MSG_Menus_TripleDip, baseX + X_TITLE_VAR4, baseY + 2, PopupMenu_Alpha, MSG_PAL_32, DRAW_MSG_STYLE_MENU); + draw_number(gPopupMenu->titleNumber, baseX + X_TITLE_VAR2, baseY + 2, DRAW_NUMBER_CHARSET_THIN, MSG_PAL_32, PopupMenu_Alpha, DRAW_NUMBER_STYLE_MONOSPACE | DRAW_NUMBER_STYLE_ALIGN_RIGHT); - draw_number(3, baseX + 114, baseY + 2, DRAW_NUMBER_CHARSET_THIN, MSG_PAL_32, PopupMenu_Alpha, + draw_number(3, baseX + X_TITLE_VAR3, baseY + 2, DRAW_NUMBER_CHARSET_THIN, MSG_PAL_32, PopupMenu_Alpha, DRAW_NUMBER_STYLE_MONOSPACE | DRAW_NUMBER_STYLE_ALIGN_RIGHT); break; } break; case POPUP_MENU_TRADE_FOR_BADGE: - draw_msg(MSG_MenuTip_0032, baseX + 27, baseY + 2, PopupMenu_Alpha, MSG_PAL_32, DRAW_MSG_STYLE_MENU); + draw_msg(MSG_MenuTip_0032, baseX + X_TITLE_VAR5, baseY + 2, PopupMenu_Alpha, MSG_PAL_32, DRAW_MSG_STYLE_MENU); + break; +#if VERSION_JP + case POPUP_MENU_UPGRADE_PARTNER: + draw_msg(MSG_Menus_JP_004D, baseX + 20, baseY + 2, PopupMenu_Alpha, MSG_PAL_34, DRAW_MSG_STYLE_MENU); break; +#endif case POPUP_MENU_READ_LETTER: draw_msg(MSG_MenuTip_0033, baseX + 23, baseY + 2, PopupMenu_Alpha, MSG_PAL_32, DRAW_MSG_STYLE_MENU); break; case POPUP_MENU_TAKE_FROM_CHEST: - draw_msg(MSG_Menus_00D7, baseX + 4, baseY + 2, PopupMenu_Alpha, MSG_PAL_32, DRAW_MSG_STYLE_MENU); + draw_msg(MSG_Menus_00D7, baseX + X_TITLE_VAR6, baseY + 2, PopupMenu_Alpha, MSG_PAL_32, DRAW_MSG_STYLE_MENU); break; case POPUP_MENU_READ_DIARY_PAGE: draw_msg(MSG_Menus_00CE, baseX + 8, baseY + 2, PopupMenu_Alpha, MSG_PAL_32, DRAW_MSG_STYLE_MENU); break; case POPUP_MENU_READ_POSTCARD: - draw_msg(MSG_Menus_00D0, baseX + 6, baseY + 2, PopupMenu_Alpha, MSG_PAL_32, DRAW_MSG_STYLE_MENU); + draw_msg(MSG_Menus_00D0, baseX + X_TITLE_VAR7, baseY + 2, PopupMenu_Alpha, MSG_PAL_32, DRAW_MSG_STYLE_MENU); break; case POPUP_MENU_USEKEY: - draw_msg(MSG_Menus_Items, baseX + 27, baseY + 2, PopupMenu_Alpha, MSG_PAL_32, DRAW_MSG_STYLE_MENU); + draw_msg(MSG_USE_KEY_DIFF, baseX + X_TITLE_VAR8, baseY + 2, PopupMenu_Alpha, MSG_PAL_32, DRAW_MSG_STYLE_MENU); break; case POPUP_MENU_SWITCH_PARTNER: +#if !VERSION_JP case POPUP_MENU_UPGRADE_PARTNER: +#endif case POPUP_MENU_POST_OFFICE: - draw_msg(MSG_Menus_PartyMember, baseX + 8, baseY + 2, PopupMenu_Alpha, MSG_PAL_34, DRAW_MSG_STYLE_MENU); + draw_msg(MSG_Menus_PartyMember, baseX + X_TITLE_VAR9, baseY + 2, PopupMenu_Alpha, MSG_PAL_34, DRAW_MSG_STYLE_MENU); break; } } @@ -1686,6 +1893,84 @@ void func_800F4944(s32* userData, s32 baseX, s32 baseY, s32 width, s32 height, s void func_800F4944(s32* userData, s32 baseX, s32 baseY, s32 width, s32 height, s32 opacity, s32 darkening) { s32 msgWidth; +#if VERSION_JP + baseY += 6; + + if (PopupNotBattle) { + switch (gPopupMenu->popupType) { + case POPUP_MENU_USE_ITEM: + msgWidth = get_msg_width(MSG_Menus_0061, 0) + 18; + baseX += 76 - (msgWidth / 2); + draw_msg(MSG_Menus_0061, baseX + 6, baseY + 2, 255, MSG_PAL_0F, 0); + break; + case POPUP_MENU_SWITCH_PARTNER: + msgWidth = get_msg_width(MSG_Menus_0063, 0) + 18; + baseX += 76 - (msgWidth / 2); + draw_msg(MSG_Menus_0063, baseX + 8, baseY + 2, 255, MSG_PAL_0F, 0); + break; + case POPUP_MENU_THROW_AWAY_ITEM: + msgWidth = get_msg_width(MSG_Menus_0064, 0) + 18; + baseX += 76 - (msgWidth / 2); + draw_msg(MSG_Menus_0064, baseX + 4, baseY + 2, 255, MSG_PAL_0F, 0); + break; + case POPUP_MENU_TRADE_FOR_BADGE: + msgWidth = get_msg_width(MSG_Menus_0070, 0) + 18; + baseX += 76 - (msgWidth / 2); + draw_msg(MSG_Menus_0070, baseX + 4, baseY + 2, 255, MSG_PAL_0F, 0); + break; + case POPUP_MENU_UPGRADE_PARTNER: + msgWidth = get_msg_width(MSG_Menus_006A, 0) + 18; + baseX += 76 - (msgWidth / 2); + draw_msg(MSG_Menus_006A, baseX + 4, baseY + 2, 255, MSG_PAL_0F, 0); + break; + case POPUP_MENU_SELL_ITEM: + msgWidth = get_msg_width(MSG_Menus_0065, 0) + 18; + baseX += 76 - (msgWidth / 2); + draw_msg(MSG_Menus_0065, baseX - 4, baseY + 2, 255, MSG_PAL_0F, 0); + break; + case POPUP_MENU_CHECK_ITEM: + msgWidth = get_msg_width(MSG_Menus_0066, 0) + 18; + baseX += 76 - (msgWidth / 2); + draw_msg(MSG_Menus_0066, baseX + 6, baseY + 2, 255, MSG_PAL_0F, 0); + break; + case POPUP_MENU_CLAIM_ITEM: + msgWidth = get_msg_width(MSG_Menus_0067, 0) + 18; + baseX += 76 - (msgWidth / 2); + draw_msg(MSG_Menus_0067, baseX + 6, baseY + 2, 255, MSG_PAL_0F, 0); + break; + case POPUP_MENU_READ_LETTER: + msgWidth = get_msg_width(MSG_Menus_JP_0081, 0) + 18; + baseX += 76 - (msgWidth / 2); + draw_msg(MSG_Menus_JP_0081, baseX + 6, baseY + 2, 255, MSG_PAL_0F, 0); + break; + case POPUP_MENU_TAKE_FROM_CHEST: + msgWidth = get_msg_width(MSG_Menus_00D6, 0) + 18; + baseX += 76 - (msgWidth / 2); + draw_msg(MSG_Menus_00D6, baseX + 6, baseY + 2, 255, MSG_PAL_0F, 0); + break; + case POPUP_MENU_READ_DIARY_PAGE: + msgWidth = get_msg_width(MSG_Menus_006C, 0) + 18; + baseX += 76 - (msgWidth / 2); + draw_msg(MSG_Menus_006C, baseX + 6, baseY + 2, 255, MSG_PAL_0F, 0); + break; + case POPUP_MENU_READ_POSTCARD: + msgWidth = get_msg_width(MSG_Menus_006D, 0) + 18; + baseX += 76 - (msgWidth / 2); + draw_msg(MSG_Menus_006D, baseX + 6, baseY + 2, 255, MSG_PAL_0F, 0); + break; + case POPUP_MENU_USEKEY: + msgWidth = get_msg_width(MSG_Menus_0062, 0) + 18; + baseX += 76 - (msgWidth / 2); + draw_msg(MSG_Menus_0062, baseX + 6, baseY + 2, 255, MSG_PAL_0F, 0); + break; + case POPUP_MENU_POST_OFFICE: + msgWidth = get_msg_width(MSG_Menus_006F, 0) + 18; + baseX += 76 - (msgWidth / 2); + draw_msg(MSG_Menus_006F, baseX + 6, baseY + 2, 255, MSG_PAL_0F, 0); + break; + } + } +#else baseY += 7; if (PopupNotBattle) { @@ -1762,6 +2047,7 @@ void func_800F4944(s32* userData, s32 baseX, s32 baseY, s32 width, s32 height, s break; } } +#endif } #endif @@ -1801,6 +2087,11 @@ void popup_draw_cost_icon(s32* userData, s32 x, s32 y) { hudElement = PopupMenu_TitleIconHEID; yPos = y + 16; break; +#if VERSION_JP + case POPUP_TYPE_UPGRADE_PARTNER: + draw_msg(MSG_Menus_JP_0084, x + 7, y + 2, PopupMenu_Alpha, MSG_PAL_34, 1); + return; +#endif case POPUP_TYPE_SELL_ITEM: xPos = x + 17; hudElement = PopupMenu_TitleIconHEID; @@ -1816,7 +2107,11 @@ void popup_draw_cost_icon(s32* userData, s32 x, s32 y) { } void popup_draw_already_have_partner(s32* userData, s32 x, s32 y) { +#if VERSION_JP + draw_msg(MSG_Menus_006B, x + 11, y + 8, 255, MSG_PAL_0F, 0); +#else draw_msg(MSG_Menus_006B, x + 16, y + 2, 255, MSG_PAL_0F, 0); +#endif } void func_800F4D28(s32* userData, s32 x, s32 y) { diff --git a/ver/jp/asm/nonmatchings/8a860_len_3f30/popup_menu_draw_menu_contents.s b/ver/jp/asm/nonmatchings/8a860_len_3f30/popup_menu_draw_menu_contents.s new file mode 100644 index 00000000000..499ff791661 --- /dev/null +++ b/ver/jp/asm/nonmatchings/8a860_len_3f30/popup_menu_draw_menu_contents.s @@ -0,0 +1,1269 @@ +.set noat /* allow manual use of $at */ +.set noreorder /* don't insert nops after branches */ + +.section .rodata +.align 3 +dlabel jtbl_JP_8010C918 +/* A5DC8 8010C918 800F3848 */ .word .LJP_800F3848 +/* A5DCC 8010C91C 800F3898 */ .word .LJP_800F3898 +/* A5DD0 8010C920 800F3848 */ .word .LJP_800F3848 +/* A5DD4 8010C924 800F3848 */ .word .LJP_800F3848 +/* A5DD8 8010C928 800F3898 */ .word .LJP_800F3898 +/* A5DDC 8010C92C 800F3848 */ .word .LJP_800F3848 +/* A5DE0 8010C930 800F3848 */ .word .LJP_800F3848 +/* A5DE4 8010C934 800F3848 */ .word .LJP_800F3848 +/* A5DE8 8010C938 800F3848 */ .word .LJP_800F3848 +/* A5DEC 8010C93C 800F3848 */ .word .LJP_800F3848 +/* A5DF0 8010C940 800F3848 */ .word .LJP_800F3848 +/* A5DF4 8010C944 800F3848 */ .word .LJP_800F3848 +/* A5DF8 8010C948 800F3848 */ .word .LJP_800F3848 +/* A5DFC 8010C94C 800F3848 */ .word .LJP_800F3848 +.size jtbl_JP_8010C918, . - jtbl_JP_8010C918 + +.align 3 +dlabel jtbl_JP_8010C950 +/* A5E00 8010C950 800F3A6C */ .word .LJP_800F3A6C +/* A5E04 8010C954 800F3ABC */ .word .LJP_800F3ABC +/* A5E08 8010C958 800F3A6C */ .word .LJP_800F3A6C +/* A5E0C 8010C95C 800F3B0C */ .word .LJP_800F3B0C +/* A5E10 8010C960 800F3B5C */ .word .LJP_800F3B5C +/* A5E14 8010C964 800F3BAC */ .word .LJP_800F3BAC +/* A5E18 8010C968 800F3A6C */ .word .LJP_800F3A6C +/* A5E1C 8010C96C 800F3A6C */ .word .LJP_800F3A6C +/* A5E20 8010C970 800F3A6C */ .word .LJP_800F3A6C +/* A5E24 8010C974 800F3A6C */ .word .LJP_800F3A6C +/* A5E28 8010C978 800F3A6C */ .word .LJP_800F3A6C +/* A5E2C 8010C97C 800F3A6C */ .word .LJP_800F3A6C +/* A5E30 8010C980 800F3A6C */ .word .LJP_800F3A6C +/* A5E34 8010C984 800F3A6C */ .word .LJP_800F3A6C +.size jtbl_JP_8010C950, . - jtbl_JP_8010C950 + +.align 3 +dlabel jtbl_JP_8010C988 +/* A5E38 8010C988 800F3D54 */ .word .LJP_800F3D54 +/* A5E3C 8010C98C 800F3D88 */ .word .LJP_800F3D88 +/* A5E40 8010C990 800F3D54 */ .word .LJP_800F3D54 +/* A5E44 8010C994 800F3D54 */ .word .LJP_800F3D54 +/* A5E48 8010C998 800F3D88 */ .word .LJP_800F3D88 +/* A5E4C 8010C99C 800F3D54 */ .word .LJP_800F3D54 +/* A5E50 8010C9A0 800F3D54 */ .word .LJP_800F3D54 +/* A5E54 8010C9A4 800F3D54 */ .word .LJP_800F3D54 +/* A5E58 8010C9A8 800F3DBC */ .word .LJP_800F3DBC +/* A5E5C 8010C9AC 800F3D54 */ .word .LJP_800F3D54 +/* A5E60 8010C9B0 800F3E00 */ .word .LJP_800F3E00 +/* A5E64 8010C9B4 800F3E4C */ .word .LJP_800F3E4C +/* A5E68 8010C9B8 800F3D54 */ .word .LJP_800F3D54 +/* A5E6C 8010C9BC 800F3D54 */ .word .LJP_800F3D54 +.size jtbl_JP_8010C988, . - jtbl_JP_8010C988 + +.align 3 +dlabel jtbl_JP_8010C9C0 +/* A5E70 8010C9C0 800F40B4 */ .word .LJP_800F40B4 +/* A5E74 8010C9C4 800F40B4 */ .word .LJP_800F40B4 +/* A5E78 8010C9C8 800F40B4 */ .word .LJP_800F40B4 +/* A5E7C 8010C9CC 800F40B4 */ .word .LJP_800F40B4 +/* A5E80 8010C9D0 800F40B4 */ .word .LJP_800F40B4 +/* A5E84 8010C9D4 800F40B4 */ .word .LJP_800F40B4 +/* A5E88 8010C9D8 800F40B4 */ .word .LJP_800F40B4 +/* A5E8C 8010C9DC 800F40B4 */ .word .LJP_800F40B4 +/* A5E90 8010C9E0 800F40B4 */ .word .LJP_800F40B4 +/* A5E94 8010C9E4 800F40B4 */ .word .LJP_800F40B4 +/* A5E98 8010C9E8 800F419C */ .word .LJP_800F419C +/* A5E9C 8010C9EC 800F4284 */ .word .LJP_800F4284 +/* A5EA0 8010C9F0 800F40B4 */ .word .LJP_800F40B4 +/* A5EA4 8010C9F4 800F40B4 */ .word .LJP_800F40B4 +.size jtbl_JP_8010C9C0, . - jtbl_JP_8010C9C0 + +.align 3 +dlabel jtbl_JP_8010C9F8 +/* A5EA8 8010C9F8 800F444C */ .word .LJP_800F444C +/* A5EAC 8010C9FC 800F449C */ .word .LJP_800F449C +/* A5EB0 8010CA00 800F444C */ .word .LJP_800F444C +/* A5EB4 8010CA04 800F444C */ .word .LJP_800F444C +/* A5EB8 8010CA08 800F449C */ .word .LJP_800F449C +/* A5EBC 8010CA0C 800F444C */ .word .LJP_800F444C +/* A5EC0 8010CA10 800F444C */ .word .LJP_800F444C +/* A5EC4 8010CA14 800F444C */ .word .LJP_800F444C +/* A5EC8 8010CA18 800F444C */ .word .LJP_800F444C +/* A5ECC 8010CA1C 800F444C */ .word .LJP_800F444C +/* A5ED0 8010CA20 800F444C */ .word .LJP_800F444C +/* A5ED4 8010CA24 800F444C */ .word .LJP_800F444C +/* A5ED8 8010CA28 800F444C */ .word .LJP_800F444C +/* A5EDC 8010CA2C 800F444C */ .word .LJP_800F444C +.size jtbl_JP_8010C9F8, . - jtbl_JP_8010C9F8 + +.align 3 +dlabel jtbl_JP_8010CA30 +/* A5EE0 8010CA30 800F45E4 */ .word .LJP_800F45E4 +/* A5EE4 8010CA34 800F45C4 */ .word .LJP_800F45C4 +/* A5EE8 8010CA38 800F45A0 */ .word .LJP_800F45A0 +/* A5EEC 8010CA3C 800F45A8 */ .word .LJP_800F45A8 +/* A5EF0 8010CA40 800F45B4 */ .word .LJP_800F45B4 +/* A5EF4 8010CA44 800F45C4 */ .word .LJP_800F45C4 +/* A5EF8 8010CA48 800F45BC */ .word .LJP_800F45BC +/* A5EFC 8010CA4C 800F45BC */ .word .LJP_800F45BC +/* A5F00 8010CA50 800F45BC */ .word .LJP_800F45BC +/* A5F04 8010CA54 800F45D0 */ .word .LJP_800F45D0 +/* A5F08 8010CA58 800F45D8 */ .word .LJP_800F45D8 +/* A5F0C 8010CA5C 800F45C4 */ .word .LJP_800F45C4 +/* A5F10 8010CA60 800F45E4 */ .word .LJP_800F45E4 +/* A5F14 8010CA64 00000000 */ .word 0x00000000 +.size jtbl_JP_8010CA30, . - jtbl_JP_8010CA30 + + +.section .text +/* Generated by spimdisasm 1.19.0 */ + +glabel popup_menu_draw_menu_contents +/* 8CB00 800F3650 27BDFFA8 */ addiu $sp, $sp, -0x58 +/* 8CB04 800F3654 3C038011 */ lui $v1, %hi(gPopupState) +/* 8CB08 800F3658 8C63D800 */ lw $v1, %lo(gPopupState)($v1) +/* 8CB0C 800F365C 2402000A */ addiu $v0, $zero, 0xA +/* 8CB10 800F3660 AFBF0054 */ sw $ra, 0x54($sp) +/* 8CB14 800F3664 AFBE0050 */ sw $fp, 0x50($sp) +/* 8CB18 800F3668 AFB7004C */ sw $s7, 0x4C($sp) +/* 8CB1C 800F366C AFB60048 */ sw $s6, 0x48($sp) +/* 8CB20 800F3670 AFB50044 */ sw $s5, 0x44($sp) +/* 8CB24 800F3674 AFB40040 */ sw $s4, 0x40($sp) +/* 8CB28 800F3678 AFB3003C */ sw $s3, 0x3C($sp) +/* 8CB2C 800F367C AFB20038 */ sw $s2, 0x38($sp) +/* 8CB30 800F3680 AFB10034 */ sw $s1, 0x34($sp) +/* 8CB34 800F3684 AFB00030 */ sw $s0, 0x30($sp) +/* 8CB38 800F3688 AFA5005C */ sw $a1, 0x5C($sp) +/* 8CB3C 800F368C 1062001E */ beq $v1, $v0, .LJP_800F3708 +/* 8CB40 800F3690 AFA60060 */ sw $a2, 0x60($sp) +/* 8CB44 800F3694 2862000B */ slti $v0, $v1, 0xB +/* 8CB48 800F3698 1040000E */ beqz $v0, .LJP_800F36D4 +/* 8CB4C 800F369C 28620020 */ slti $v0, $v1, 0x20 +/* 8CB50 800F36A0 04610008 */ bgez $v1, .LJP_800F36C4 +/* 8CB54 800F36A4 24020001 */ addiu $v0, $zero, 0x1 +/* 8CB58 800F36A8 2862FFFE */ slti $v0, $v1, -0x2 +/* 8CB5C 800F36AC 10400016 */ beqz $v0, .LJP_800F3708 +/* 8CB60 800F36B0 2862FFFB */ slti $v0, $v1, -0x5 +/* 8CB64 800F36B4 10400402 */ beqz $v0, .LJP_800F46C0 +/* 8CB68 800F36B8 2862FFF8 */ slti $v0, $v1, -0x8 +/* 8CB6C 800F36BC 0803CDC0 */ j .LJP_800F3700 +/* 8CB70 800F36C0 00000000 */ nop +.LJP_800F36C4: +/* 8CB74 800F36C4 10620010 */ beq $v1, $v0, .LJP_800F3708 +/* 8CB78 800F36C8 00000000 */ nop +/* 8CB7C 800F36CC 0803D1B0 */ j .LJP_800F46C0 +/* 8CB80 800F36D0 00000000 */ nop +.LJP_800F36D4: +/* 8CB84 800F36D4 10400007 */ beqz $v0, .LJP_800F36F4 +/* 8CB88 800F36D8 2862001E */ slti $v0, $v1, 0x1E +/* 8CB8C 800F36DC 1040000A */ beqz $v0, .LJP_800F3708 +/* 8CB90 800F36E0 24020014 */ addiu $v0, $zero, 0x14 +/* 8CB94 800F36E4 10620008 */ beq $v1, $v0, .LJP_800F3708 +/* 8CB98 800F36E8 00000000 */ nop +/* 8CB9C 800F36EC 0803D1B0 */ j .LJP_800F46C0 +/* 8CBA0 800F36F0 00000000 */ nop +.LJP_800F36F4: +/* 8CBA4 800F36F4 2862006A */ slti $v0, $v1, 0x6A +/* 8CBA8 800F36F8 104003F1 */ beqz $v0, .LJP_800F46C0 +/* 8CBAC 800F36FC 28620064 */ slti $v0, $v1, 0x64 +.LJP_800F3700: +/* 8CBB0 800F3700 144003EF */ bnez $v0, .LJP_800F46C0 +/* 8CBB4 800F3704 00000000 */ nop +.LJP_800F3708: +/* 8CBB8 800F3708 8FA8005C */ lw $t0, 0x5C($sp) +/* 8CBBC 800F370C 8FA90060 */ lw $t1, 0x60($sp) +/* 8CBC0 800F3710 3C028011 */ lui $v0, %hi(PopupMenu_FirstDisplayIndex) +/* 8CBC4 800F3714 8042D814 */ lb $v0, %lo(PopupMenu_FirstDisplayIndex)($v0) +/* 8CBC8 800F3718 3C068011 */ lui $a2, %hi(D_8010D658) +/* 8CBCC 800F371C 84C6D818 */ lh $a2, %lo(D_8010D658)($a2) +/* 8CBD0 800F3720 25080002 */ addiu $t0, $t0, 0x2 +/* 8CBD4 800F3724 2529000F */ addiu $t1, $t1, 0xF +/* 8CBD8 800F3728 00021023 */ negu $v0, $v0 +/* 8CBDC 800F372C 00021840 */ sll $v1, $v0, 1 +/* 8CBE0 800F3730 00621821 */ addu $v1, $v1, $v0 +/* 8CBE4 800F3734 00031880 */ sll $v1, $v1, 2 +/* 8CBE8 800F3738 00628821 */ addu $s1, $v1, $v0 +/* 8CBEC 800F373C 02262023 */ subu $a0, $s1, $a2 +/* 8CBF0 800F3740 28820082 */ slti $v0, $a0, 0x82 +/* 8CBF4 800F3744 AFA8005C */ sw $t0, 0x5C($sp) +/* 8CBF8 800F3748 1040000D */ beqz $v0, .LJP_800F3780 +/* 8CBFC 800F374C AFA90060 */ sw $t1, 0x60($sp) +/* 8CC00 800F3750 3C013FE0 */ lui $at, (0x3FE00000 >> 16) +/* 8CC04 800F3754 44811800 */ mtc1 $at, $f3 +/* 8CC08 800F3758 44801000 */ mtc1 $zero, $f2 +/* 8CC0C 800F375C 44840000 */ mtc1 $a0, $f0 +/* 8CC10 800F3760 00000000 */ nop +/* 8CC14 800F3764 46800021 */ cvt.d.w $f0, $f0 +/* 8CC18 800F3768 46220002 */ mul.d $f0, $f0, $f2 +/* 8CC1C 800F376C 00000000 */ nop +/* 8CC20 800F3770 4620018D */ trunc.w.d $f6, $f0 +/* 8CC24 800F3774 44043000 */ mfc1 $a0, $f6 +/* 8CC28 800F3778 0803CDEC */ j .LJP_800F37B0 +/* 8CC2C 800F377C 00000000 */ nop +.LJP_800F3780: +/* 8CC30 800F3780 3C031B4E */ lui $v1, (0x1B4E81B5 >> 16) +/* 8CC34 800F3784 346381B5 */ ori $v1, $v1, (0x1B4E81B5 & 0xFFFF) +/* 8CC38 800F3788 00041040 */ sll $v0, $a0, 1 +/* 8CC3C 800F378C 00441021 */ addu $v0, $v0, $a0 +/* 8CC40 800F3790 000210C0 */ sll $v0, $v0, 3 +/* 8CC44 800F3794 00441021 */ addu $v0, $v0, $a0 +/* 8CC48 800F3798 00021080 */ sll $v0, $v0, 2 +/* 8CC4C 800F379C 00430018 */ mult $v0, $v1 +/* 8CC50 800F37A0 000217C3 */ sra $v0, $v0, 31 +/* 8CC54 800F37A4 00004010 */ mfhi $t0 +/* 8CC58 800F37A8 00081903 */ sra $v1, $t0, 4 +/* 8CC5C 800F37AC 00622023 */ subu $a0, $v1, $v0 +.LJP_800F37B0: +/* 8CC60 800F37B0 14800002 */ bnez $a0, .LJP_800F37BC +/* 8CC64 800F37B4 00C43021 */ addu $a2, $a2, $a0 +/* 8CC68 800F37B8 0220302D */ daddu $a2, $s1, $zero +.LJP_800F37BC: +/* 8CC6C 800F37BC 3C054EC4 */ lui $a1, (0x4EC4EC4F >> 16) +/* 8CC70 800F37C0 34A5EC4F */ ori $a1, $a1, (0x4EC4EC4F & 0xFFFF) +/* 8CC74 800F37C4 00061C00 */ sll $v1, $a2, 16 +/* 8CC78 800F37C8 00031C03 */ sra $v1, $v1, 16 +/* 8CC7C 800F37CC 8FA9005C */ lw $t1, 0x5C($sp) +/* 8CC80 800F37D0 8FB10060 */ lw $s1, 0x60($sp) +/* 8CC84 800F37D4 3C048011 */ lui $a0, %hi(PopupMenu_DisplayedEntryCount) +/* 8CC88 800F37D8 8084D816 */ lb $a0, %lo(PopupMenu_DisplayedEntryCount)($a0) +/* 8CC8C 800F37DC 00031823 */ negu $v1, $v1 +/* 8CC90 800F37E0 3C018011 */ lui $at, %hi(D_8010D658) +/* 8CC94 800F37E4 A426D818 */ sh $a2, %lo(D_8010D658)($at) +/* 8CC98 800F37E8 00041040 */ sll $v0, $a0, 1 +/* 8CC9C 800F37EC 00441021 */ addu $v0, $v0, $a0 +/* 8CCA0 800F37F0 00021080 */ sll $v0, $v0, 2 +/* 8CCA4 800F37F4 00441021 */ addu $v0, $v0, $a0 +/* 8CCA8 800F37F8 02221021 */ addu $v0, $s1, $v0 +/* 8CCAC 800F37FC 24460004 */ addiu $a2, $v0, 0x4 +/* 8CCB0 800F3800 3C028011 */ lui $v0, %hi(gPopupMenu) +/* 8CCB4 800F3804 8C42D85C */ lw $v0, %lo(gPopupMenu)($v0) +/* 8CCB8 800F3808 00650018 */ mult $v1, $a1 +/* 8CCBC 800F380C AFA90020 */ sw $t1, 0x20($sp) +/* 8CCC0 800F3810 8C450318 */ lw $a1, 0x318($v0) +/* 8CCC4 800F3814 00031FC3 */ sra $v1, $v1, 31 +/* 8CCC8 800F3818 2CA2000E */ sltiu $v0, $a1, 0xE +/* 8CCCC 800F381C 00004010 */ mfhi $t0 +/* 8CCD0 800F3820 00082083 */ sra $a0, $t0, 2 +/* 8CCD4 800F3824 00832023 */ subu $a0, $a0, $v1 +/* 8CCD8 800F3828 10400050 */ beqz $v0, .LJP_800F396C +/* 8CCDC 800F382C AFA40028 */ sw $a0, 0x28($sp) +/* 8CCE0 800F3830 00051080 */ sll $v0, $a1, 2 +/* 8CCE4 800F3834 3C018011 */ lui $at, %hi(jtbl_JP_8010C918) +/* 8CCE8 800F3838 00220821 */ addu $at, $at, $v0 +/* 8CCEC 800F383C 8C22C918 */ lw $v0, %lo(jtbl_JP_8010C918)($at) +/* 8CCF0 800F3840 00400008 */ jr $v0 +/* 8CCF4 800F3844 00000000 */ nop +.LJP_800F3848: +/* 8CCF8 800F3848 3C03800A */ lui $v1, %hi(gMainGfxPos) +/* 8CCFC 800F384C 2463A64C */ addiu $v1, $v1, %lo(gMainGfxPos) +/* 8CD00 800F3850 C7A20020 */ lwc1 $f2, 0x20($sp) +/* 8CD04 800F3854 468010A0 */ cvt.s.w $f2, $f2 +/* 8CD08 800F3858 44910000 */ mtc1 $s1, $f0 +/* 8CD0C 800F385C 00000000 */ nop +/* 8CD10 800F3860 46800020 */ cvt.s.w $f0, $f0 +/* 8CD14 800F3864 3C014080 */ lui $at, (0x40800000 >> 16) +/* 8CD18 800F3868 44812000 */ mtc1 $at, $f4 +/* 8CD1C 800F386C 8C620000 */ lw $v0, 0x0($v1) +/* 8CD20 800F3870 46041082 */ mul.s $f2, $f2, $f4 +/* 8CD24 800F3874 00000000 */ nop +/* 8CD28 800F3878 0040282D */ daddu $a1, $v0, $zero +/* 8CD2C 800F387C 24420008 */ addiu $v0, $v0, 0x8 +/* 8CD30 800F3880 AC620000 */ sw $v0, 0x0($v1) +/* 8CD34 800F3884 8FA90020 */ lw $t1, 0x20($sp) +/* 8CD38 800F3888 46040002 */ mul.s $f0, $f0, $f4 +/* 8CD3C 800F388C 00000000 */ nop +/* 8CD40 800F3890 0803CE39 */ j .LJP_800F38E4 +/* 8CD44 800F3894 25220070 */ addiu $v0, $t1, 0x70 +.LJP_800F3898: +/* 8CD48 800F3898 3C03800A */ lui $v1, %hi(gMainGfxPos) +/* 8CD4C 800F389C 2463A64C */ addiu $v1, $v1, %lo(gMainGfxPos) +/* 8CD50 800F38A0 C7A20020 */ lwc1 $f2, 0x20($sp) +/* 8CD54 800F38A4 468010A0 */ cvt.s.w $f2, $f2 +/* 8CD58 800F38A8 44910000 */ mtc1 $s1, $f0 +/* 8CD5C 800F38AC 00000000 */ nop +/* 8CD60 800F38B0 46800020 */ cvt.s.w $f0, $f0 +/* 8CD64 800F38B4 3C014080 */ lui $at, (0x40800000 >> 16) +/* 8CD68 800F38B8 44812000 */ mtc1 $at, $f4 +/* 8CD6C 800F38BC 8C620000 */ lw $v0, 0x0($v1) +/* 8CD70 800F38C0 46041082 */ mul.s $f2, $f2, $f4 +/* 8CD74 800F38C4 00000000 */ nop +/* 8CD78 800F38C8 0040282D */ daddu $a1, $v0, $zero +/* 8CD7C 800F38CC 24420008 */ addiu $v0, $v0, 0x8 +/* 8CD80 800F38D0 AC620000 */ sw $v0, 0x0($v1) +/* 8CD84 800F38D4 8FA90020 */ lw $t1, 0x20($sp) +/* 8CD88 800F38D8 46040002 */ mul.s $f0, $f0, $f4 +/* 8CD8C 800F38DC 00000000 */ nop +/* 8CD90 800F38E0 2522005A */ addiu $v0, $t1, 0x5A +.LJP_800F38E4: +/* 8CD94 800F38E4 4600118D */ trunc.w.s $f6, $f2 +/* 8CD98 800F38E8 44033000 */ mfc1 $v1, $f6 +/* 8CD9C 800F38EC 00000000 */ nop +/* 8CDA0 800F38F0 30630FFF */ andi $v1, $v1, 0xFFF +/* 8CDA4 800F38F4 00031B00 */ sll $v1, $v1, 12 +/* 8CDA8 800F38F8 4600018D */ trunc.w.s $f6, $f0 +/* 8CDAC 800F38FC 44043000 */ mfc1 $a0, $f6 +/* 8CDB0 800F3900 00000000 */ nop +/* 8CDB4 800F3904 30840FFF */ andi $a0, $a0, 0xFFF +/* 8CDB8 800F3908 44821000 */ mtc1 $v0, $f2 +/* 8CDBC 800F390C 00000000 */ nop +/* 8CDC0 800F3910 468010A0 */ cvt.s.w $f2, $f2 +/* 8CDC4 800F3914 46041082 */ mul.s $f2, $f2, $f4 +/* 8CDC8 800F3918 00000000 */ nop +/* 8CDCC 800F391C 3C02ED00 */ lui $v0, (0xED000000 >> 16) +/* 8CDD0 800F3920 00822025 */ or $a0, $a0, $v0 +/* 8CDD4 800F3924 00641825 */ or $v1, $v1, $a0 +/* 8CDD8 800F3928 44860000 */ mtc1 $a2, $f0 +/* 8CDDC 800F392C 00000000 */ nop +/* 8CDE0 800F3930 46800020 */ cvt.s.w $f0, $f0 +/* 8CDE4 800F3934 46040002 */ mul.s $f0, $f0, $f4 +/* 8CDE8 800F3938 00000000 */ nop +/* 8CDEC 800F393C ACA30000 */ sw $v1, 0x0($a1) +/* 8CDF0 800F3940 4600118D */ trunc.w.s $f6, $f2 +/* 8CDF4 800F3944 44023000 */ mfc1 $v0, $f6 +/* 8CDF8 800F3948 00000000 */ nop +/* 8CDFC 800F394C 30420FFF */ andi $v0, $v0, 0xFFF +/* 8CE00 800F3950 00021300 */ sll $v0, $v0, 12 +/* 8CE04 800F3954 4600018D */ trunc.w.s $f6, $f0 +/* 8CE08 800F3958 44033000 */ mfc1 $v1, $f6 +/* 8CE0C 800F395C 00000000 */ nop +/* 8CE10 800F3960 30630FFF */ andi $v1, $v1, 0xFFF +/* 8CE14 800F3964 00431025 */ or $v0, $v0, $v1 +/* 8CE18 800F3968 ACA20004 */ sw $v0, 0x4($a1) +.LJP_800F396C: +/* 8CE1C 800F396C 3C028011 */ lui $v0, %hi(D_8010D658) +/* 8CE20 800F3970 8442D818 */ lh $v0, %lo(D_8010D658)($v0) +/* 8CE24 800F3974 8FA90060 */ lw $t1, 0x60($sp) +/* 8CE28 800F3978 3C128011 */ lui $s2, %hi(gPopupMenu) +/* 8CE2C 800F397C 2652D85C */ addiu $s2, $s2, %lo(gPopupMenu) +/* 8CE30 800F3980 01221821 */ addu $v1, $t1, $v0 +/* 8CE34 800F3984 8E420000 */ lw $v0, 0x0($s2) +/* 8CE38 800F3988 24130002 */ addiu $s3, $zero, 0x2 +/* 8CE3C 800F398C 8C420318 */ lw $v0, 0x318($v0) +/* 8CE40 800F3990 14530002 */ bne $v0, $s3, .LJP_800F399C +/* 8CE44 800F3994 24710008 */ addiu $s1, $v1, 0x8 +/* 8CE48 800F3998 24710015 */ addiu $s1, $v1, 0x15 +.LJP_800F399C: +/* 8CE4C 800F399C 2626FFFD */ addiu $a2, $s1, -0x3 +/* 8CE50 800F39A0 8FA8005C */ lw $t0, 0x5C($sp) +/* 8CE54 800F39A4 3C108011 */ lui $s0, %hi(PopupMenu_EmptybarHEID) +/* 8CE58 800F39A8 8E10D81C */ lw $s0, %lo(PopupMenu_EmptybarHEID)($s0) +/* 8CE5C 800F39AC 25050043 */ addiu $a1, $t0, 0x43 +/* 8CE60 800F39B0 0C05268D */ jal hud_element_set_render_pos +/* 8CE64 800F39B4 0200202D */ daddu $a0, $s0, $zero +/* 8CE68 800F39B8 3C058011 */ lui $a1, %hi(PopupMenu_Alpha) +/* 8CE6C 800F39BC 8CA5D810 */ lw $a1, %lo(PopupMenu_Alpha)($a1) +/* 8CE70 800F39C0 0C0527D8 */ jal hud_element_set_alpha +/* 8CE74 800F39C4 0200202D */ daddu $a0, $s0, $zero +/* 8CE78 800F39C8 8E420000 */ lw $v0, 0x0($s2) +/* 8CE7C 800F39CC 3C038011 */ lui $v1, %hi(PopupMenu_MaxDisplayableEntryCount) +/* 8CE80 800F39D0 8063D84F */ lb $v1, %lo(PopupMenu_MaxDisplayableEntryCount)($v1) +/* 8CE84 800F39D4 8C420324 */ lw $v0, 0x324($v0) +/* 8CE88 800F39D8 0062182A */ slt $v1, $v1, $v0 +/* 8CE8C 800F39DC 10600003 */ beqz $v1, .LJP_800F39EC +/* 8CE90 800F39E0 00000000 */ nop +/* 8CE94 800F39E4 0C052624 */ jal hud_element_draw_without_clipping +/* 8CE98 800F39E8 0200202D */ daddu $a0, $s0, $zero +.LJP_800F39EC: +/* 8CE9C 800F39EC 8FA9005C */ lw $t1, 0x5C($sp) +/* 8CEA0 800F39F0 8FA80060 */ lw $t0, 0x60($sp) +/* 8CEA4 800F39F4 3C038011 */ lui $v1, %hi(PopupMenu_DisplayedEntryCount) +/* 8CEA8 800F39F8 8063D816 */ lb $v1, %lo(PopupMenu_DisplayedEntryCount)($v1) +/* 8CEAC 800F39FC 25110002 */ addiu $s1, $t0, 0x2 +/* 8CEB0 800F3A00 00031040 */ sll $v0, $v1, 1 +/* 8CEB4 800F3A04 00431021 */ addu $v0, $v0, $v1 +/* 8CEB8 800F3A08 00021080 */ sll $v0, $v0, 2 +/* 8CEBC 800F3A0C AFA90020 */ sw $t1, 0x20($sp) +/* 8CEC0 800F3A10 8E440000 */ lw $a0, 0x0($s2) +/* 8CEC4 800F3A14 00431021 */ addu $v0, $v0, $v1 +/* 8CEC8 800F3A18 8C830318 */ lw $v1, 0x318($a0) +/* 8CECC 800F3A1C 14730008 */ bne $v1, $s3, .LJP_800F3A40 +/* 8CED0 800F3A20 02223021 */ addu $a2, $s1, $v0 +/* 8CED4 800F3A24 3C028011 */ lui $v0, %hi(PopupMenu_FirstDisplayIndex) +/* 8CED8 800F3A28 8042D814 */ lb $v0, %lo(PopupMenu_FirstDisplayIndex)($v0) +/* 8CEDC 800F3A2C 28420002 */ slti $v0, $v0, 0x2 +/* 8CEE0 800F3A30 10400003 */ beqz $v0, .LJP_800F3A40 +/* 8CEE4 800F3A34 00000000 */ nop +/* 8CEE8 800F3A38 0100882D */ daddu $s1, $t0, $zero +/* 8CEEC 800F3A3C 24C60001 */ addiu $a2, $a2, 0x1 +.LJP_800F3A40: +/* 8CEF0 800F3A40 3C028011 */ lui $v0, %hi(gPopupMenu) +/* 8CEF4 800F3A44 8C42D85C */ lw $v0, %lo(gPopupMenu)($v0) +/* 8CEF8 800F3A48 8C430318 */ lw $v1, 0x318($v0) +/* 8CEFC 800F3A4C 2C62000E */ sltiu $v0, $v1, 0xE +/* 8CF00 800F3A50 1040008B */ beqz $v0, .LJP_800F3C80 +/* 8CF04 800F3A54 00031080 */ sll $v0, $v1, 2 +/* 8CF08 800F3A58 3C018011 */ lui $at, %hi(jtbl_JP_8010C950) +/* 8CF0C 800F3A5C 00220821 */ addu $at, $at, $v0 +/* 8CF10 800F3A60 8C22C950 */ lw $v0, %lo(jtbl_JP_8010C950)($at) +/* 8CF14 800F3A64 00400008 */ jr $v0 +/* 8CF18 800F3A68 00000000 */ nop +.LJP_800F3A6C: +/* 8CF1C 800F3A6C 3C03800A */ lui $v1, %hi(gMainGfxPos) +/* 8CF20 800F3A70 2463A64C */ addiu $v1, $v1, %lo(gMainGfxPos) +/* 8CF24 800F3A74 C7A20020 */ lwc1 $f2, 0x20($sp) +/* 8CF28 800F3A78 468010A0 */ cvt.s.w $f2, $f2 +/* 8CF2C 800F3A7C 44910000 */ mtc1 $s1, $f0 +/* 8CF30 800F3A80 00000000 */ nop +/* 8CF34 800F3A84 46800020 */ cvt.s.w $f0, $f0 +/* 8CF38 800F3A88 3C014080 */ lui $at, (0x40800000 >> 16) +/* 8CF3C 800F3A8C 44812000 */ mtc1 $at, $f4 +/* 8CF40 800F3A90 8C620000 */ lw $v0, 0x0($v1) +/* 8CF44 800F3A94 46041082 */ mul.s $f2, $f2, $f4 +/* 8CF48 800F3A98 00000000 */ nop +/* 8CF4C 800F3A9C 0040282D */ daddu $a1, $v0, $zero +/* 8CF50 800F3AA0 24420008 */ addiu $v0, $v0, 0x8 +/* 8CF54 800F3AA4 AC620000 */ sw $v0, 0x0($v1) +/* 8CF58 800F3AA8 8FA90020 */ lw $t1, 0x20($sp) +/* 8CF5C 800F3AAC 46040002 */ mul.s $f0, $f0, $f4 +/* 8CF60 800F3AB0 00000000 */ nop +/* 8CF64 800F3AB4 0803CEFE */ j .LJP_800F3BF8 +/* 8CF68 800F3AB8 25220070 */ addiu $v0, $t1, 0x70 +.LJP_800F3ABC: +/* 8CF6C 800F3ABC 3C03800A */ lui $v1, %hi(gMainGfxPos) +/* 8CF70 800F3AC0 2463A64C */ addiu $v1, $v1, %lo(gMainGfxPos) +/* 8CF74 800F3AC4 C7A20020 */ lwc1 $f2, 0x20($sp) +/* 8CF78 800F3AC8 468010A0 */ cvt.s.w $f2, $f2 +/* 8CF7C 800F3ACC 44910000 */ mtc1 $s1, $f0 +/* 8CF80 800F3AD0 00000000 */ nop +/* 8CF84 800F3AD4 46800020 */ cvt.s.w $f0, $f0 +/* 8CF88 800F3AD8 3C014080 */ lui $at, (0x40800000 >> 16) +/* 8CF8C 800F3ADC 44812000 */ mtc1 $at, $f4 +/* 8CF90 800F3AE0 8C620000 */ lw $v0, 0x0($v1) +/* 8CF94 800F3AE4 46041082 */ mul.s $f2, $f2, $f4 +/* 8CF98 800F3AE8 00000000 */ nop +/* 8CF9C 800F3AEC 0040282D */ daddu $a1, $v0, $zero +/* 8CFA0 800F3AF0 24420008 */ addiu $v0, $v0, 0x8 +/* 8CFA4 800F3AF4 AC620000 */ sw $v0, 0x0($v1) +/* 8CFA8 800F3AF8 8FA90020 */ lw $t1, 0x20($sp) +/* 8CFAC 800F3AFC 46040002 */ mul.s $f0, $f0, $f4 +/* 8CFB0 800F3B00 00000000 */ nop +/* 8CFB4 800F3B04 0803CEFE */ j .LJP_800F3BF8 +/* 8CFB8 800F3B08 25220062 */ addiu $v0, $t1, 0x62 +.LJP_800F3B0C: +/* 8CFBC 800F3B0C 3C03800A */ lui $v1, %hi(gMainGfxPos) +/* 8CFC0 800F3B10 2463A64C */ addiu $v1, $v1, %lo(gMainGfxPos) +/* 8CFC4 800F3B14 C7A20020 */ lwc1 $f2, 0x20($sp) +/* 8CFC8 800F3B18 468010A0 */ cvt.s.w $f2, $f2 +/* 8CFCC 800F3B1C 44910000 */ mtc1 $s1, $f0 +/* 8CFD0 800F3B20 00000000 */ nop +/* 8CFD4 800F3B24 46800020 */ cvt.s.w $f0, $f0 +/* 8CFD8 800F3B28 3C014080 */ lui $at, (0x40800000 >> 16) +/* 8CFDC 800F3B2C 44812000 */ mtc1 $at, $f4 +/* 8CFE0 800F3B30 8C620000 */ lw $v0, 0x0($v1) +/* 8CFE4 800F3B34 46041082 */ mul.s $f2, $f2, $f4 +/* 8CFE8 800F3B38 00000000 */ nop +/* 8CFEC 800F3B3C 0040282D */ daddu $a1, $v0, $zero +/* 8CFF0 800F3B40 24420008 */ addiu $v0, $v0, 0x8 +/* 8CFF4 800F3B44 AC620000 */ sw $v0, 0x0($v1) +/* 8CFF8 800F3B48 8FA90020 */ lw $t1, 0x20($sp) +/* 8CFFC 800F3B4C 46040002 */ mul.s $f0, $f0, $f4 +/* 8D000 800F3B50 00000000 */ nop +/* 8D004 800F3B54 0803CEFE */ j .LJP_800F3BF8 +/* 8D008 800F3B58 25220090 */ addiu $v0, $t1, 0x90 +.LJP_800F3B5C: +/* 8D00C 800F3B5C 3C03800A */ lui $v1, %hi(gMainGfxPos) +/* 8D010 800F3B60 2463A64C */ addiu $v1, $v1, %lo(gMainGfxPos) +/* 8D014 800F3B64 C7A20020 */ lwc1 $f2, 0x20($sp) +/* 8D018 800F3B68 468010A0 */ cvt.s.w $f2, $f2 +/* 8D01C 800F3B6C 44910000 */ mtc1 $s1, $f0 +/* 8D020 800F3B70 00000000 */ nop +/* 8D024 800F3B74 46800020 */ cvt.s.w $f0, $f0 +/* 8D028 800F3B78 3C014080 */ lui $at, (0x40800000 >> 16) +/* 8D02C 800F3B7C 44812000 */ mtc1 $at, $f4 +/* 8D030 800F3B80 8C620000 */ lw $v0, 0x0($v1) +/* 8D034 800F3B84 46041082 */ mul.s $f2, $f2, $f4 +/* 8D038 800F3B88 00000000 */ nop +/* 8D03C 800F3B8C 0040282D */ daddu $a1, $v0, $zero +/* 8D040 800F3B90 24420008 */ addiu $v0, $v0, 0x8 +/* 8D044 800F3B94 AC620000 */ sw $v0, 0x0($v1) +/* 8D048 800F3B98 8FA90020 */ lw $t1, 0x20($sp) +/* 8D04C 800F3B9C 46040002 */ mul.s $f0, $f0, $f4 +/* 8D050 800F3BA0 00000000 */ nop +/* 8D054 800F3BA4 0803CEFE */ j .LJP_800F3BF8 +/* 8D058 800F3BA8 25220090 */ addiu $v0, $t1, 0x90 +.LJP_800F3BAC: +/* 8D05C 800F3BAC 3C03800A */ lui $v1, %hi(gMainGfxPos) +/* 8D060 800F3BB0 2463A64C */ addiu $v1, $v1, %lo(gMainGfxPos) +/* 8D064 800F3BB4 C7A20020 */ lwc1 $f2, 0x20($sp) +/* 8D068 800F3BB8 468010A0 */ cvt.s.w $f2, $f2 +/* 8D06C 800F3BBC 44910000 */ mtc1 $s1, $f0 +/* 8D070 800F3BC0 00000000 */ nop +/* 8D074 800F3BC4 46800020 */ cvt.s.w $f0, $f0 +/* 8D078 800F3BC8 3C014080 */ lui $at, (0x40800000 >> 16) +/* 8D07C 800F3BCC 44812000 */ mtc1 $at, $f4 +/* 8D080 800F3BD0 8C620000 */ lw $v0, 0x0($v1) +/* 8D084 800F3BD4 46041082 */ mul.s $f2, $f2, $f4 +/* 8D088 800F3BD8 00000000 */ nop +/* 8D08C 800F3BDC 0040282D */ daddu $a1, $v0, $zero +/* 8D090 800F3BE0 24420008 */ addiu $v0, $v0, 0x8 +/* 8D094 800F3BE4 AC620000 */ sw $v0, 0x0($v1) +/* 8D098 800F3BE8 8FA90020 */ lw $t1, 0x20($sp) +/* 8D09C 800F3BEC 46040002 */ mul.s $f0, $f0, $f4 +/* 8D0A0 800F3BF0 00000000 */ nop +/* 8D0A4 800F3BF4 2522008C */ addiu $v0, $t1, 0x8C +.LJP_800F3BF8: +/* 8D0A8 800F3BF8 4600118D */ trunc.w.s $f6, $f2 +/* 8D0AC 800F3BFC 44033000 */ mfc1 $v1, $f6 +/* 8D0B0 800F3C00 00000000 */ nop +/* 8D0B4 800F3C04 30630FFF */ andi $v1, $v1, 0xFFF +/* 8D0B8 800F3C08 00031B00 */ sll $v1, $v1, 12 +/* 8D0BC 800F3C0C 4600018D */ trunc.w.s $f6, $f0 +/* 8D0C0 800F3C10 44043000 */ mfc1 $a0, $f6 +/* 8D0C4 800F3C14 00000000 */ nop +/* 8D0C8 800F3C18 30840FFF */ andi $a0, $a0, 0xFFF +/* 8D0CC 800F3C1C 44821000 */ mtc1 $v0, $f2 +/* 8D0D0 800F3C20 00000000 */ nop +/* 8D0D4 800F3C24 468010A0 */ cvt.s.w $f2, $f2 +/* 8D0D8 800F3C28 46041082 */ mul.s $f2, $f2, $f4 +/* 8D0DC 800F3C2C 00000000 */ nop +/* 8D0E0 800F3C30 3C02ED00 */ lui $v0, (0xED000000 >> 16) +/* 8D0E4 800F3C34 00822025 */ or $a0, $a0, $v0 +/* 8D0E8 800F3C38 00641825 */ or $v1, $v1, $a0 +/* 8D0EC 800F3C3C 44860000 */ mtc1 $a2, $f0 +/* 8D0F0 800F3C40 00000000 */ nop +/* 8D0F4 800F3C44 46800020 */ cvt.s.w $f0, $f0 +/* 8D0F8 800F3C48 46040002 */ mul.s $f0, $f0, $f4 +/* 8D0FC 800F3C4C 00000000 */ nop +/* 8D100 800F3C50 ACA30000 */ sw $v1, 0x0($a1) +/* 8D104 800F3C54 4600118D */ trunc.w.s $f6, $f2 +/* 8D108 800F3C58 44023000 */ mfc1 $v0, $f6 +/* 8D10C 800F3C5C 00000000 */ nop +/* 8D110 800F3C60 30420FFF */ andi $v0, $v0, 0xFFF +/* 8D114 800F3C64 00021300 */ sll $v0, $v0, 12 +/* 8D118 800F3C68 4600018D */ trunc.w.s $f6, $f0 +/* 8D11C 800F3C6C 44033000 */ mfc1 $v1, $f6 +/* 8D120 800F3C70 00000000 */ nop +/* 8D124 800F3C74 30630FFF */ andi $v1, $v1, 0xFFF +/* 8D128 800F3C78 00431025 */ or $v0, $v0, $v1 +/* 8D12C 800F3C7C ACA20004 */ sw $v0, 0x4($a1) +.LJP_800F3C80: +/* 8D130 800F3C80 8FA9005C */ lw $t1, 0x5C($sp) +/* 8D134 800F3C84 3C028011 */ lui $v0, %hi(D_8010D658) +/* 8D138 800F3C88 8442D818 */ lh $v0, %lo(D_8010D658)($v0) +/* 8D13C 800F3C8C 8FA80060 */ lw $t0, 0x60($sp) +/* 8D140 800F3C90 3C058011 */ lui $a1, %hi(gPopupMenu) +/* 8D144 800F3C94 8CA5D85C */ lw $a1, %lo(gPopupMenu)($a1) +/* 8D148 800F3C98 AFA00024 */ sw $zero, 0x24($sp) +/* 8D14C 800F3C9C 25290020 */ addiu $t1, $t1, 0x20 +/* 8D150 800F3CA0 01022021 */ addu $a0, $t0, $v0 +/* 8D154 800F3CA4 AFA90020 */ sw $t1, 0x20($sp) +/* 8D158 800F3CA8 8CA30318 */ lw $v1, 0x318($a1) +/* 8D15C 800F3CAC 24020002 */ addiu $v0, $zero, 0x2 +/* 8D160 800F3CB0 14620004 */ bne $v1, $v0, .LJP_800F3CC4 +/* 8D164 800F3CB4 24910002 */ addiu $s1, $a0, 0x2 +/* 8D168 800F3CB8 0080882D */ daddu $s1, $a0, $zero +/* 8D16C 800F3CBC 0040482D */ daddu $t1, $v0, $zero +/* 8D170 800F3CC0 AFA90024 */ sw $t1, 0x24($sp) +.LJP_800F3CC4: +/* 8D174 800F3CC4 8CA20324 */ lw $v0, 0x324($a1) +/* 8D178 800F3CC8 184000E1 */ blez $v0, .LJP_800F4050 +/* 8D17C 800F3CCC 0000902D */ daddu $s2, $zero, $zero +/* 8D180 800F3CD0 AFA0002C */ sw $zero, 0x2C($sp) +.LJP_800F3CD4: +/* 8D184 800F3CD4 8FA80028 */ lw $t0, 0x28($sp) +/* 8D188 800F3CD8 2502FFFF */ addiu $v0, $t0, -0x1 +/* 8D18C 800F3CDC 0242102A */ slt $v0, $s2, $v0 +/* 8D190 800F3CE0 544000CF */ bnel $v0, $zero, .LJP_800F4020 +/* 8D194 800F3CE4 2631000D */ addiu $s1, $s1, 0xD +/* 8D198 800F3CE8 3C028011 */ lui $v0, %hi(PopupMenu_DisplayedEntryCount) +/* 8D19C 800F3CEC 8042D816 */ lb $v0, %lo(PopupMenu_DisplayedEntryCount)($v0) +/* 8D1A0 800F3CF0 01021021 */ addu $v0, $t0, $v0 +/* 8D1A4 800F3CF4 0052102A */ slt $v0, $v0, $s2 +/* 8D1A8 800F3CF8 544000C9 */ bnel $v0, $zero, .LJP_800F4020 +/* 8D1AC 800F3CFC 2631000D */ addiu $s1, $s1, 0xD +/* 8D1B0 800F3D00 3C028011 */ lui $v0, %hi(gPopupMenu) +/* 8D1B4 800F3D04 8C42D85C */ lw $v0, %lo(gPopupMenu)($v0) +/* 8D1B8 800F3D08 24080001 */ addiu $t0, $zero, 0x1 +/* 8D1BC 800F3D0C 8C430318 */ lw $v1, 0x318($v0) +/* 8D1C0 800F3D10 3C108011 */ lui $s0, %hi(D_8010D690) +/* 8D1C4 800F3D14 8210D850 */ lb $s0, %lo(D_8010D690)($s0) +/* 8D1C8 800F3D18 50680001 */ beql $v1, $t0, .LJP_800F3D20 +/* 8D1CC 800F3D1C 2410000A */ addiu $s0, $zero, 0xA +.LJP_800F3D20: +/* 8D1D0 800F3D20 8FA9002C */ lw $t1, 0x2C($sp) +/* 8D1D4 800F3D24 00491021 */ addu $v0, $v0, $t1 +/* 8D1D8 800F3D28 8C42018C */ lw $v0, 0x18C($v0) +/* 8D1DC 800F3D2C 50400001 */ beql $v0, $zero, .LJP_800F3D34 +/* 8D1E0 800F3D30 2410000B */ addiu $s0, $zero, 0xB +.LJP_800F3D34: +/* 8D1E4 800F3D34 2C62000E */ sltiu $v0, $v1, 0xE +/* 8D1E8 800F3D38 10400056 */ beqz $v0, .LJP_800F3E94 +/* 8D1EC 800F3D3C 00031080 */ sll $v0, $v1, 2 +/* 8D1F0 800F3D40 3C018011 */ lui $at, %hi(jtbl_JP_8010C988) +/* 8D1F4 800F3D44 00220821 */ addu $at, $at, $v0 +/* 8D1F8 800F3D48 8C22C988 */ lw $v0, %lo(jtbl_JP_8010C988)($at) +/* 8D1FC 800F3D4C 00400008 */ jr $v0 +/* 8D200 800F3D50 00000000 */ nop +.LJP_800F3D54: +/* 8D204 800F3D54 3C078011 */ lui $a3, %hi(PopupMenu_Alpha) +/* 8D208 800F3D58 8CE7D810 */ lw $a3, %lo(PopupMenu_Alpha)($a3) +/* 8D20C 800F3D5C 3C028011 */ lui $v0, %hi(gPopupMenu) +/* 8D210 800F3D60 8C42D85C */ lw $v0, %lo(gPopupMenu)($v0) +/* 8D214 800F3D64 8FA50020 */ lw $a1, 0x20($sp) +/* 8D218 800F3D68 8FA9002C */ lw $t1, 0x2C($sp) +/* 8D21C 800F3D6C 24080001 */ addiu $t0, $zero, 0x1 +/* 8D220 800F3D70 AFB00010 */ sw $s0, 0x10($sp) +/* 8D224 800F3D74 AFA80014 */ sw $t0, 0x14($sp) +/* 8D228 800F3D78 00491021 */ addu $v0, $v0, $t1 +/* 8D22C 800F3D7C 8C440084 */ lw $a0, 0x84($v0) +/* 8D230 800F3D80 0803CFA3 */ j .LJP_800F3E8C +/* 8D234 800F3D84 0220302D */ daddu $a2, $s1, $zero +.LJP_800F3D88: +/* 8D238 800F3D88 3C078011 */ lui $a3, %hi(PopupMenu_Alpha) +/* 8D23C 800F3D8C 8CE7D810 */ lw $a3, %lo(PopupMenu_Alpha)($a3) +/* 8D240 800F3D90 3C028011 */ lui $v0, %hi(gPopupMenu) +/* 8D244 800F3D94 8C42D85C */ lw $v0, %lo(gPopupMenu)($v0) +/* 8D248 800F3D98 8FA50020 */ lw $a1, 0x20($sp) +/* 8D24C 800F3D9C 8FA9002C */ lw $t1, 0x2C($sp) +/* 8D250 800F3DA0 24080001 */ addiu $t0, $zero, 0x1 +/* 8D254 800F3DA4 AFB00010 */ sw $s0, 0x10($sp) +/* 8D258 800F3DA8 AFA80014 */ sw $t0, 0x14($sp) +/* 8D25C 800F3DAC 00491021 */ addu $v0, $v0, $t1 +/* 8D260 800F3DB0 8C440084 */ lw $a0, 0x84($v0) +/* 8D264 800F3DB4 0803CFA3 */ j .LJP_800F3E8C +/* 8D268 800F3DB8 0220302D */ daddu $a2, $s1, $zero +.LJP_800F3DBC: +/* 8D26C 800F3DBC 3C028011 */ lui $v0, %hi(gPopupMenu) +/* 8D270 800F3DC0 8C42D85C */ lw $v0, %lo(gPopupMenu)($v0) +/* 8D274 800F3DC4 8FA8002C */ lw $t0, 0x2C($sp) +/* 8D278 800F3DC8 00482021 */ addu $a0, $v0, $t0 +/* 8D27C 800F3DCC 8C83018C */ lw $v1, 0x18C($a0) +/* 8D280 800F3DD0 24020002 */ addiu $v0, $zero, 0x2 +/* 8D284 800F3DD4 50620001 */ beql $v1, $v0, .LJP_800F3DDC +/* 8D288 800F3DD8 24100022 */ addiu $s0, $zero, 0x22 +.LJP_800F3DDC: +/* 8D28C 800F3DDC 8FA50020 */ lw $a1, 0x20($sp) +/* 8D290 800F3DE0 24090001 */ addiu $t1, $zero, 0x1 +/* 8D294 800F3DE4 AFB00010 */ sw $s0, 0x10($sp) +/* 8D298 800F3DE8 AFA90014 */ sw $t1, 0x14($sp) +/* 8D29C 800F3DEC 8C840084 */ lw $a0, 0x84($a0) +/* 8D2A0 800F3DF0 3C078011 */ lui $a3, %hi(PopupMenu_Alpha) +/* 8D2A4 800F3DF4 8CE7D810 */ lw $a3, %lo(PopupMenu_Alpha)($a3) +/* 8D2A8 800F3DF8 0803CFA3 */ j .LJP_800F3E8C +/* 8D2AC 800F3DFC 0220302D */ daddu $a2, $s1, $zero +.LJP_800F3E00: +/* 8D2B0 800F3E00 3C028011 */ lui $v0, %hi(gPopupMenu) +/* 8D2B4 800F3E04 8C42D85C */ lw $v0, %lo(gPopupMenu)($v0) +/* 8D2B8 800F3E08 8FA8002C */ lw $t0, 0x2C($sp) +/* 8D2BC 800F3E0C 00481821 */ addu $v1, $v0, $t0 +/* 8D2C0 800F3E10 8C620210 */ lw $v0, 0x210($v1) +/* 8D2C4 800F3E14 10400002 */ beqz $v0, .LJP_800F3E20 +/* 8D2C8 800F3E18 2410000A */ addiu $s0, $zero, 0xA +/* 8D2CC 800F3E1C 2410000B */ addiu $s0, $zero, 0xB +.LJP_800F3E20: +/* 8D2D0 800F3E20 8C640108 */ lw $a0, 0x108($v1) +/* 8D2D4 800F3E24 0000282D */ daddu $a1, $zero, $zero +/* 8D2D8 800F3E28 0C04AB92 */ jal set_message_int_var +/* 8D2DC 800F3E2C 24840001 */ addiu $a0, $a0, 0x1 +/* 8D2E0 800F3E30 3C040020 */ lui $a0, (0x2000E7 >> 16) +/* 8D2E4 800F3E34 348400E7 */ ori $a0, $a0, (0x2000E7 & 0xFFFF) +/* 8D2E8 800F3E38 8FA50020 */ lw $a1, 0x20($sp) +/* 8D2EC 800F3E3C 3C078011 */ lui $a3, %hi(PopupMenu_Alpha) +/* 8D2F0 800F3E40 8CE7D810 */ lw $a3, %lo(PopupMenu_Alpha)($a3) +/* 8D2F4 800F3E44 0803CFA0 */ j .LJP_800F3E80 +/* 8D2F8 800F3E48 0220302D */ daddu $a2, $s1, $zero +.LJP_800F3E4C: +/* 8D2FC 800F3E4C 3C028011 */ lui $v0, %hi(gPopupMenu) +/* 8D300 800F3E50 8C42D85C */ lw $v0, %lo(gPopupMenu)($v0) +/* 8D304 800F3E54 8FA8002C */ lw $t0, 0x2C($sp) +/* 8D308 800F3E58 00481821 */ addu $v1, $v0, $t0 +/* 8D30C 800F3E5C 8C620210 */ lw $v0, 0x210($v1) +/* 8D310 800F3E60 10400002 */ beqz $v0, .LJP_800F3E6C +/* 8D314 800F3E64 2410000A */ addiu $s0, $zero, 0xA +/* 8D318 800F3E68 2410000B */ addiu $s0, $zero, 0xB +.LJP_800F3E6C: +/* 8D31C 800F3E6C 0220302D */ daddu $a2, $s1, $zero +/* 8D320 800F3E70 8FA50020 */ lw $a1, 0x20($sp) +/* 8D324 800F3E74 3C078011 */ lui $a3, %hi(PopupMenu_Alpha) +/* 8D328 800F3E78 8CE7D810 */ lw $a3, %lo(PopupMenu_Alpha)($a3) +/* 8D32C 800F3E7C 8C640084 */ lw $a0, 0x84($v1) +.LJP_800F3E80: +/* 8D330 800F3E80 24090001 */ addiu $t1, $zero, 0x1 +/* 8D334 800F3E84 AFB00010 */ sw $s0, 0x10($sp) +/* 8D338 800F3E88 AFA90014 */ sw $t1, 0x14($sp) +.LJP_800F3E8C: +/* 8D33C 800F3E8C 0C04ADC4 */ jal draw_msg +/* 8D340 800F3E90 00000000 */ nop +.LJP_800F3E94: +/* 8D344 800F3E94 3C048011 */ lui $a0, %hi(gPopupMenu) +/* 8D348 800F3E98 8C84D85C */ lw $a0, %lo(gPopupMenu)($a0) +/* 8D34C 800F3E9C 8C830318 */ lw $v1, 0x318($a0) +/* 8D350 800F3EA0 24080003 */ addiu $t0, $zero, 0x3 +/* 8D354 800F3EA4 10680045 */ beq $v1, $t0, .LJP_800F3FBC +/* 8D358 800F3EA8 0220302D */ daddu $a2, $s1, $zero +/* 8D35C 800F3EAC 28620004 */ slti $v0, $v1, 0x4 +/* 8D360 800F3EB0 10400005 */ beqz $v0, .LJP_800F3EC8 +/* 8D364 800F3EB4 24090001 */ addiu $t1, $zero, 0x1 +/* 8D368 800F3EB8 1069000B */ beq $v1, $t1, .LJP_800F3EE8 +/* 8D36C 800F3EBC 0000982D */ daddu $s3, $zero, $zero +/* 8D370 800F3EC0 0803D008 */ j .LJP_800F4020 +/* 8D374 800F3EC4 2631000D */ addiu $s1, $s1, 0xD +.LJP_800F3EC8: +/* 8D378 800F3EC8 24020004 */ addiu $v0, $zero, 0x4 +/* 8D37C 800F3ECC 10620005 */ beq $v1, $v0, .LJP_800F3EE4 +/* 8D380 800F3ED0 24020005 */ addiu $v0, $zero, 0x5 +/* 8D384 800F3ED4 10620044 */ beq $v1, $v0, .LJP_800F3FE8 +/* 8D388 800F3ED8 0220302D */ daddu $a2, $s1, $zero +/* 8D38C 800F3EDC 0803D008 */ j .LJP_800F4020 +/* 8D390 800F3EE0 2631000D */ addiu $s1, $s1, 0xD +.LJP_800F3EE4: +/* 8D394 800F3EE4 0000982D */ daddu $s3, $zero, $zero +.LJP_800F3EE8: +/* 8D398 800F3EE8 0012F080 */ sll $fp, $s2, 2 +/* 8D39C 800F3EEC 24170042 */ addiu $s7, $zero, 0x42 +/* 8D3A0 800F3EF0 24160032 */ addiu $s6, $zero, 0x32 +/* 8D3A4 800F3EF4 3C158011 */ lui $s5, %hi(D_80109898) +/* 8D3A8 800F3EF8 26B59A28 */ addiu $s5, $s5, %lo(D_80109898) +/* 8D3AC 800F3EFC 3C148011 */ lui $s4, %hi(D_80109890) +/* 8D3B0 800F3F00 26949A20 */ addiu $s4, $s4, %lo(D_80109890) +.LJP_800F3F04: +/* 8D3B4 800F3F04 3C028011 */ lui $v0, %hi(gPopupMenu) +/* 8D3B8 800F3F08 8C42D85C */ lw $v0, %lo(gPopupMenu)($v0) +/* 8D3BC 800F3F0C 005E1021 */ addu $v0, $v0, $fp +/* 8D3C0 800F3F10 8C42018C */ lw $v0, 0x18C($v0) +/* 8D3C4 800F3F14 3C108011 */ lui $s0, %hi(PopupMenu_PartnerLevelHEID) +/* 8D3C8 800F3F18 8E10D828 */ lw $s0, %lo(PopupMenu_PartnerLevelHEID)($s0) +/* 8D3CC 800F3F1C 10400003 */ beqz $v0, .LJP_800F3F2C +/* 8D3D0 800F3F20 00000000 */ nop +/* 8D3D4 800F3F24 0803CFCC */ j .LJP_800F3F30 +/* 8D3D8 800F3F28 8E850000 */ lw $a1, 0x0($s4) +.LJP_800F3F2C: +/* 8D3DC 800F3F2C 8EA50000 */ lw $a1, 0x0($s5) +.LJP_800F3F30: +/* 8D3E0 800F3F30 0C05262B */ jal hud_element_set_script +/* 8D3E4 800F3F34 0200202D */ daddu $a0, $s0, $zero +/* 8D3E8 800F3F38 3C028011 */ lui $v0, %hi(gPopupMenu) +/* 8D3EC 800F3F3C 8C42D85C */ lw $v0, %lo(gPopupMenu)($v0) +/* 8D3F0 800F3F40 8C420318 */ lw $v0, 0x318($v0) +/* 8D3F4 800F3F44 24080001 */ addiu $t0, $zero, 0x1 +/* 8D3F8 800F3F48 14480005 */ bne $v0, $t0, .LJP_800F3F60 +/* 8D3FC 800F3F4C 0200202D */ daddu $a0, $s0, $zero +/* 8D400 800F3F50 8FA90020 */ lw $t1, 0x20($sp) +/* 8D404 800F3F54 2626000A */ addiu $a2, $s1, 0xA +/* 8D408 800F3F58 0803CFDB */ j .LJP_800F3F6C +/* 8D40C 800F3F5C 01362821 */ addu $a1, $t1, $s6 +.LJP_800F3F60: +/* 8D410 800F3F60 8FA80020 */ lw $t0, 0x20($sp) +/* 8D414 800F3F64 2626000A */ addiu $a2, $s1, 0xA +/* 8D418 800F3F68 01172821 */ addu $a1, $t0, $s7 +.LJP_800F3F6C: +/* 8D41C 800F3F6C 0C05268D */ jal hud_element_set_render_pos +/* 8D420 800F3F70 00000000 */ nop +/* 8D424 800F3F74 3C028011 */ lui $v0, %hi(gPopupMenu) +/* 8D428 800F3F78 8C42D85C */ lw $v0, %lo(gPopupMenu)($v0) +/* 8D42C 800F3F7C 005E1021 */ addu $v0, $v0, $fp +/* 8D430 800F3F80 8C420210 */ lw $v0, 0x210($v0) +/* 8D434 800F3F84 0262102A */ slt $v0, $s3, $v0 +/* 8D438 800F3F88 50400004 */ beql $v0, $zero, .LJP_800F3F9C +/* 8D43C 800F3F8C 26F7000D */ addiu $s7, $s7, 0xD +/* 8D440 800F3F90 0C05261D */ jal hud_element_draw_next +/* 8D444 800F3F94 0200202D */ daddu $a0, $s0, $zero +/* 8D448 800F3F98 26F7000D */ addiu $s7, $s7, 0xD +.LJP_800F3F9C: +/* 8D44C 800F3F9C 26D6000D */ addiu $s6, $s6, 0xD +/* 8D450 800F3FA0 26B50004 */ addiu $s5, $s5, 0x4 +/* 8D454 800F3FA4 26730001 */ addiu $s3, $s3, 0x1 +/* 8D458 800F3FA8 2A620002 */ slti $v0, $s3, 0x2 +/* 8D45C 800F3FAC 1440FFD5 */ bnez $v0, .LJP_800F3F04 +/* 8D460 800F3FB0 26940004 */ addiu $s4, $s4, 0x4 +/* 8D464 800F3FB4 0803D008 */ j .LJP_800F4020 +/* 8D468 800F3FB8 2631000D */ addiu $s1, $s1, 0xD +.LJP_800F3FBC: +/* 8D46C 800F3FBC 8FA90020 */ lw $t1, 0x20($sp) +/* 8D470 800F3FC0 3C028011 */ lui $v0, %hi(PopupMenu_Alpha) +/* 8D474 800F3FC4 8C42D810 */ lw $v0, %lo(PopupMenu_Alpha)($v0) +/* 8D478 800F3FC8 2525006C */ addiu $a1, $t1, 0x6C +/* 8D47C 800F3FCC 8FA9002C */ lw $t1, 0x2C($sp) +/* 8D480 800F3FD0 24080003 */ addiu $t0, $zero, 0x3 +/* 8D484 800F3FD4 AFB00010 */ sw $s0, 0x10($sp) +/* 8D488 800F3FD8 AFA80018 */ sw $t0, 0x18($sp) +/* 8D48C 800F3FDC AFA20014 */ sw $v0, 0x14($sp) +/* 8D490 800F3FE0 0803D004 */ j .LJP_800F4010 +/* 8D494 800F3FE4 00891021 */ addu $v0, $a0, $t1 +.LJP_800F3FE8: +/* 8D498 800F3FE8 8FA80020 */ lw $t0, 0x20($sp) +/* 8D49C 800F3FEC 3C028011 */ lui $v0, %hi(PopupMenu_Alpha) +/* 8D4A0 800F3FF0 8C42D810 */ lw $v0, %lo(PopupMenu_Alpha)($v0) +/* 8D4A4 800F3FF4 2505006A */ addiu $a1, $t0, 0x6A +/* 8D4A8 800F3FF8 8FA8002C */ lw $t0, 0x2C($sp) +/* 8D4AC 800F3FFC 24090003 */ addiu $t1, $zero, 0x3 +/* 8D4B0 800F4000 AFB00010 */ sw $s0, 0x10($sp) +/* 8D4B4 800F4004 AFA90018 */ sw $t1, 0x18($sp) +/* 8D4B8 800F4008 AFA20014 */ sw $v0, 0x14($sp) +/* 8D4BC 800F400C 00881021 */ addu $v0, $a0, $t0 +.LJP_800F4010: +/* 8D4C0 800F4010 8C440210 */ lw $a0, 0x210($v0) +/* 8D4C4 800F4014 0C04B22C */ jal draw_number +/* 8D4C8 800F4018 24070001 */ addiu $a3, $zero, 0x1 +/* 8D4CC 800F401C 2631000D */ addiu $s1, $s1, 0xD +.LJP_800F4020: +/* 8D4D0 800F4020 16400003 */ bnez $s2, .LJP_800F4030 +/* 8D4D4 800F4024 26520001 */ addiu $s2, $s2, 0x1 +/* 8D4D8 800F4028 8FA90024 */ lw $t1, 0x24($sp) +/* 8D4DC 800F402C 02298821 */ addu $s1, $s1, $t1 +.LJP_800F4030: +/* 8D4E0 800F4030 3C028011 */ lui $v0, %hi(gPopupMenu) +/* 8D4E4 800F4034 8C42D85C */ lw $v0, %lo(gPopupMenu)($v0) +/* 8D4E8 800F4038 8FA8002C */ lw $t0, 0x2C($sp) +/* 8D4EC 800F403C 8C420324 */ lw $v0, 0x324($v0) +/* 8D4F0 800F4040 25080004 */ addiu $t0, $t0, 0x4 +/* 8D4F4 800F4044 0242102A */ slt $v0, $s2, $v0 +/* 8D4F8 800F4048 1440FF22 */ bnez $v0, .LJP_800F3CD4 +/* 8D4FC 800F404C AFA8002C */ sw $t0, 0x2C($sp) +.LJP_800F4050: +/* 8D500 800F4050 8FA9005C */ lw $t1, 0x5C($sp) +/* 8D504 800F4054 3C028011 */ lui $v0, %hi(D_8010D658) +/* 8D508 800F4058 8442D818 */ lh $v0, %lo(D_8010D658)($v0) +/* 8D50C 800F405C 8FA80060 */ lw $t0, 0x60($sp) +/* 8D510 800F4060 AFA00024 */ sw $zero, 0x24($sp) +/* 8D514 800F4064 25290018 */ addiu $t1, $t1, 0x18 +/* 8D518 800F4068 01022021 */ addu $a0, $t0, $v0 +/* 8D51C 800F406C 3C028011 */ lui $v0, %hi(gPopupMenu) +/* 8D520 800F4070 8C42D85C */ lw $v0, %lo(gPopupMenu)($v0) +/* 8D524 800F4074 AFA90020 */ sw $t1, 0x20($sp) +/* 8D528 800F4078 8C430318 */ lw $v1, 0x318($v0) +/* 8D52C 800F407C 24020002 */ addiu $v0, $zero, 0x2 +/* 8D530 800F4080 14620004 */ bne $v1, $v0, .LJP_800F4094 +/* 8D534 800F4084 24910009 */ addiu $s1, $a0, 0x9 +/* 8D538 800F4088 24910007 */ addiu $s1, $a0, 0x7 +/* 8D53C 800F408C 0040482D */ daddu $t1, $v0, $zero +/* 8D540 800F4090 AFA90024 */ sw $t1, 0x24($sp) +.LJP_800F4094: +/* 8D544 800F4094 2C62000E */ sltiu $v0, $v1, 0xE +/* 8D548 800F4098 104000B2 */ beqz $v0, .LJP_800F4364 +/* 8D54C 800F409C 00031080 */ sll $v0, $v1, 2 +/* 8D550 800F40A0 3C018011 */ lui $at, %hi(jtbl_JP_8010C9C0) +/* 8D554 800F40A4 00220821 */ addu $at, $at, $v0 +/* 8D558 800F40A8 8C22C9C0 */ lw $v0, %lo(jtbl_JP_8010C9C0)($at) +/* 8D55C 800F40AC 00400008 */ jr $v0 +/* 8D560 800F40B0 00000000 */ nop +.LJP_800F40B4: +/* 8D564 800F40B4 3C028011 */ lui $v0, %hi(gPopupMenu) +/* 8D568 800F40B8 8C42D85C */ lw $v0, %lo(gPopupMenu)($v0) +/* 8D56C 800F40BC 8C420324 */ lw $v0, 0x324($v0) +/* 8D570 800F40C0 184000A8 */ blez $v0, .LJP_800F4364 +/* 8D574 800F40C4 0000902D */ daddu $s2, $zero, $zero +/* 8D578 800F40C8 8FA80028 */ lw $t0, 0x28($sp) +/* 8D57C 800F40CC 2513FFFF */ addiu $s3, $t0, -0x1 +/* 8D580 800F40D0 0253102A */ slt $v0, $s2, $s3 +.LJP_800F40D4: +/* 8D584 800F40D4 14400008 */ bnez $v0, .LJP_800F40F8 +/* 8D588 800F40D8 00000000 */ nop +/* 8D58C 800F40DC 3C028011 */ lui $v0, %hi(PopupMenu_DisplayedEntryCount) +/* 8D590 800F40E0 8042D816 */ lb $v0, %lo(PopupMenu_DisplayedEntryCount)($v0) +/* 8D594 800F40E4 8FA90028 */ lw $t1, 0x28($sp) +/* 8D598 800F40E8 01221021 */ addu $v0, $t1, $v0 +/* 8D59C 800F40EC 0052102A */ slt $v0, $v0, $s2 +/* 8D5A0 800F40F0 10400006 */ beqz $v0, .LJP_800F410C +/* 8D5A4 800F40F4 00121880 */ sll $v1, $s2, 2 +.LJP_800F40F8: +/* 8D5A8 800F40F8 1640001F */ bnez $s2, .LJP_800F4178 +/* 8D5AC 800F40FC 2631000D */ addiu $s1, $s1, 0xD +/* 8D5B0 800F4100 8FA80024 */ lw $t0, 0x24($sp) +/* 8D5B4 800F4104 0803D05E */ j .LJP_800F4178 +/* 8D5B8 800F4108 02288821 */ addu $s1, $s1, $t0 +.LJP_800F410C: +/* 8D5BC 800F410C 3C028011 */ lui $v0, %hi(gPopupMenu) +/* 8D5C0 800F4110 8C42D85C */ lw $v0, %lo(gPopupMenu)($v0) +/* 8D5C4 800F4114 3C108011 */ lui $s0, %hi(PopupMenu_EntryIconHEID) +/* 8D5C8 800F4118 8E10D838 */ lw $s0, %lo(PopupMenu_EntryIconHEID)($s0) +/* 8D5CC 800F411C 00431021 */ addu $v0, $v0, $v1 +/* 8D5D0 800F4120 8C450000 */ lw $a1, 0x0($v0) +/* 8D5D4 800F4124 0C05262B */ jal hud_element_set_script +/* 8D5D8 800F4128 0200202D */ daddu $a0, $s0, $zero +/* 8D5DC 800F412C 0200202D */ daddu $a0, $s0, $zero +/* 8D5E0 800F4130 8FA50020 */ lw $a1, 0x20($sp) +/* 8D5E4 800F4134 0C05268D */ jal hud_element_set_render_pos +/* 8D5E8 800F4138 0220302D */ daddu $a2, $s1, $zero +/* 8D5EC 800F413C 0200202D */ daddu $a0, $s0, $zero +/* 8D5F0 800F4140 3C058011 */ lui $a1, %hi(PopupMenu_Alpha) +/* 8D5F4 800F4144 8CA5D810 */ lw $a1, %lo(PopupMenu_Alpha)($a1) +/* 8D5F8 800F4148 0C0527D8 */ jal hud_element_set_alpha +/* 8D5FC 800F414C 2631000D */ addiu $s1, $s1, 0xD +/* 8D600 800F4150 3C053EE6 */ lui $a1, (0x3EE66666 >> 16) +/* 8D604 800F4154 34A56666 */ ori $a1, $a1, (0x3EE66666 & 0xFFFF) +/* 8D608 800F4158 0C052734 */ jal hud_element_set_scale +/* 8D60C 800F415C 0200202D */ daddu $a0, $s0, $zero +/* 8D610 800F4160 0C052624 */ jal hud_element_draw_without_clipping +/* 8D614 800F4164 0200202D */ daddu $a0, $s0, $zero +/* 8D618 800F4168 16400003 */ bnez $s2, .LJP_800F4178 +/* 8D61C 800F416C 00000000 */ nop +/* 8D620 800F4170 8FA90024 */ lw $t1, 0x24($sp) +/* 8D624 800F4174 02298821 */ addu $s1, $s1, $t1 +.LJP_800F4178: +/* 8D628 800F4178 3C028011 */ lui $v0, %hi(gPopupMenu) +/* 8D62C 800F417C 8C42D85C */ lw $v0, %lo(gPopupMenu)($v0) +/* 8D630 800F4180 8C420324 */ lw $v0, 0x324($v0) +/* 8D634 800F4184 26520001 */ addiu $s2, $s2, 0x1 +/* 8D638 800F4188 0242102A */ slt $v0, $s2, $v0 +/* 8D63C 800F418C 1440FFD1 */ bnez $v0, .LJP_800F40D4 +/* 8D640 800F4190 0253102A */ slt $v0, $s2, $s3 +/* 8D644 800F4194 0803D0D9 */ j .LJP_800F4364 +/* 8D648 800F4198 00000000 */ nop +.LJP_800F419C: +/* 8D64C 800F419C 3C028011 */ lui $v0, %hi(gPopupMenu) +/* 8D650 800F41A0 8C42D85C */ lw $v0, %lo(gPopupMenu)($v0) +/* 8D654 800F41A4 8C420324 */ lw $v0, 0x324($v0) +/* 8D658 800F41A8 1840006E */ blez $v0, .LJP_800F4364 +/* 8D65C 800F41AC 0000902D */ daddu $s2, $zero, $zero +/* 8D660 800F41B0 8FA80028 */ lw $t0, 0x28($sp) +/* 8D664 800F41B4 2513FFFF */ addiu $s3, $t0, -0x1 +/* 8D668 800F41B8 0253102A */ slt $v0, $s2, $s3 +.LJP_800F41BC: +/* 8D66C 800F41BC 14400008 */ bnez $v0, .LJP_800F41E0 +/* 8D670 800F41C0 00000000 */ nop +/* 8D674 800F41C4 3C028011 */ lui $v0, %hi(PopupMenu_DisplayedEntryCount) +/* 8D678 800F41C8 8042D816 */ lb $v0, %lo(PopupMenu_DisplayedEntryCount)($v0) +/* 8D67C 800F41CC 8FA90028 */ lw $t1, 0x28($sp) +/* 8D680 800F41D0 01221021 */ addu $v0, $t1, $v0 +/* 8D684 800F41D4 0052102A */ slt $v0, $v0, $s2 +/* 8D688 800F41D8 10400006 */ beqz $v0, .LJP_800F41F4 +/* 8D68C 800F41DC 00121880 */ sll $v1, $s2, 2 +.LJP_800F41E0: +/* 8D690 800F41E0 1640001F */ bnez $s2, .LJP_800F4260 +/* 8D694 800F41E4 2631000D */ addiu $s1, $s1, 0xD +/* 8D698 800F41E8 8FA80024 */ lw $t0, 0x24($sp) +/* 8D69C 800F41EC 0803D098 */ j .LJP_800F4260 +/* 8D6A0 800F41F0 02288821 */ addu $s1, $s1, $t0 +.LJP_800F41F4: +/* 8D6A4 800F41F4 3C028011 */ lui $v0, %hi(gPopupMenu) +/* 8D6A8 800F41F8 8C42D85C */ lw $v0, %lo(gPopupMenu)($v0) +/* 8D6AC 800F41FC 3C108011 */ lui $s0, %hi(PopupMenu_EntryIconHEID) +/* 8D6B0 800F4200 8E10D838 */ lw $s0, %lo(PopupMenu_EntryIconHEID)($s0) +/* 8D6B4 800F4204 00431021 */ addu $v0, $v0, $v1 +/* 8D6B8 800F4208 8C450000 */ lw $a1, 0x0($v0) +/* 8D6BC 800F420C 0C05262B */ jal hud_element_set_script +/* 8D6C0 800F4210 0200202D */ daddu $a0, $s0, $zero +/* 8D6C4 800F4214 0200202D */ daddu $a0, $s0, $zero +/* 8D6C8 800F4218 8FA50020 */ lw $a1, 0x20($sp) +/* 8D6CC 800F421C 0C05268D */ jal hud_element_set_render_pos +/* 8D6D0 800F4220 0220302D */ daddu $a2, $s1, $zero +/* 8D6D4 800F4224 0200202D */ daddu $a0, $s0, $zero +/* 8D6D8 800F4228 3C058011 */ lui $a1, %hi(PopupMenu_Alpha) +/* 8D6DC 800F422C 8CA5D810 */ lw $a1, %lo(PopupMenu_Alpha)($a1) +/* 8D6E0 800F4230 0C0527D8 */ jal hud_element_set_alpha +/* 8D6E4 800F4234 2631000D */ addiu $s1, $s1, 0xD +/* 8D6E8 800F4238 3C053EE6 */ lui $a1, (0x3EE66666 >> 16) +/* 8D6EC 800F423C 34A56666 */ ori $a1, $a1, (0x3EE66666 & 0xFFFF) +/* 8D6F0 800F4240 0C052734 */ jal hud_element_set_scale +/* 8D6F4 800F4244 0200202D */ daddu $a0, $s0, $zero +/* 8D6F8 800F4248 0C052624 */ jal hud_element_draw_without_clipping +/* 8D6FC 800F424C 0200202D */ daddu $a0, $s0, $zero +/* 8D700 800F4250 16400003 */ bnez $s2, .LJP_800F4260 +/* 8D704 800F4254 00000000 */ nop +/* 8D708 800F4258 8FA90024 */ lw $t1, 0x24($sp) +/* 8D70C 800F425C 02298821 */ addu $s1, $s1, $t1 +.LJP_800F4260: +/* 8D710 800F4260 3C028011 */ lui $v0, %hi(gPopupMenu) +/* 8D714 800F4264 8C42D85C */ lw $v0, %lo(gPopupMenu)($v0) +/* 8D718 800F4268 8C420324 */ lw $v0, 0x324($v0) +/* 8D71C 800F426C 26520001 */ addiu $s2, $s2, 0x1 +/* 8D720 800F4270 0242102A */ slt $v0, $s2, $v0 +/* 8D724 800F4274 1440FFD1 */ bnez $v0, .LJP_800F41BC +/* 8D728 800F4278 0253102A */ slt $v0, $s2, $s3 +/* 8D72C 800F427C 0803D0D9 */ j .LJP_800F4364 +/* 8D730 800F4280 00000000 */ nop +.LJP_800F4284: +/* 8D734 800F4284 3C028011 */ lui $v0, %hi(gPopupMenu) +/* 8D738 800F4288 8C42D85C */ lw $v0, %lo(gPopupMenu)($v0) +/* 8D73C 800F428C 8C420324 */ lw $v0, 0x324($v0) +/* 8D740 800F4290 18400034 */ blez $v0, .LJP_800F4364 +/* 8D744 800F4294 0000902D */ daddu $s2, $zero, $zero +/* 8D748 800F4298 8FA80028 */ lw $t0, 0x28($sp) +/* 8D74C 800F429C 2513FFFF */ addiu $s3, $t0, -0x1 +/* 8D750 800F42A0 0253102A */ slt $v0, $s2, $s3 +.LJP_800F42A4: +/* 8D754 800F42A4 14400008 */ bnez $v0, .LJP_800F42C8 +/* 8D758 800F42A8 00000000 */ nop +/* 8D75C 800F42AC 3C028011 */ lui $v0, %hi(PopupMenu_DisplayedEntryCount) +/* 8D760 800F42B0 8042D816 */ lb $v0, %lo(PopupMenu_DisplayedEntryCount)($v0) +/* 8D764 800F42B4 8FA90028 */ lw $t1, 0x28($sp) +/* 8D768 800F42B8 01221021 */ addu $v0, $t1, $v0 +/* 8D76C 800F42BC 0052102A */ slt $v0, $v0, $s2 +/* 8D770 800F42C0 10400006 */ beqz $v0, .LJP_800F42DC +/* 8D774 800F42C4 00121880 */ sll $v1, $s2, 2 +.LJP_800F42C8: +/* 8D778 800F42C8 1640001F */ bnez $s2, .LJP_800F4348 +/* 8D77C 800F42CC 2631000D */ addiu $s1, $s1, 0xD +/* 8D780 800F42D0 8FA80024 */ lw $t0, 0x24($sp) +/* 8D784 800F42D4 0803D0D2 */ j .LJP_800F4348 +/* 8D788 800F42D8 02288821 */ addu $s1, $s1, $t0 +.LJP_800F42DC: +/* 8D78C 800F42DC 3C028011 */ lui $v0, %hi(gPopupMenu) +/* 8D790 800F42E0 8C42D85C */ lw $v0, %lo(gPopupMenu)($v0) +/* 8D794 800F42E4 3C108011 */ lui $s0, %hi(PopupMenu_EntryIconHEID) +/* 8D798 800F42E8 8E10D838 */ lw $s0, %lo(PopupMenu_EntryIconHEID)($s0) +/* 8D79C 800F42EC 00431021 */ addu $v0, $v0, $v1 +/* 8D7A0 800F42F0 8C450000 */ lw $a1, 0x0($v0) +/* 8D7A4 800F42F4 0C05262B */ jal hud_element_set_script +/* 8D7A8 800F42F8 0200202D */ daddu $a0, $s0, $zero +/* 8D7AC 800F42FC 0200202D */ daddu $a0, $s0, $zero +/* 8D7B0 800F4300 8FA50020 */ lw $a1, 0x20($sp) +/* 8D7B4 800F4304 0C05268D */ jal hud_element_set_render_pos +/* 8D7B8 800F4308 0220302D */ daddu $a2, $s1, $zero +/* 8D7BC 800F430C 0200202D */ daddu $a0, $s0, $zero +/* 8D7C0 800F4310 3C058011 */ lui $a1, %hi(PopupMenu_Alpha) +/* 8D7C4 800F4314 8CA5D810 */ lw $a1, %lo(PopupMenu_Alpha)($a1) +/* 8D7C8 800F4318 0C0527D8 */ jal hud_element_set_alpha +/* 8D7CC 800F431C 2631000D */ addiu $s1, $s1, 0xD +/* 8D7D0 800F4320 3C053EE6 */ lui $a1, (0x3EE66666 >> 16) +/* 8D7D4 800F4324 34A56666 */ ori $a1, $a1, (0x3EE66666 & 0xFFFF) +/* 8D7D8 800F4328 0C052734 */ jal hud_element_set_scale +/* 8D7DC 800F432C 0200202D */ daddu $a0, $s0, $zero +/* 8D7E0 800F4330 0C052624 */ jal hud_element_draw_without_clipping +/* 8D7E4 800F4334 0200202D */ daddu $a0, $s0, $zero +/* 8D7E8 800F4338 16400003 */ bnez $s2, .LJP_800F4348 +/* 8D7EC 800F433C 00000000 */ nop +/* 8D7F0 800F4340 8FA90024 */ lw $t1, 0x24($sp) +/* 8D7F4 800F4344 02298821 */ addu $s1, $s1, $t1 +.LJP_800F4348: +/* 8D7F8 800F4348 3C028011 */ lui $v0, %hi(gPopupMenu) +/* 8D7FC 800F434C 8C42D85C */ lw $v0, %lo(gPopupMenu)($v0) +/* 8D800 800F4350 8C420324 */ lw $v0, 0x324($v0) +/* 8D804 800F4354 26520001 */ addiu $s2, $s2, 0x1 +/* 8D808 800F4358 0242102A */ slt $v0, $s2, $v0 +/* 8D80C 800F435C 1440FFD1 */ bnez $v0, .LJP_800F42A4 +/* 8D810 800F4360 0253102A */ slt $v0, $s2, $s3 +.LJP_800F4364: +/* 8D814 800F4364 8FA8005C */ lw $t0, 0x5C($sp) +/* 8D818 800F4368 3C038011 */ lui $v1, %hi(PopupMenu_FirstDisplayIndex) +/* 8D81C 800F436C 8063D814 */ lb $v1, %lo(PopupMenu_FirstDisplayIndex)($v1) +/* 8D820 800F4370 3C048011 */ lui $a0, %hi(PopupMenu_SelectedIndex) +/* 8D824 800F4374 8C84D808 */ lw $a0, %lo(PopupMenu_SelectedIndex)($a0) +/* 8D828 800F4378 3C108011 */ lui $s0, %hi(PopupMenu_CursorHEID) +/* 8D82C 800F437C 8E10D82C */ lw $s0, %lo(PopupMenu_CursorHEID)($s0) +/* 8D830 800F4380 8FA90060 */ lw $t1, 0x60($sp) +/* 8D834 800F4384 25080008 */ addiu $t0, $t0, 0x8 +/* 8D838 800F4388 00831823 */ subu $v1, $a0, $v1 +/* 8D83C 800F438C 00031040 */ sll $v0, $v1, 1 +/* 8D840 800F4390 00431021 */ addu $v0, $v0, $v1 +/* 8D844 800F4394 00021080 */ sll $v0, $v0, 2 +/* 8D848 800F4398 00431021 */ addu $v0, $v0, $v1 +/* 8D84C 800F439C 24420009 */ addiu $v0, $v0, 0x9 +/* 8D850 800F43A0 3C038011 */ lui $v1, %hi(gPopupMenu) +/* 8D854 800F43A4 8C63D85C */ lw $v1, %lo(gPopupMenu)($v1) +/* 8D858 800F43A8 01228821 */ addu $s1, $t1, $v0 +/* 8D85C 800F43AC AFA80020 */ sw $t0, 0x20($sp) +/* 8D860 800F43B0 8C630318 */ lw $v1, 0x318($v1) +/* 8D864 800F43B4 24020002 */ addiu $v0, $zero, 0x2 +/* 8D868 800F43B8 54620004 */ bnel $v1, $v0, .LJP_800F43CC +/* 8D86C 800F43BC 0200202D */ daddu $a0, $s0, $zero +/* 8D870 800F43C0 50800001 */ beql $a0, $zero, .LJP_800F43C8 +/* 8D874 800F43C4 2631FFFE */ addiu $s1, $s1, -0x2 +.LJP_800F43C8: +/* 8D878 800F43C8 0200202D */ daddu $a0, $s0, $zero +.LJP_800F43CC: +/* 8D87C 800F43CC 8FA50020 */ lw $a1, 0x20($sp) +/* 8D880 800F43D0 0C05268D */ jal hud_element_set_render_pos +/* 8D884 800F43D4 0220302D */ daddu $a2, $s1, $zero +/* 8D888 800F43D8 3C058011 */ lui $a1, %hi(PopupMenu_Alpha) +/* 8D88C 800F43DC 8CA5D810 */ lw $a1, %lo(PopupMenu_Alpha)($a1) +/* 8D890 800F43E0 0C0527D8 */ jal hud_element_set_alpha +/* 8D894 800F43E4 0200202D */ daddu $a0, $s0, $zero +/* 8D898 800F43E8 0C052624 */ jal hud_element_draw_without_clipping +/* 8D89C 800F43EC 0200202D */ daddu $a0, $s0, $zero +/* 8D8A0 800F43F0 8FA8005C */ lw $t0, 0x5C($sp) +/* 8D8A4 800F43F4 8FA90060 */ lw $t1, 0x60($sp) +/* 8D8A8 800F43F8 3C038011 */ lui $v1, %hi(PopupMenu_DisplayedEntryCount) +/* 8D8AC 800F43FC 8063D816 */ lb $v1, %lo(PopupMenu_DisplayedEntryCount)($v1) +/* 8D8B0 800F4400 2531FFFA */ addiu $s1, $t1, -0x6 +/* 8D8B4 800F4404 00031040 */ sll $v0, $v1, 1 +/* 8D8B8 800F4408 00431021 */ addu $v0, $v0, $v1 +/* 8D8BC 800F440C 00021080 */ sll $v0, $v0, 2 +/* 8D8C0 800F4410 00431021 */ addu $v0, $v0, $v1 +/* 8D8C4 800F4414 3C038011 */ lui $v1, %hi(gPopupMenu) +/* 8D8C8 800F4418 8C63D85C */ lw $v1, %lo(gPopupMenu)($v1) +/* 8D8CC 800F441C 02221021 */ addu $v0, $s1, $v0 +/* 8D8D0 800F4420 AFA80020 */ sw $t0, 0x20($sp) +/* 8D8D4 800F4424 8C630318 */ lw $v1, 0x318($v1) +/* 8D8D8 800F4428 24460010 */ addiu $a2, $v0, 0x10 +/* 8D8DC 800F442C 2C62000E */ sltiu $v0, $v1, 0xE +/* 8D8E0 800F4430 1040004F */ beqz $v0, .LJP_800F4570 +/* 8D8E4 800F4434 00031080 */ sll $v0, $v1, 2 +/* 8D8E8 800F4438 3C018011 */ lui $at, %hi(jtbl_JP_8010C9F8) +/* 8D8EC 800F443C 00220821 */ addu $at, $at, $v0 +/* 8D8F0 800F4440 8C22C9F8 */ lw $v0, %lo(jtbl_JP_8010C9F8)($at) +/* 8D8F4 800F4444 00400008 */ jr $v0 +/* 8D8F8 800F4448 00000000 */ nop +.LJP_800F444C: +/* 8D8FC 800F444C 3C03800A */ lui $v1, %hi(gMainGfxPos) +/* 8D900 800F4450 2463A64C */ addiu $v1, $v1, %lo(gMainGfxPos) +/* 8D904 800F4454 C7A20020 */ lwc1 $f2, 0x20($sp) +/* 8D908 800F4458 468010A0 */ cvt.s.w $f2, $f2 +/* 8D90C 800F445C 44910000 */ mtc1 $s1, $f0 +/* 8D910 800F4460 00000000 */ nop +/* 8D914 800F4464 46800020 */ cvt.s.w $f0, $f0 +/* 8D918 800F4468 3C014080 */ lui $at, (0x40800000 >> 16) +/* 8D91C 800F446C 44812000 */ mtc1 $at, $f4 +/* 8D920 800F4470 8C620000 */ lw $v0, 0x0($v1) +/* 8D924 800F4474 46041082 */ mul.s $f2, $f2, $f4 +/* 8D928 800F4478 00000000 */ nop +/* 8D92C 800F447C 0040282D */ daddu $a1, $v0, $zero +/* 8D930 800F4480 24420008 */ addiu $v0, $v0, 0x8 +/* 8D934 800F4484 AC620000 */ sw $v0, 0x0($v1) +/* 8D938 800F4488 8FA90020 */ lw $t1, 0x20($sp) +/* 8D93C 800F448C 46040002 */ mul.s $f0, $f0, $f4 +/* 8D940 800F4490 00000000 */ nop +/* 8D944 800F4494 0803D13A */ j .LJP_800F44E8 +/* 8D948 800F4498 25220070 */ addiu $v0, $t1, 0x70 +.LJP_800F449C: +/* 8D94C 800F449C 3C03800A */ lui $v1, %hi(gMainGfxPos) +/* 8D950 800F44A0 2463A64C */ addiu $v1, $v1, %lo(gMainGfxPos) +/* 8D954 800F44A4 C7A20020 */ lwc1 $f2, 0x20($sp) +/* 8D958 800F44A8 468010A0 */ cvt.s.w $f2, $f2 +/* 8D95C 800F44AC 44910000 */ mtc1 $s1, $f0 +/* 8D960 800F44B0 00000000 */ nop +/* 8D964 800F44B4 46800020 */ cvt.s.w $f0, $f0 +/* 8D968 800F44B8 3C014080 */ lui $at, (0x40800000 >> 16) +/* 8D96C 800F44BC 44812000 */ mtc1 $at, $f4 +/* 8D970 800F44C0 8C620000 */ lw $v0, 0x0($v1) +/* 8D974 800F44C4 46041082 */ mul.s $f2, $f2, $f4 +/* 8D978 800F44C8 00000000 */ nop +/* 8D97C 800F44CC 0040282D */ daddu $a1, $v0, $zero +/* 8D980 800F44D0 24420008 */ addiu $v0, $v0, 0x8 +/* 8D984 800F44D4 AC620000 */ sw $v0, 0x0($v1) +/* 8D988 800F44D8 8FA90020 */ lw $t1, 0x20($sp) +/* 8D98C 800F44DC 46040002 */ mul.s $f0, $f0, $f4 +/* 8D990 800F44E0 00000000 */ nop +/* 8D994 800F44E4 25220050 */ addiu $v0, $t1, 0x50 +.LJP_800F44E8: +/* 8D998 800F44E8 4600118D */ trunc.w.s $f6, $f2 +/* 8D99C 800F44EC 44033000 */ mfc1 $v1, $f6 +/* 8D9A0 800F44F0 00000000 */ nop +/* 8D9A4 800F44F4 30630FFF */ andi $v1, $v1, 0xFFF +/* 8D9A8 800F44F8 00031B00 */ sll $v1, $v1, 12 +/* 8D9AC 800F44FC 4600018D */ trunc.w.s $f6, $f0 +/* 8D9B0 800F4500 44043000 */ mfc1 $a0, $f6 +/* 8D9B4 800F4504 00000000 */ nop +/* 8D9B8 800F4508 30840FFF */ andi $a0, $a0, 0xFFF +/* 8D9BC 800F450C 44821000 */ mtc1 $v0, $f2 +/* 8D9C0 800F4510 00000000 */ nop +/* 8D9C4 800F4514 468010A0 */ cvt.s.w $f2, $f2 +/* 8D9C8 800F4518 46041082 */ mul.s $f2, $f2, $f4 +/* 8D9CC 800F451C 00000000 */ nop +/* 8D9D0 800F4520 3C02ED00 */ lui $v0, (0xED000000 >> 16) +/* 8D9D4 800F4524 00822025 */ or $a0, $a0, $v0 +/* 8D9D8 800F4528 00641825 */ or $v1, $v1, $a0 +/* 8D9DC 800F452C 44860000 */ mtc1 $a2, $f0 +/* 8D9E0 800F4530 00000000 */ nop +/* 8D9E4 800F4534 46800020 */ cvt.s.w $f0, $f0 +/* 8D9E8 800F4538 46040002 */ mul.s $f0, $f0, $f4 +/* 8D9EC 800F453C 00000000 */ nop +/* 8D9F0 800F4540 ACA30000 */ sw $v1, 0x0($a1) +/* 8D9F4 800F4544 4600118D */ trunc.w.s $f6, $f2 +/* 8D9F8 800F4548 44023000 */ mfc1 $v0, $f6 +/* 8D9FC 800F454C 00000000 */ nop +/* 8DA00 800F4550 30420FFF */ andi $v0, $v0, 0xFFF +/* 8DA04 800F4554 00021300 */ sll $v0, $v0, 12 +/* 8DA08 800F4558 4600018D */ trunc.w.s $f6, $f0 +/* 8DA0C 800F455C 44033000 */ mfc1 $v1, $f6 +/* 8DA10 800F4560 00000000 */ nop +/* 8DA14 800F4564 30630FFF */ andi $v1, $v1, 0xFFF +/* 8DA18 800F4568 00431025 */ or $v0, $v0, $v1 +/* 8DA1C 800F456C ACA20004 */ sw $v0, 0x4($a1) +.LJP_800F4570: +/* 8DA20 800F4570 3C028011 */ lui $v0, %hi(gPopupMenu) +/* 8DA24 800F4574 8C42D85C */ lw $v0, %lo(gPopupMenu)($v0) +/* 8DA28 800F4578 8C420318 */ lw $v0, 0x318($v0) +/* 8DA2C 800F457C 2443FFFF */ addiu $v1, $v0, -0x1 +/* 8DA30 800F4580 2C62000D */ sltiu $v0, $v1, 0xD +/* 8DA34 800F4584 1040000F */ beqz $v0, .LJP_800F45C4 +/* 8DA38 800F4588 00031080 */ sll $v0, $v1, 2 +/* 8DA3C 800F458C 3C018011 */ lui $at, %hi(jtbl_JP_8010CA30) +/* 8DA40 800F4590 00220821 */ addu $at, $at, $v0 +/* 8DA44 800F4594 8C22CA30 */ lw $v0, %lo(jtbl_JP_8010CA30)($at) +/* 8DA48 800F4598 00400008 */ jr $v0 +/* 8DA4C 800F459C 00000000 */ nop +.LJP_800F45A0: +/* 8DA50 800F45A0 0803D17A */ j .LJP_800F45E8 +/* 8DA54 800F45A4 2409001F */ addiu $t1, $zero, 0x1F +.LJP_800F45A8: +/* 8DA58 800F45A8 24080020 */ addiu $t0, $zero, 0x20 +/* 8DA5C 800F45AC 0803D17B */ j .LJP_800F45EC +/* 8DA60 800F45B0 AFA80024 */ sw $t0, 0x24($sp) +.LJP_800F45B4: +/* 8DA64 800F45B4 0803D17A */ j .LJP_800F45E8 +/* 8DA68 800F45B8 2409001F */ addiu $t1, $zero, 0x1F +.LJP_800F45BC: +/* 8DA6C 800F45BC 0803D17A */ j .LJP_800F45E8 +/* 8DA70 800F45C0 2409001F */ addiu $t1, $zero, 0x1F +.LJP_800F45C4: +/* 8DA74 800F45C4 2408001F */ addiu $t0, $zero, 0x1F +/* 8DA78 800F45C8 0803D17B */ j .LJP_800F45EC +/* 8DA7C 800F45CC AFA80024 */ sw $t0, 0x24($sp) +.LJP_800F45D0: +/* 8DA80 800F45D0 0803D17A */ j .LJP_800F45E8 +/* 8DA84 800F45D4 2409000D */ addiu $t1, $zero, 0xD +.LJP_800F45D8: +/* 8DA88 800F45D8 24080015 */ addiu $t0, $zero, 0x15 +/* 8DA8C 800F45DC 0803D17B */ j .LJP_800F45EC +/* 8DA90 800F45E0 AFA80024 */ sw $t0, 0x24($sp) +.LJP_800F45E4: +/* 8DA94 800F45E4 2409000E */ addiu $t1, $zero, 0xE +.LJP_800F45E8: +/* 8DA98 800F45E8 AFA90024 */ sw $t1, 0x24($sp) +.LJP_800F45EC: +/* 8DA9C 800F45EC 3C028011 */ lui $v0, %hi(PopupMenu_FirstDisplayIndex) +/* 8DAA0 800F45F0 8042D814 */ lb $v0, %lo(PopupMenu_FirstDisplayIndex)($v0) +/* 8DAA4 800F45F4 18400012 */ blez $v0, .LJP_800F4640 +/* 8DAA8 800F45F8 00000000 */ nop +/* 8DAAC 800F45FC 8FA8005C */ lw $t0, 0x5C($sp) +/* 8DAB0 800F4600 8FA90024 */ lw $t1, 0x24($sp) +/* 8DAB4 800F4604 3C108011 */ lui $s0, %hi(PopupMenu_UpArrowHEID) +/* 8DAB8 800F4608 8E10D830 */ lw $s0, %lo(PopupMenu_UpArrowHEID)($s0) +/* 8DABC 800F460C 01094021 */ addu $t0, $t0, $t1 +/* 8DAC0 800F4610 AFA80020 */ sw $t0, 0x20($sp) +/* 8DAC4 800F4614 25050023 */ addiu $a1, $t0, 0x23 +/* 8DAC8 800F4618 8FA80060 */ lw $t0, 0x60($sp) +/* 8DACC 800F461C 0200202D */ daddu $a0, $s0, $zero +/* 8DAD0 800F4620 0C05268D */ jal hud_element_set_render_pos +/* 8DAD4 800F4624 2506FFFF */ addiu $a2, $t0, -0x1 +/* 8DAD8 800F4628 3C058011 */ lui $a1, %hi(PopupMenu_Alpha) +/* 8DADC 800F462C 8CA5D810 */ lw $a1, %lo(PopupMenu_Alpha)($a1) +/* 8DAE0 800F4630 0C0527D8 */ jal hud_element_set_alpha +/* 8DAE4 800F4634 0200202D */ daddu $a0, $s0, $zero +/* 8DAE8 800F4638 0C052624 */ jal hud_element_draw_without_clipping +/* 8DAEC 800F463C 0200202D */ daddu $a0, $s0, $zero +.LJP_800F4640: +/* 8DAF0 800F4640 3C028011 */ lui $v0, %hi(gPopupMenu) +/* 8DAF4 800F4644 8C42D85C */ lw $v0, %lo(gPopupMenu)($v0) +/* 8DAF8 800F4648 3C038011 */ lui $v1, %hi(PopupMenu_LastDisplayIndex) +/* 8DAFC 800F464C 8063D815 */ lb $v1, %lo(PopupMenu_LastDisplayIndex)($v1) +/* 8DB00 800F4650 8C420324 */ lw $v0, 0x324($v0) +/* 8DB04 800F4654 0062182A */ slt $v1, $v1, $v0 +/* 8DB08 800F4658 10600019 */ beqz $v1, .LJP_800F46C0 +/* 8DB0C 800F465C 00000000 */ nop +/* 8DB10 800F4660 8FA9005C */ lw $t1, 0x5C($sp) +/* 8DB14 800F4664 8FA80024 */ lw $t0, 0x24($sp) +/* 8DB18 800F4668 3C038011 */ lui $v1, %hi(PopupMenu_MaxDisplayableEntryCount) +/* 8DB1C 800F466C 8063D84F */ lb $v1, %lo(PopupMenu_MaxDisplayableEntryCount)($v1) +/* 8DB20 800F4670 3C108011 */ lui $s0, %hi(PopupMenu_DownArrowHEID) +/* 8DB24 800F4674 8E10D834 */ lw $s0, %lo(PopupMenu_DownArrowHEID)($s0) +/* 8DB28 800F4678 01284821 */ addu $t1, $t1, $t0 +/* 8DB2C 800F467C AFA90020 */ sw $t1, 0x20($sp) +/* 8DB30 800F4680 25250023 */ addiu $a1, $t1, 0x23 +/* 8DB34 800F4684 00031040 */ sll $v0, $v1, 1 +/* 8DB38 800F4688 00431021 */ addu $v0, $v0, $v1 +/* 8DB3C 800F468C 00021080 */ sll $v0, $v0, 2 +/* 8DB40 800F4690 00431021 */ addu $v0, $v0, $v1 +/* 8DB44 800F4694 8FA90060 */ lw $t1, 0x60($sp) +/* 8DB48 800F4698 0200202D */ daddu $a0, $s0, $zero +/* 8DB4C 800F469C 01228821 */ addu $s1, $t1, $v0 +/* 8DB50 800F46A0 0C05268D */ jal hud_element_set_render_pos +/* 8DB54 800F46A4 26260005 */ addiu $a2, $s1, 0x5 +/* 8DB58 800F46A8 3C058011 */ lui $a1, %hi(PopupMenu_Alpha) +/* 8DB5C 800F46AC 8CA5D810 */ lw $a1, %lo(PopupMenu_Alpha)($a1) +/* 8DB60 800F46B0 0C0527D8 */ jal hud_element_set_alpha +/* 8DB64 800F46B4 0200202D */ daddu $a0, $s0, $zero +/* 8DB68 800F46B8 0C052624 */ jal hud_element_draw_without_clipping +/* 8DB6C 800F46BC 0200202D */ daddu $a0, $s0, $zero +.LJP_800F46C0: +/* 8DB70 800F46C0 8FBF0054 */ lw $ra, 0x54($sp) +/* 8DB74 800F46C4 8FBE0050 */ lw $fp, 0x50($sp) +/* 8DB78 800F46C8 8FB7004C */ lw $s7, 0x4C($sp) +/* 8DB7C 800F46CC 8FB60048 */ lw $s6, 0x48($sp) +/* 8DB80 800F46D0 8FB50044 */ lw $s5, 0x44($sp) +/* 8DB84 800F46D4 8FB40040 */ lw $s4, 0x40($sp) +/* 8DB88 800F46D8 8FB3003C */ lw $s3, 0x3C($sp) +/* 8DB8C 800F46DC 8FB20038 */ lw $s2, 0x38($sp) +/* 8DB90 800F46E0 8FB10034 */ lw $s1, 0x34($sp) +/* 8DB94 800F46E4 8FB00030 */ lw $s0, 0x30($sp) +/* 8DB98 800F46E8 03E00008 */ jr $ra +/* 8DB9C 800F46EC 27BD0058 */ addiu $sp, $sp, 0x58 +.size popup_menu_draw_menu_contents, . - popup_menu_draw_menu_contents diff --git a/ver/jp/splat.yaml b/ver/jp/splat.yaml index a8e6165c57c..c1ddd6013ac 100644 --- a/ver/jp/splat.yaml +++ b/ver/jp/splat.yaml @@ -410,23 +410,428 @@ segments: - [auto, c, world/partners] - [auto, hasm, bss2_2] - [auto, c, 891b0_len_fb0] - - [0x8A0F0, bin] - - [0x91170, .data, npc_collision] + - [auto, c, 8a160_len_700] + - [auto, c, 8a860_len_3f30] + - [auto, c, draw_box] + - [auto, .data, npc_collision] - [auto, .data, world/actions] - [auto, .data, world/partners] - - [0x91B40, bin] - - [0xA2AC0, .data, 891b0_len_fb0] - - [0xA2AF0, bin] - - [0xA5250, .rodata, 77480] - - [auto, .rodata, 7B440] - - [auto, .rodata, 7BB60] - - [auto, .rodata, 7E9D0] - - [auto, .rodata, world/menus] - - [auto, .rodata, inventory] - - [auto, .rodata, world/partners] - - [auto, .rodata, 891b0_len_fb0] - - [0xA5910, bin, A5910] - - [0xA5F90] + - start: 0x91B40 + type: .data + name: global_hud_scripts + subsegments: + - [auto, ci4, ui/input/a_button_unpressed, 48, 40] + - [auto, palette, ui/input/a_button_unpressed] + - [auto, ci4, ui/input/a_button_pressed, 48, 40] + - [auto, palette, ui/input/a_button_pressed] + - [auto, ci4, ui/input/analog_stick, 32, 32] + - [auto, palette, ui/input/analog_stick] + - [auto, ci4, ui/input/analog_stick_left, 40, 32] + - [auto, palette, ui/input/analog_stick_left] + - [auto, ci4, ui/input/analog_stick2, 32, 32] + - [auto, palette, ui/input/analog_stick2] + - [auto, ci4, ui/input/analog_stick_right, 40, 32] + - [auto, palette, ui/input/analog_stick_right] + - [auto, ci4, ui/input/analog_stick3, 32, 32] + - [auto, palette, ui/input/analog_stick3] + - [auto, ci4, ui/input/analog_stick_down, 32, 32] + - [auto, palette, ui/input/analog_stick_down] + - [auto, ci4, ui/input/analog_stick_up, 32, 32] + - [auto, palette, ui/input/analog_stick_up] + - [auto, ci4, ui/unk_bar, 72, 16] + - [auto, palette, ui/unk_bar] + - [auto, ci4, ui/ok, 24, 16] + - [auto, palette, ui/ok] + - [auto, ci4, ui/input/start_button, 48, 40] + - [auto, palette, ui/input/start_button] + - [auto, ci4, ui/input/start_button2, 48, 40] + - [auto, palette, ui/input/start_button2] + - [auto, ci4, ui/input/start_text, 24, 8] + - [auto, palette, ui/input/start_text] + - [auto, ci4, ui/hammer, 32, 32] + - [auto, palette, ui/hammer] + - [auto, palette, ui/hammer.disabled] + - [auto, ci4, ui/super_hammer, 32, 32] + - [auto, palette, ui/super_hammer] + - [auto, palette, ui/super_hammer.disabled] + - [auto, ci4, ui/ultra_hammer, 32, 32] + - [auto, palette, ui/ultra_hammer] + - [auto, palette, ui/ultra_hammer.disabled] + - [auto, ci4, ui/boots, 32, 32] + - [auto, palette, ui/boots] + - [auto, palette, ui/boots.disabled] + - [auto, ci4, ui/super_boots, 32, 32] + - [auto, palette, ui/super_boots] + - [auto, palette, ui/super_boots.disabled] + - [auto, ci4, ui/ultra_boots, 32, 32] + - [auto, palette, ui/ultra_boots] + - [auto, palette, ui/ultra_boots.disabled] + - [auto, ci4, ui/item, 32, 32] + - [auto, palette, ui/item] + - [auto, palette, ui/item.disabled] + - [auto, ci4, ui/star_spirit, 32, 32] + - [auto, palette, ui/star_spirit] + - [auto, palette, ui/star_spirit.disabled] + - [auto, ci4, ui/arrow_left, 16, 16] + - [auto, palette, ui/arrow_left] + - [auto, ci4, ui/arrow_right, 16, 16] + - [auto, palette, ui/arrow_right] + - [auto, ci4, ui/point_right, 16, 16] + - [auto, palette, ui/point_right] + - [auto, ci4, ui/pip, 8, 8] + - [auto, palette, ui/pip] + - [auto, ci4, ui/pip2, 8, 8] + - [auto, palette, ui/pip2] + - [auto, ci4, ui/coin_sparkle_0, 8, 8] + - [auto, palette, ui/coin_sparkle_0] + - [auto, ci4, ui/coin_sparkle_1, 8, 8] + - [auto, palette, ui/coin_sparkle_1] + - [auto, ci4, ui/coin_sparkle_2, 8, 8] + - [auto, palette, ui/coin_sparkle_2] + - [auto, ci4, ui/coin_sparkle_3, 8, 8] + - [auto, palette, ui/coin_sparkle_3] + - [auto, ci4, ui/coin_sparkle_4, 8, 8] + - [auto, palette, ui/coin_sparkle_4] + - [auto, ci4, ui/coin_sparkle_5, 8, 8] + - [auto, palette, ui/coin_sparkle_5] + - [auto, ci4, ui/coin_sparkle_none, 8, 8] + - [auto, palette, ui/coin_sparkle_none] + - [auto, ia8, ui/status/star_point_shine, 24, 24] + - [auto, ci4, ui/status/star_piece_0, 16, 16] + - [auto, palette, ui/status/star_piece_0] + - [auto, ci4, ui/status/star_piece_1, 16, 16] + - [auto, palette, ui/status/star_piece_1] + - [auto, ci4, ui/status/star_piece_2, 16, 16] + - [auto, palette, ui/status/star_piece_2] + - [auto, ci4, ui/menu_times, 8, 8] + - [auto, palette, ui/menu_times] + - [auto, ci4, ui/fp_cost, 16, 8] + - [auto, palette, ui/fp_cost] + - [auto, palette, ui/fp_cost.reduced] + - [auto, palette, ui/fp_cost.reduced_twice] + - [auto, palette, ui/fp_cost.notenough] + - [auto, ci4, ui/pow_cost, 16, 8] + - [auto, palette, ui/pow_cost] + - [auto, palette, ui/pow_cost.reduced] + - [auto, palette, ui/pow_cost.reduced_twice] + - [auto, palette, ui/pow_cost.notenough] + - [auto, ci4, ui/green_arrow_down, 16, 8] + - [auto, palette, ui/green_arrow_down] + - [auto, ci4, ui/green_arrow_up, 16, 8] + - [auto, palette, ui/green_arrow_up] + - [auto, ci4, ui/kaime, 56, 24] + - [auto, palette, ui/kaime] + - [auto, ci4, ui/unused_1, 16, 16] + - [auto, palette, ui/unused_1] + - [auto, ci4, ui/unused_2, 16, 16] + - [auto, palette, ui/unused_2] + - [auto, ci4, ui/unused_3, 16, 16] + - [auto, palette, ui/unused_3] + - [auto, ci4, ui/red_bar1, 112, 8] + - [auto, palette, ui/red_bar1] + - [auto, ci4, ui/empty_bar, 112, 8] + - [auto, palette, ui/empty_bar] + - [auto, ci4, ui/red_bar2, 104, 8] + - [auto, palette, ui/red_bar2] + - [auto, ci4, ui/eldstar, 32, 32] + - [auto, palette, ui/eldstar] + - [auto, palette, ui/eldstar.disabled] + - [auto, ci4, ui/mamar, 32, 32] + - [auto, palette, ui/mamar] + - [auto, palette, ui/mamar.disabled] + - [auto, ci4, ui/skolar, 32, 32] + - [auto, palette, ui/skolar] + - [auto, palette, ui/skolar.disabled] + - [auto, ci4, ui/muskular, 32, 32] + - [auto, palette, ui/muskular] + - [auto, palette, ui/muskular.disabled] + - [auto, ci4, ui/misstar, 32, 32] + - [auto, palette, ui/misstar] + - [auto, palette, ui/misstar.disabled] + - [auto, ci4, ui/klevar, 32, 32] + - [auto, palette, ui/klevar] + - [auto, palette, ui/klevar.disabled] + - [auto, ci4, ui/kalmar, 32, 32] + - [auto, palette, ui/kalmar] + - [auto, palette, ui/kalmar.disabled] + - [auto, ci4, ui/star_beam, 32, 32] + - [auto, palette, ui/star_beam] + - [auto, palette, ui/star_beam.disabled] + - [auto, ci4, ui/peach_beam, 32, 32] + - [auto, palette, ui/peach_beam] + - [auto, palette, ui/peach_beam.disabled] + - [auto, ci4, ui/mario_head, 16, 16] + - [auto, palette, ui/mario_head] + - [auto, ci4, ui/partner0, 32, 32] + - [auto, palette, ui/partner0] + - [auto, palette, ui/partner0.disabled] + - [auto, ci4, ui/goombario, 32, 32] + - [auto, palette, ui/goombario] + - [auto, palette, ui/goombario.disabled] + - [auto, ci4, ui/kooper, 32, 32] + - [auto, palette, ui/kooper] + - [auto, palette, ui/kooper.disabled] + - [auto, ci4, ui/bombette, 32, 32] + - [auto, palette, ui/bombette] + - [auto, palette, ui/bombette.disabled] + - [auto, ci4, ui/parakarry, 32, 32] + - [auto, palette, ui/parakarry] + - [auto, palette, ui/parakarry.disabled] + - [auto, ci4, ui/bow, 32, 32] + - [auto, palette, ui/bow] + - [auto, palette, ui/bow.disabled] + - [auto, ci4, ui/watt, 32, 32] + - [auto, palette, ui/watt] + - [auto, palette, ui/watt.disabled] + - [auto, ci4, ui/sushie, 32, 32] + - [auto, palette, ui/sushie] + - [auto, palette, ui/sushie.disabled] + - [auto, ci4, ui/lakilester, 32, 32] + - [auto, palette, ui/lakilester] + - [auto, palette, ui/lakilester.disabled] + - [auto, ci4, ui/partner9, 32, 32] + - [auto, palette, ui/partner9] + - [auto, palette, ui/partner9.disabled] + - [auto, ci4, ui/partner10, 32, 32] + - [auto, palette, ui/partner10] + - [auto, palette, ui/partner10.disabled] + - [auto, ci4, ui/partner11, 32, 32] + - [auto, palette, ui/partner11] + - [auto, palette, ui/partner11.disabled] + - [auto, ci4, ui/status/text_times, 8, 8] + - [auto, palette, ui/status/text_times] + - [auto, ci4, ui/status/text_slash, 8, 16] + - [auto, palette, ui/status/text_slash] + - [auto, ci4, ui/status/text_0, 16, 16] + - [auto, palette, ui/status/text_0] + - [auto, ci4, ui/status/text_1, 16, 16] + - [auto, palette, ui/status/text_1] + - [auto, ci4, ui/status/text_2, 16, 16] + - [auto, palette, ui/status/text_2] + - [auto, ci4, ui/status/text_3, 16, 16] + - [auto, palette, ui/status/text_3] + - [auto, ci4, ui/status/text_4, 16, 16] + - [auto, palette, ui/status/text_4] + - [auto, ci4, ui/status/text_5, 16, 16] + - [auto, palette, ui/status/text_5] + - [auto, ci4, ui/status/text_6, 16, 16] + - [auto, palette, ui/status/text_6] + - [auto, ci4, ui/status/text_7, 16, 16] + - [auto, palette, ui/status/text_7] + - [auto, ci4, ui/status/text_8, 16, 16] + - [auto, palette, ui/status/text_8] + - [auto, ci4, ui/status/text_9, 16, 16] + - [auto, palette, ui/status/text_9] + - [auto, ci4, ui/status/text_hp, 16, 16] + - [auto, palette, ui/status/text_hp] + - [auto, ci4, ui/status/text_fp, 16, 16] + - [auto, palette, ui/status/text_fp] + - [auto, ci4, ui/status/pow_unit_1, 8, 8] + - [auto, palette, ui/status/pow_unit_1] + - [auto, ci4, ui/status/pow_unit_2, 8, 8] + - [auto, palette, ui/status/pow_unit_2] + - [auto, ci4, ui/status/pow_unit_3, 8, 8] + - [auto, palette, ui/status/pow_unit_3] + - [auto, ci4, ui/status/pow_unit_4, 8, 8] + - [auto, palette, ui/status/pow_unit_4] + - [auto, ci4, ui/status/pow_unit_5, 8, 8] + - [auto, palette, ui/status/pow_unit_5] + - [auto, ci4, ui/status/pow_unit_6, 8, 8] + - [auto, palette, ui/status/pow_unit_6] + - [auto, ci4, ui/status/pow_unit_7, 8, 8] + - [auto, palette, ui/status/pow_unit_7] + - [auto, ci4, ui/status/pow_unit_empty, 8, 8] + - [auto, palette, ui/status/pow_unit_empty] + - [auto, ci4, ui/status/pow_star_1, 8, 8] + - [auto, palette, ui/status/pow_star_1] + - [auto, ci4, ui/status/pow_star_2, 8, 8] + - [auto, palette, ui/status/pow_star_2] + - [auto, ci4, ui/status/pow_star_3, 8, 8] + - [auto, palette, ui/status/pow_star_3] + - [auto, ci4, ui/status/pow_star_4, 8, 8] + - [auto, palette, ui/status/pow_star_4] + - [auto, ci4, ui/status/pow_star_5, 8, 8] + - [auto, palette, ui/status/pow_star_5] + - [auto, ci4, ui/status/pow_star_6, 8, 8] + - [auto, palette, ui/status/pow_star_6] + - [auto, ci4, ui/status/pow_star_7, 8, 8] + - [auto, palette, ui/status/pow_star_7] + - [auto, ci4, ui/status/pow_star_empty, 8, 8] + - [auto, palette, ui/status/pow_star_empty] + - [auto, ci4, ui/status/coin_0, 16, 16] + - [auto, palette, ui/status/coin_0] + - [auto, ci4, ui/status/coin_1, 16, 16] + - [auto, palette, ui/status/coin_1] + - [auto, ci4, ui/status/coin_2, 16, 16] + - [auto, palette, ui/status/coin_2] + - [auto, ci4, ui/status/coin_3, 16, 16] + - [auto, palette, ui/status/coin_3] + - [auto, ci4, ui/status/coin_4, 16, 16] + - [auto, palette, ui/status/coin_4] + - [auto, ci4, ui/status/coin_5, 16, 16] + - [auto, palette, ui/status/coin_5] + - [auto, ci4, ui/status/coin_6, 16, 16] + - [auto, palette, ui/status/coin_6] + - [auto, ci4, ui/status/coin_7, 16, 16] + - [auto, palette, ui/status/coin_7] + - [auto, ci4, ui/status/coin_8, 16, 16] + - [auto, palette, ui/status/coin_8] + - [auto, ci4, ui/status/coin_9, 16, 16] + - [auto, palette, ui/status/coin_9] + - [auto, ci4, ui/status/star_point_0, 16, 16] + - [auto, palette, ui/status/star_point_0] + - [auto, ci4, ui/status/star_point_1, 16, 16] + - [auto, palette, ui/status/star_point_1] + - [auto, ci4, ui/status/star_point_2, 16, 16] + - [auto, palette, ui/status/star_point_2] + - [auto, ci4, ui/status/star_point_3, 16, 16] + - [auto, palette, ui/status/star_point_3] + - [auto, ci4, ui/status/star_point_4, 16, 16] + - [auto, palette, ui/status/star_point_4] + - [auto, ci4, ui/status/star_point_5, 16, 16] + - [auto, palette, ui/status/star_point_5] + - [auto, ci4, ui/status/star_point_6, 16, 16] + - [auto, palette, ui/status/star_point_6] + - [auto, ci4, ui/status/star_point_7, 16, 16] + - [auto, palette, ui/status/star_point_7] + - [auto, ci4, ui/bluepip, 16, 16] + - [auto, palette, ui/bluepip] + - [auto, ci4, ui/bluepip2, 16, 16] + - [auto, palette, ui/bluepip2] + - [auto, ci4, ui/battle/status/charge_jump, 24, 24] + - [auto, palette, ui/battle/status/charge_jump] + - [auto, ci4, ui/battle/status/charge_hammer, 24, 24] + - [auto, palette, ui/battle/status/charge_hammer] + - [auto, ci4, ui/battle/status/charge_goombario, 24, 24] + - [auto, palette, ui/battle/status/charge_goombario] + - [auto, ci4, ui/battle/status/exclamation, 24, 24] + - [auto, palette, ui/battle/status/exclamation] + - [auto, ci4, ui/battle/status/sleep_0, 16, 16] + - [auto, palette, ui/battle/status/sleep_0] + - [auto, ci4, ui/battle/status/sleep_1, 16, 16] + - [auto, palette, ui/battle/status/sleep_1] + - [auto, ci4, ui/battle/status/sleep_2, 16, 16] + - [auto, palette, ui/battle/status/sleep_2] + - [auto, ci4, ui/battle/status/static_0, 16, 16] + - [auto, palette, ui/battle/status/static_0] + - [auto, ci4, ui/battle/status/static_1, 16, 16] + - [auto, palette, ui/battle/status/static_1] + - [auto, ci4, ui/battle/status/paralyze_0, 16, 16] + - [auto, palette, ui/battle/status/paralyze_0] + - [auto, ci4, ui/battle/status/paralyze_1, 16, 16] + - [auto, palette, ui/battle/status/paralyze_1] + - [auto, ci4, ui/battle/status/dizzy_0, 16, 16] + - [auto, palette, ui/battle/status/dizzy_0] + - [auto, ci4, ui/battle/status/dizzy_1, 16, 16] + - [auto, palette, ui/battle/status/dizzy_1] + - [auto, ci4, ui/battle/status/dizzy_2, 16, 16] + - [auto, palette, ui/battle/status/dizzy_2] + - [auto, ci4, ui/battle/status/dizzy_3, 16, 16] + - [auto, palette, ui/battle/status/dizzy_3] + - [auto, ci4, ui/battle/status/poison_0, 16, 16] + - [auto, palette, ui/battle/status/poison_0] + - [auto, ci4, ui/battle/status/poison_1, 16, 16] + - [auto, palette, ui/battle/status/poison_1] + - [auto, ci4, ui/battle/status/frozen_0, 16, 16] + - [auto, palette, ui/battle/status/frozen_0] + - [auto, ci4, ui/battle/status/frozen_1, 16, 16] + - [auto, palette, ui/battle/status/frozen_1] + - [auto, ci4, ui/battle/status/frozen_2, 16, 16] + - [auto, palette, ui/battle/status/frozen_2] + - [auto, ci4, ui/battle/status/frozen_3, 16, 16] + - [auto, palette, ui/battle/status/frozen_3] + - [auto, ci4, ui/battle/status/stop_0, 16, 16] + - [auto, palette, ui/battle/status/stop_0] + - [auto, ci4, ui/battle/status/stop_1, 16, 16] + - [auto, palette, ui/battle/status/stop_1] + - [auto, ci4, ui/battle/status/stop_2, 16, 16] + - [auto, palette, ui/battle/status/stop_2] + - [auto, ci4, ui/battle/status/stop_3, 16, 16] + - [auto, palette, ui/battle/status/stop_3] + - [auto, ci4, ui/battle/status/pdown_0, 16, 16] + - [auto, palette, ui/battle/status/pdown_0] + - [auto, ci4, ui/battle/status/pdown_1, 16, 16] + - [auto, palette, ui/battle/status/pdown_1] + - [auto, ci4, ui/battle/status/shrink_0, 16, 16] + - [auto, palette, ui/battle/status/shrink_0] + - [auto, ci4, ui/battle/status/shrink_1, 16, 16] + - [auto, palette, ui/battle/status/shrink_1] + - [auto, ci4, ui/battle/status/shrink_2, 16, 16] + - [auto, palette, ui/battle/status/shrink_2] + - [auto, ci4, ui/battle/status/shrink_3, 16, 16] + - [auto, palette, ui/battle/status/shrink_3] + - [auto, ci4, ui/battle/status/transparent_0, 16, 16] + - [auto, palette, ui/battle/status/transparent_0] + - [auto, ci4, ui/battle/status/transparent_1, 16, 16] + - [auto, palette, ui/battle/status/transparent_1] + - [auto, ci4, ui/battle/status/transparent_2, 16, 16] + - [auto, palette, ui/battle/status/transparent_2] + - [auto, ci4, ui/battle/status/transparent_3, 16, 16] + - [auto, palette, ui/battle/status/transparent_3] + - [auto, ci4, ui/battle/status/transparent_4, 16, 16] + - [auto, palette, ui/battle/status/transparent_4] + - [auto, ci4, ui/battle/status/transparent_5, 16, 16] + - [auto, palette, ui/battle/status/transparent_5] + - [auto, ci4, ui/battle/status/peril, 40, 16] + - [auto, palette, ui/battle/status/peril] + - [auto, ci4, ui/battle/status/danger, 40, 16] + - [auto, palette, ui/battle/status/danger] + - [auto, ci4, ui/battle/status/refund, 40, 24] + - [auto, palette, ui/battle/status/refund] + - [auto, ci4, ui/battle/status/happy, 40, 16] + - [auto, palette, ui/battle/status/happy] + - [auto, ci4, ui/battle/status/hp_drain, 40, 16] + - [auto, palette, ui/battle/status/hp_drain] + - [auto, ci4, ui/move_basic, 32, 32] + - [auto, palette, ui/move_basic] + - [auto, palette, ui/move_basic.disabled] + - [auto, ci4, ui/move_partner_1, 32, 32] + - [auto, palette, ui/move_partner_1] + - [auto, palette, ui/move_partner_1.disabled] + - [auto, ci4, ui/move_partner_2, 32, 32] + - [auto, palette, ui/move_partner_2] + - [auto, palette, ui/move_partner_2.disabled] + - [auto, ci4, ui/move_partner_3, 32, 32] + - [auto, palette, ui/move_partner_3] + - [auto, palette, ui/move_partner_3.disabled] + - [0x9D7E0] + - [0x9D7E8, rgba32, ui/stat_heart, 16, 16] + - [0x9DBE8] + - [0x9DBF0, rgba32, ui/stat_flower, 16, 16] + - [0x9DFF0] + - [auto, .data, 891b0_len_fb0] + - [auto, .data, 8a160_len_700] + - start: 0xA2AF0 + type: .data + name: 8a160_len_700 + subsegments: + - [0xA2AF0, ia8, A2960, 32, 16] + - [0xA2CF0] # Vp + - [0xA2D00, vtx, A2B70] + - [0xA2D50, gfx, A2BC0] + - [0xA2E18, gfx, A2C88] + - [0xA2E40] + - [auto, .data, 8a860_len_3f30] + - start: 0xA2EE0 + type: .data + name: draw_box + subsegments: + - [0xA2EE0] + - [0xA2FE0, ia8, ui/box/corners9, 16, 64] + - [auto, ia8, ui/box/corners8, 24, 96] + - [auto, ia8, ui/box/corners6, 16, 40] + - [auto, ia8, ui/box/corners7, 16, 32] + - [auto, ia8, ui/box/corners3, 16, 96] + - [auto, ia8, ui/box/corners5, 16, 32] + - [auto, ia8, ui/box/corners4, 8, 32] + - [auto, i4, ui/box/bg_tile, 16, 16] + - [auto, ia8, ui/box/corners1, 16, 64] + - [auto, i4, ui/box/corners2, 16, 64] + - [auto, i4, ui/box/bg_flat, 16, 1] + - [0xA50E8] + - [0xA51C8, vtx, vtx/drawbox1] + - [0xA5208] + - [0xA5250] - name: engine4 dir: engine4 diff --git a/ver/jp/symbol_addrs.txt b/ver/jp/symbol_addrs.txt index 5b84a616253..94ba688180a 100644 --- a/ver/jp/symbol_addrs.txt +++ b/ver/jp/symbol_addrs.txt @@ -323,3 +323,469 @@ evt_get_variable = 0x802C7ABC; heap_generalHead = 0x802FB800; heap_battleHead = 0x803DA800; obfuscated_obfuscation_shims_ROM_START = 0xF79E611F; + +ui_input_a_button_unpressed_png = 0x800F8690; // rom:0x91B40 +ui_input_a_button_unpressed_pal = 0x800F8A50; // rom:0x91F00 +ui_input_a_button_pressed_png = 0x800F8A70; // rom:0x91F20 +ui_input_a_button_pressed_pal = 0x800F8E30; // rom:0x922E0 +ui_input_analog_stick_png = 0x800F8E50; // rom:0x92300 +ui_input_analog_stick_pal = 0x800F9050; // rom:0x92500 +ui_input_analog_stick_left_png = 0x800F9070; // rom:0x92520 +ui_input_analog_stick_left_pal = 0x800F92F0; // rom:0x927A0 +ui_input_analog_stick2_png = 0x800F9310; // rom:0x927C0 +ui_input_analog_stick2_pal = 0x800F9510; // rom:0x929C0 +ui_input_analog_stick_right_png = 0x800F9530; // rom:0x929E0 +ui_input_analog_stick_right_pal = 0x800F97B0; // rom:0x92C60 +ui_input_analog_stick3_png = 0x800F97D0; // rom:0x92C80 +ui_input_analog_stick3_pal = 0x800F99D0; // rom:0x92E80 +ui_input_analog_stick_down_png = 0x800F99F0; // rom:0x92EA0 +ui_input_analog_stick_down_pal = 0x800F9BF0; // rom:0x930A0 +ui_input_analog_stick_up_png = 0x800F9C10; // rom:0x930C0 +ui_input_analog_stick_up_pal = 0x800F9E10; // rom:0x932C0 +ui_unk_bar_png = 0x800F9E30; // rom:0x932E0 +ui_unk_bar_pal = 0x800FA070; // rom:0x93520 +ui_ok_png = 0x800FA090; // rom:0x93540 +ui_ok_pal = 0x800FA150; // rom:0x93600 +ui_input_start_button_png = 0x800FA170; // rom:0x93620 +ui_input_start_button_pal = 0x800FA530; // rom:0x939E0 +ui_input_start_button2_png = 0x800FA550; // rom:0x93A00 +ui_input_start_button2_pal = 0x800FA910; // rom:0x93DC0 +ui_input_start_text_png = 0x800FA930; // rom:0x93DE0 +ui_input_start_text_pal = 0x800FA990; // rom:0x93E40 +ui_hammer_png = 0x800FA9B0; // rom:0x93E60 +ui_hammer_pal = 0x800FABB0; // rom:0x94060 +ui_hammer_disabled_pal = 0x800FABD0; // rom:0x94080 +ui_super_hammer_png = 0x800FABF0; // rom:0x940A0 +ui_super_hammer_pal = 0x800FADF0; // rom:0x942A0 +ui_super_hammer_disabled_pal = 0x800FAE10; // rom:0x942C0 +ui_ultra_hammer_png = 0x800FAE30; // rom:0x942E0 +ui_ultra_hammer_pal = 0x800FB030; // rom:0x944E0 +ui_ultra_hammer_disabled_pal = 0x800FB050; // rom:0x94500 +ui_boots_png = 0x800FB070; // rom:0x94520 +ui_boots_pal = 0x800FB270; // rom:0x94720 +ui_boots_disabled_pal = 0x800FB290; // rom:0x94740 +ui_super_boots_png = 0x800FB2B0; // rom:0x94760 +ui_super_boots_pal = 0x800FB4B0; // rom:0x94960 +ui_super_boots_disabled_pal = 0x800FB4D0; // rom:0x94980 +ui_ultra_boots_png = 0x800FB4F0; // rom:0x949A0 +ui_ultra_boots_pal = 0x800FB6F0; // rom:0x94BA0 +ui_ultra_boots_disabled_pal = 0x800FB710; // rom:0x94BC0 +ui_item_png = 0x800FB730; // rom:0x94BE0 +ui_item_pal = 0x800FB930; // rom:0x94DE0 +ui_item_disabled_pal = 0x800FB950; // rom:0x94E00 +ui_star_spirit_png = 0x800FB970; // rom:0x94E20 +ui_star_spirit_pal = 0x800FBB70; // rom:0x95020 +ui_star_spirit_disabled_pal = 0x800FBB90; // rom:0x95040 +ui_arrow_left_png = 0x800FBBB0; // rom:0x95060 +ui_arrow_left_pal = 0x800FBC30; // rom:0x950E0 +ui_arrow_right_png = 0x800FBC50; // rom:0x95100 +ui_arrow_right_pal = 0x800FBCD0; // rom:0x95180 +ui_point_right_png = 0x800FBCF0; // rom:0x951A0 +ui_point_right_pal = 0x800FBD70; // rom:0x95220 +ui_pip_png = 0x800FBD90; // rom:0x95240 +ui_pip_pal = 0x800FBDB0; // rom:0x95260 +ui_pip2_png = 0x800FBDD0; // rom:0x95280 +ui_pip2_pal = 0x800FBDF0; // rom:0x952A0 +ui_coin_sparkle_0_png = 0x800FBE10; // rom:0x952C0 +ui_coin_sparkle_0_pal = 0x800FBE30; // rom:0x952E0 +ui_coin_sparkle_1_png = 0x800FBE50; // rom:0x95300 +ui_coin_sparkle_1_pal = 0x800FBE70; // rom:0x95320 +ui_coin_sparkle_2_png = 0x800FBE90; // rom:0x95340 +ui_coin_sparkle_2_pal = 0x800FBEB0; // rom:0x95360 +ui_coin_sparkle_3_png = 0x800FBED0; // rom:0x95380 +ui_coin_sparkle_3_pal = 0x800FBEF0; // rom:0x953A0 +ui_coin_sparkle_4_png = 0x800FBF10; // rom:0x953C0 +ui_coin_sparkle_4_pal = 0x800FBF30; // rom:0x953E0 +ui_coin_sparkle_5_png = 0x800FBF50; // rom:0x95400 +ui_coin_sparkle_5_pal = 0x800FBF70; // rom:0x95420 +ui_coin_sparkle_none_png = 0x800FBF90; // rom:0x95440 +ui_coin_sparkle_none_pal = 0x800FBFB0; // rom:0x95460 +ui_status_star_point_shine_png = 0x800FBFD0; // rom:0x95480 +ui_status_star_piece_0_png = 0x800FC210; // rom:0x956C0 +ui_status_star_piece_0_pal = 0x800FC290; // rom:0x95740 +ui_status_star_piece_1_png = 0x800FC2B0; // rom:0x95760 +ui_status_star_piece_1_pal = 0x800FC330; // rom:0x957E0 +ui_status_star_piece_2_png = 0x800FC350; // rom:0x95800 +ui_status_star_piece_2_pal = 0x800FC3D0; // rom:0x95880 +ui_menu_times_png = 0x800FC3F0; // rom:0x958A0 +ui_menu_times_pal = 0x800FC410; // rom:0x958C0 +ui_fp_cost_png = 0x800FC430; // rom:0x958E0 +ui_fp_cost_pal = 0x800FC470; // rom:0x95920 +ui_fp_cost_reduced_pal = 0x800FC490; // rom:0x95940 +ui_fp_cost_reduced_twice_pal = 0x800FC4B0; // rom:0x95960 +ui_fp_cost_notenough_pal = 0x800FC4D0; // rom:0x95980 +ui_pow_cost_png = 0x800FC4F0; // rom:0x959A0 +ui_pow_cost_pal = 0x800FC530; // rom:0x959E0 +ui_pow_cost_reduced_pal = 0x800FC550; // rom:0x95A00 +ui_pow_cost_reduced_twice_pal = 0x800FC570; // rom:0x95A20 +ui_pow_cost_notenough_pal = 0x800FC590; // rom:0x95A40 +ui_green_arrow_down_png = 0x800FC5B0; // rom:0x95A60 +ui_green_arrow_down_pal = 0x800FC5F0; // rom:0x95AA0 +ui_green_arrow_up_png = 0x800FC610; // rom:0x95AC0 +ui_green_arrow_up_pal = 0x800FC650; // rom:0x95B00 +ui_kaime_png = 0x800FC670; // rom:0x95B20 +ui_kaime_pal = 0x800FC910; // rom:0x95DC0 +ui_unused_1_png = 0x800FC930; // rom:0x95DE0 +ui_unused_1_pal = 0x800FC9B0; // rom:0x95E60 +ui_unused_2_png = 0x800FC9D0; // rom:0x95E80 +ui_unused_2_pal = 0x800FCA50; // rom:0x95F00 +ui_unused_3_png = 0x800FCA70; // rom:0x95F20 +ui_unused_3_pal = 0x800FCAF0; // rom:0x95FA0 +ui_red_bar1_png = 0x800FCB10; // rom:0x95FC0 +ui_red_bar1_pal = 0x800FCCD0; // rom:0x96180 +ui_empty_bar_png = 0x800FCCF0; // rom:0x961A0 +ui_empty_bar_pal = 0x800FCEB0; // rom:0x96360 +ui_red_bar2_png = 0x800FCED0; // rom:0x96380 +ui_red_bar2_pal = 0x800FD070; // rom:0x96520 +ui_eldstar_png = 0x800FD090; // rom:0x96540 +ui_eldstar_pal = 0x800FD290; // rom:0x96740 +ui_eldstar_disabled_pal = 0x800FD2B0; // rom:0x96760 +ui_mamar_png = 0x800FD2D0; // rom:0x96780 +ui_mamar_pal = 0x800FD4D0; // rom:0x96980 +ui_mamar_disabled_pal = 0x800FD4F0; // rom:0x969A0 +ui_skolar_png = 0x800FD510; // rom:0x969C0 +ui_skolar_pal = 0x800FD710; // rom:0x96BC0 +ui_skolar_disabled_pal = 0x800FD730; // rom:0x96BE0 +ui_muskular_png = 0x800FD750; // rom:0x96C00 +ui_muskular_pal = 0x800FD950; // rom:0x96E00 +ui_muskular_disabled_pal = 0x800FD970; // rom:0x96E20 +ui_misstar_png = 0x800FD990; // rom:0x96E40 +ui_misstar_pal = 0x800FDB90; // rom:0x97040 +ui_misstar_disabled_pal = 0x800FDBB0; // rom:0x97060 +ui_klevar_png = 0x800FDBD0; // rom:0x97080 +ui_klevar_pal = 0x800FDDD0; // rom:0x97280 +ui_klevar_disabled_pal = 0x800FDDF0; // rom:0x972A0 +ui_kalmar_png = 0x800FDE10; // rom:0x972C0 +ui_kalmar_pal = 0x800FE010; // rom:0x974C0 +ui_kalmar_disabled_pal = 0x800FE030; // rom:0x974E0 +ui_star_beam_png = 0x800FE050; // rom:0x97500 +ui_star_beam_pal = 0x800FE250; // rom:0x97700 +ui_star_beam_disabled_pal = 0x800FE270; // rom:0x97720 +ui_peach_beam_png = 0x800FE290; // rom:0x97740 +ui_peach_beam_pal = 0x800FE490; // rom:0x97940 +ui_peach_beam_disabled_pal = 0x800FE4B0; // rom:0x97960 +ui_mario_head_png = 0x800FE4D0; // rom:0x97980 +ui_mario_head_pal = 0x800FE550; // rom:0x97A00 +ui_partner0_png = 0x800FE570; // rom:0x97A20 +ui_partner0_pal = 0x800FE770; // rom:0x97C20 +ui_partner0_disabled_pal = 0x800FE790; // rom:0x97C40 +ui_goombario_png = 0x800FE7B0; // rom:0x97C60 +ui_goombario_pal = 0x800FE9B0; // rom:0x97E60 +ui_goombario_disabled_pal = 0x800FE9D0; // rom:0x97E80 +ui_kooper_png = 0x800FE9F0; // rom:0x97EA0 +ui_kooper_pal = 0x800FEBF0; // rom:0x980A0 +ui_kooper_disabled_pal = 0x800FEC10; // rom:0x980C0 +ui_bombette_png = 0x800FEC30; // rom:0x980E0 +ui_bombette_pal = 0x800FEE30; // rom:0x982E0 +ui_bombette_disabled_pal = 0x800FEE50; // rom:0x98300 +ui_parakarry_png = 0x800FEE70; // rom:0x98320 +ui_parakarry_pal = 0x800FF070; // rom:0x98520 +ui_parakarry_disabled_pal = 0x800FF090; // rom:0x98540 +ui_bow_png = 0x800FF0B0; // rom:0x98560 +ui_bow_pal = 0x800FF2B0; // rom:0x98760 +ui_bow_disabled_pal = 0x800FF2D0; // rom:0x98780 +ui_watt_png = 0x800FF2F0; // rom:0x987A0 +ui_watt_pal = 0x800FF4F0; // rom:0x989A0 +ui_watt_disabled_pal = 0x800FF510; // rom:0x989C0 +ui_sushie_png = 0x800FF530; // rom:0x989E0 +ui_sushie_pal = 0x800FF730; // rom:0x98BE0 +ui_sushie_disabled_pal = 0x800FF750; // rom:0x98C00 +ui_lakilester_png = 0x800FF770; // rom:0x98C20 +ui_lakilester_pal = 0x800FF970; // rom:0x98E20 +ui_lakilester_disabled_pal = 0x800FF990; // rom:0x98E40 +ui_partner9_png = 0x800FF9B0; // rom:0x98E60 +ui_partner9_pal = 0x800FFBB0; // rom:0x99060 +ui_partner9_disabled_pal = 0x800FFBD0; // rom:0x99080 +ui_partner10_png = 0x800FFBF0; // rom:0x990A0 +ui_partner10_pal = 0x800FFDF0; // rom:0x992A0 +ui_partner10_disabled_pal = 0x800FFE10; // rom:0x992C0 +ui_partner11_png = 0x800FFE30; // rom:0x992E0 +ui_partner11_pal = 0x80100030; // rom:0x994E0 +ui_partner11_disabled_pal = 0x80100050; // rom:0x99500 +ui_status_text_times_png = 0x80100070; // rom:0x99520 +ui_status_text_times_pal = 0x80100090; // rom:0x99540 +ui_status_text_slash_png = 0x801000B0; // rom:0x99560 +ui_status_text_slash_pal = 0x801000F0; // rom:0x995A0 +ui_status_text_0_png = 0x80100110; // rom:0x995C0 +ui_status_text_0_pal = 0x80100190; // rom:0x99640 +ui_status_text_1_png = 0x801001B0; // rom:0x99660 +ui_status_text_1_pal = 0x80100230; // rom:0x996E0 +ui_status_text_2_png = 0x80100250; // rom:0x99700 +ui_status_text_2_pal = 0x801002D0; // rom:0x99780 +ui_status_text_3_png = 0x801002F0; // rom:0x997A0 +ui_status_text_3_pal = 0x80100370; // rom:0x99820 +ui_status_text_4_png = 0x80100390; // rom:0x99840 +ui_status_text_4_pal = 0x80100410; // rom:0x998C0 +ui_status_text_5_png = 0x80100430; // rom:0x998E0 +ui_status_text_5_pal = 0x801004B0; // rom:0x99960 +ui_status_text_6_png = 0x801004D0; // rom:0x99980 +ui_status_text_6_pal = 0x80100550; // rom:0x99A00 +ui_status_text_7_png = 0x80100570; // rom:0x99A20 +ui_status_text_7_pal = 0x801005F0; // rom:0x99AA0 +ui_status_text_8_png = 0x80100610; // rom:0x99AC0 +ui_status_text_8_pal = 0x80100690; // rom:0x99B40 +ui_status_text_9_png = 0x801006B0; // rom:0x99B60 +ui_status_text_9_pal = 0x80100730; // rom:0x99BE0 +ui_status_text_hp_png = 0x80100750; // rom:0x99C00 +ui_status_text_hp_pal = 0x801007D0; // rom:0x99C80 +ui_status_text_fp_png = 0x801007F0; // rom:0x99CA0 +ui_status_text_fp_pal = 0x80100870; // rom:0x99D20 +ui_status_pow_unit_1_png = 0x80100890; // rom:0x99D40 +ui_status_pow_unit_1_pal = 0x801008B0; // rom:0x99D60 +ui_status_pow_unit_2_png = 0x801008D0; // rom:0x99D80 +ui_status_pow_unit_2_pal = 0x801008F0; // rom:0x99DA0 +ui_status_pow_unit_3_png = 0x80100910; // rom:0x99DC0 +ui_status_pow_unit_3_pal = 0x80100930; // rom:0x99DE0 +ui_status_pow_unit_4_png = 0x80100950; // rom:0x99E00 +ui_status_pow_unit_4_pal = 0x80100970; // rom:0x99E20 +ui_status_pow_unit_5_png = 0x80100990; // rom:0x99E40 +ui_status_pow_unit_5_pal = 0x801009B0; // rom:0x99E60 +ui_status_pow_unit_6_png = 0x801009D0; // rom:0x99E80 +ui_status_pow_unit_6_pal = 0x801009F0; // rom:0x99EA0 +ui_status_pow_unit_7_png = 0x80100A10; // rom:0x99EC0 +ui_status_pow_unit_7_pal = 0x80100A30; // rom:0x99EE0 +ui_status_pow_unit_empty_png = 0x80100A50; // rom:0x99F00 +ui_status_pow_unit_empty_pal = 0x80100A70; // rom:0x99F20 +ui_status_pow_star_1_png = 0x80100A90; // rom:0x99F40 +ui_status_pow_star_1_pal = 0x80100AB0; // rom:0x99F60 +ui_status_pow_star_2_png = 0x80100AD0; // rom:0x99F80 +ui_status_pow_star_2_pal = 0x80100AF0; // rom:0x99FA0 +ui_status_pow_star_3_png = 0x80100B10; // rom:0x99FC0 +ui_status_pow_star_3_pal = 0x80100B30; // rom:0x99FE0 +ui_status_pow_star_4_png = 0x80100B50; // rom:0x9A000 +ui_status_pow_star_4_pal = 0x80100B70; // rom:0x9A020 +ui_status_pow_star_5_png = 0x80100B90; // rom:0x9A040 +ui_status_pow_star_5_pal = 0x80100BB0; // rom:0x9A060 +ui_status_pow_star_6_png = 0x80100BD0; // rom:0x9A080 +ui_status_pow_star_6_pal = 0x80100BF0; // rom:0x9A0A0 +ui_status_pow_star_7_png = 0x80100C10; // rom:0x9A0C0 +ui_status_pow_star_7_pal = 0x80100C30; // rom:0x9A0E0 +ui_status_pow_star_empty_png = 0x80100C50; // rom:0x9A100 +ui_status_pow_star_empty_pal = 0x80100C70; // rom:0x9A120 +ui_status_coin_0_png = 0x80100C90; // rom:0x9A140 +ui_status_coin_0_pal = 0x80100D10; // rom:0x9A1C0 +ui_status_coin_1_png = 0x80100D30; // rom:0x9A1E0 +ui_status_coin_1_pal = 0x80100DB0; // rom:0x9A260 +ui_status_coin_2_png = 0x80100DD0; // rom:0x9A280 +ui_status_coin_2_pal = 0x80100E50; // rom:0x9A300 +ui_status_coin_3_png = 0x80100E70; // rom:0x9A320 +ui_status_coin_3_pal = 0x80100EF0; // rom:0x9A3A0 +ui_status_coin_4_png = 0x80100F10; // rom:0x9A3C0 +ui_status_coin_4_pal = 0x80100F90; // rom:0x9A440 +ui_status_coin_5_png = 0x80100FB0; // rom:0x9A460 +ui_status_coin_5_pal = 0x80101030; // rom:0x9A4E0 +ui_status_coin_6_png = 0x80101050; // rom:0x9A500 +ui_status_coin_6_pal = 0x801010D0; // rom:0x9A580 +ui_status_coin_7_png = 0x801010F0; // rom:0x9A5A0 +ui_status_coin_7_pal = 0x80101170; // rom:0x9A620 +ui_status_coin_8_png = 0x80101190; // rom:0x9A640 +ui_status_coin_8_pal = 0x80101210; // rom:0x9A6C0 +ui_status_coin_9_png = 0x80101230; // rom:0x9A6E0 +ui_status_coin_9_pal = 0x801012B0; // rom:0x9A760 +ui_status_star_point_0_png = 0x801012D0; // rom:0x9A780 +ui_status_star_point_0_pal = 0x80101350; // rom:0x9A800 +ui_status_star_point_1_png = 0x80101370; // rom:0x9A820 +ui_status_star_point_1_pal = 0x801013F0; // rom:0x9A8A0 +ui_status_star_point_2_png = 0x80101410; // rom:0x9A8C0 +ui_status_star_point_2_pal = 0x80101490; // rom:0x9A940 +ui_status_star_point_3_png = 0x801014B0; // rom:0x9A960 +ui_status_star_point_3_pal = 0x80101530; // rom:0x9A9E0 +ui_status_star_point_4_png = 0x80101550; // rom:0x9AA00 +ui_status_star_point_4_pal = 0x801015D0; // rom:0x9AA80 +ui_status_star_point_5_png = 0x801015F0; // rom:0x9AAA0 +ui_status_star_point_5_pal = 0x80101670; // rom:0x9AB20 +ui_status_star_point_6_png = 0x80101690; // rom:0x9AB40 +ui_status_star_point_6_pal = 0x80101710; // rom:0x9ABC0 +ui_status_star_point_7_png = 0x80101730; // rom:0x9ABE0 +ui_status_star_point_7_pal = 0x801017B0; // rom:0x9AC60 +ui_bluepip_png = 0x801017D0; // rom:0x9AC80 +ui_bluepip_pal = 0x80101850; // rom:0x9AD00 +ui_bluepip2_png = 0x80101870; // rom:0x9AD20 +ui_bluepip2_pal = 0x801018F0; // rom:0x9ADA0 +ui_battle_status_charge_jump_png = 0x80101910; // rom:0x9ADC0 +ui_battle_status_charge_jump_pal = 0x80101A30; // rom:0x9AEE0 +ui_battle_status_charge_hammer_png = 0x80101A50; // rom:0x9AF00 +ui_battle_status_charge_hammer_pal = 0x80101B70; // rom:0x9B020 +ui_battle_status_charge_goombario_png = 0x80101B90; // rom:0x9B040 +ui_battle_status_charge_goombario_pal = 0x80101CB0; // rom:0x9B160 +ui_battle_status_exclamation_png = 0x80101CD0; // rom:0x9B180 +ui_battle_status_exclamation_pal = 0x80101DF0; // rom:0x9B2A0 +ui_battle_status_sleep_0_png = 0x80101E10; // rom:0x9B2C0 +ui_battle_status_sleep_0_pal = 0x80101E90; // rom:0x9B340 +ui_battle_status_sleep_1_png = 0x80101EB0; // rom:0x9B360 +ui_battle_status_sleep_1_pal = 0x80101F30; // rom:0x9B3E0 +ui_battle_status_sleep_2_png = 0x80101F50; // rom:0x9B400 +ui_battle_status_sleep_2_pal = 0x80101FD0; // rom:0x9B480 +ui_battle_status_static_0_png = 0x80101FF0; // rom:0x9B4A0 +ui_battle_status_static_0_pal = 0x80102070; // rom:0x9B520 +ui_battle_status_static_1_png = 0x80102090; // rom:0x9B540 +ui_battle_status_static_1_pal = 0x80102110; // rom:0x9B5C0 +ui_battle_status_paralyze_0_png = 0x80102130; // rom:0x9B5E0 +ui_battle_status_paralyze_0_pal = 0x801021B0; // rom:0x9B660 +ui_battle_status_paralyze_1_png = 0x801021D0; // rom:0x9B680 +ui_battle_status_paralyze_1_pal = 0x80102250; // rom:0x9B700 +ui_battle_status_dizzy_0_png = 0x80102270; // rom:0x9B720 +ui_battle_status_dizzy_0_pal = 0x801022F0; // rom:0x9B7A0 +ui_battle_status_dizzy_1_png = 0x80102310; // rom:0x9B7C0 +ui_battle_status_dizzy_1_pal = 0x80102390; // rom:0x9B840 +ui_battle_status_dizzy_2_png = 0x801023B0; // rom:0x9B860 +ui_battle_status_dizzy_2_pal = 0x80102430; // rom:0x9B8E0 +ui_battle_status_dizzy_3_png = 0x80102450; // rom:0x9B900 +ui_battle_status_dizzy_3_pal = 0x801024D0; // rom:0x9B980 +ui_battle_status_poison_0_png = 0x801024F0; // rom:0x9B9A0 +ui_battle_status_poison_0_pal = 0x80102570; // rom:0x9BA20 +ui_battle_status_poison_1_png = 0x80102590; // rom:0x9BA40 +ui_battle_status_poison_1_pal = 0x80102610; // rom:0x9BAC0 +ui_battle_status_frozen_0_png = 0x80102630; // rom:0x9BAE0 +ui_battle_status_frozen_0_pal = 0x801026B0; // rom:0x9BB60 +ui_battle_status_frozen_1_png = 0x801026D0; // rom:0x9BB80 +ui_battle_status_frozen_1_pal = 0x80102750; // rom:0x9BC00 +ui_battle_status_frozen_2_png = 0x80102770; // rom:0x9BC20 +ui_battle_status_frozen_2_pal = 0x801027F0; // rom:0x9BCA0 +ui_battle_status_frozen_3_png = 0x80102810; // rom:0x9BCC0 +ui_battle_status_frozen_3_pal = 0x80102890; // rom:0x9BD40 +ui_battle_status_stop_0_png = 0x801028B0; // rom:0x9BD60 +ui_battle_status_stop_0_pal = 0x80102930; // rom:0x9BDE0 +ui_battle_status_stop_1_png = 0x80102950; // rom:0x9BE00 +ui_battle_status_stop_1_pal = 0x801029D0; // rom:0x9BE80 +ui_battle_status_stop_2_png = 0x801029F0; // rom:0x9BEA0 +ui_battle_status_stop_2_pal = 0x80102A70; // rom:0x9BF20 +ui_battle_status_stop_3_png = 0x80102A90; // rom:0x9BF40 +ui_battle_status_stop_3_pal = 0x80102B10; // rom:0x9BFC0 +ui_battle_status_pdown_0_png = 0x80102B30; // rom:0x9BFE0 +ui_battle_status_pdown_0_pal = 0x80102BB0; // rom:0x9C060 +ui_battle_status_pdown_1_png = 0x80102BD0; // rom:0x9C080 +ui_battle_status_pdown_1_pal = 0x80102C50; // rom:0x9C100 +ui_battle_status_shrink_0_png = 0x80102C70; // rom:0x9C120 +ui_battle_status_shrink_0_pal = 0x80102CF0; // rom:0x9C1A0 +ui_battle_status_shrink_1_png = 0x80102D10; // rom:0x9C1C0 +ui_battle_status_shrink_1_pal = 0x80102D90; // rom:0x9C240 +ui_battle_status_shrink_2_png = 0x80102DB0; // rom:0x9C260 +ui_battle_status_shrink_2_pal = 0x80102E30; // rom:0x9C2E0 +ui_battle_status_shrink_3_png = 0x80102E50; // rom:0x9C300 +ui_battle_status_shrink_3_pal = 0x80102ED0; // rom:0x9C380 +ui_battle_status_transparent_0_png = 0x80102EF0; // rom:0x9C3A0 +ui_battle_status_transparent_0_pal = 0x80102F70; // rom:0x9C420 +ui_battle_status_transparent_1_png = 0x80102F90; // rom:0x9C440 +ui_battle_status_transparent_1_pal = 0x80103010; // rom:0x9C4C0 +ui_battle_status_transparent_2_png = 0x80103030; // rom:0x9C4E0 +ui_battle_status_transparent_2_pal = 0x801030B0; // rom:0x9C560 +ui_battle_status_transparent_3_png = 0x801030D0; // rom:0x9C580 +ui_battle_status_transparent_3_pal = 0x80103150; // rom:0x9C600 +ui_battle_status_transparent_4_png = 0x80103170; // rom:0x9C620 +ui_battle_status_transparent_4_pal = 0x801031F0; // rom:0x9C6A0 +ui_battle_status_transparent_5_png = 0x80103210; // rom:0x9C6C0 +ui_battle_status_transparent_5_pal = 0x80103290; // rom:0x9C740 +ui_battle_status_peril_png = 0x801032B0; // rom:0x9C760 +ui_battle_status_peril_pal = 0x801033F0; // rom:0x9C8A0 +ui_battle_status_danger_png = 0x80103410; // rom:0x9C8C0 +ui_battle_status_danger_pal = 0x80103550; // rom:0x9CA00 +ui_battle_status_refund_png = 0x80103570; // rom:0x9CA20 +ui_battle_status_refund_pal = 0x80103750; // rom:0x9CC00 +ui_battle_status_happy_png = 0x80103770; // rom:0x9CC20 +ui_battle_status_happy_pal = 0x801038B0; // rom:0x9CD60 +ui_battle_status_hp_drain_png = 0x801038D0; // rom:0x9CD80 +ui_battle_status_hp_drain_pal = 0x80103A10; // rom:0x9CEC0 +ui_move_basic_png = 0x80103A30; // rom:0x9CEE0 +ui_move_basic_pal = 0x80103C30; // rom:0x9D0E0 +ui_move_basic_disabled_pal = 0x80103C50; // rom:0x9D100 +ui_move_partner_1_png = 0x80103C70; // rom:0x9D120 +ui_move_partner_1_pal = 0x80103E70; // rom:0x9D320 +ui_move_partner_1_disabled_pal = 0x80103E90; // rom:0x9D340 +ui_move_partner_2_png = 0x80103EB0; // rom:0x9D360 +ui_move_partner_2_pal = 0x801040B0; // rom:0x9D560 +ui_move_partner_2_disabled_pal = 0x801040D0; // rom:0x9D580 +ui_move_partner_3_png = 0x801040F0; // rom:0x9D5A0 +ui_move_partner_3_pal = 0x801042F0; // rom:0x9D7A0 +ui_move_partner_3_disabled_pal = 0x80104310; // rom:0x9D7C0 +ui_stat_heart_png = 0x80104338; // rom:0x9D7E8 +ui_stat_flower_png = 0x80104740; // rom:0x9DBF0 +D_801094B0 = 0x80109640; // rom:0xA2AF0 +D_801096C0 = 0x80109850; // rom:0xA2D00 +D_80109710 = 0x801098A0; // rom:0xA2D50 +D_801097D8 = 0x80109968; // rom:0xA2E18 +ui_box_corners9_png = 0x80109B30; // rom:0xA2FE0 +ui_box_corners8_png = 0x80109F30; // rom:0xA33E0 +ui_box_corners6_png = 0x8010A830; // rom:0xA3CE0 +ui_box_corners7_png = 0x8010AAB0; // rom:0xA3F60 +ui_box_corners3_png = 0x8010ACB0; // rom:0xA4160 +ui_box_corners5_png = 0x8010B2B0; // rom:0xA4760 +ui_box_corners4_png = 0x8010B4B0; // rom:0xA4960 +ui_box_bg_tile_png = 0x8010B5B0; // rom:0xA4A60 +ui_box_corners1_png = 0x8010B630; // rom:0xA4AE0 +ui_box_corners2_png = 0x8010BA30; // rom:0xA4EE0 +ui_box_bg_flat_png = 0x8010BC30; // rom:0xA50E0 +vtx_drawbox1 = 0x8010BD18; // rom:0xA51C8 +PopupMenu_WasStatusBarIgnoringChanges = 0x8010D85A; +draw_number = 0x8012C8B0; // type:func rom:0xC1740 +PopupNotDipping = 0x8010D858; +create_worker_frontUI = 0x8012844C; // type:func rom:0xBD2DC +PopupMenu_TimesHEID = 0x8010D824; +get_msg_width = 0x8012B6D4; // type:func rom:0xC0564 +hud_element_create = 0x80146554; // type:func rom:0xDB3E4 +HES_GreenArrowDown = 0x80107928; // rom:0xA0DD8 +PopupMenu_DownArrowHEID = 0x8010D834; +PopupMenu_Alpha = 0x8010D810; +PopupMenu_CursorHEID = 0x8010D82C; +PopupNotBattle = 0x8010D84E; +D_8010D684 = 0x8010D844; +PopupMenu_LastDisplayIndex = 0x8010D815; +PopupMenu_PartnerLevelHEID = 0x8010D828; +PopupMenu_FirstDisplayIndex = 0x8010D814; +D_8010D6A0 = 0x8010D860; +D_80109898 = 0x80109A28; // rom:0xA2ED8 +PopupMenu_EmptybarHEID = 0x8010D81C; +D_8010D682 = 0x8010D842; +HES_MenuTimes = 0x80109400; // rom:0xA28B0 +set_window_properties = 0x8014CD78; // type:func rom:0xE1C08 +HES_GreenArrowUp = 0x80107974; // rom:0xA0E24 +hud_element_set_tint = 0x80149FAC; // type:func rom:0xDEE3C +D_8010D644 = 0x8010D804; +hud_element_free = 0x801499A4; // type:func rom:0xDE834 +PopupMenu_TitleIconHEID = 0x8010D820; +HES_StatusStarPiece = 0x80104DA0; // rom:0x9E250 +D_8010D692 = 0x8010D852; +sfx_play_sound = 0x8014ED64; // type:func rom:0xE3BF4 +gPopupState = 0x8010D800; +D_80109890 = 0x80109A20; // rom:0xA2ED0 +D_8010D686 = 0x8010D846; +hud_element_set_script = 0x801498AC; // type:func rom:0xDE73C +draw_msg = 0x8012B710; // type:func rom:0xC05A0 +PopupMenu_UpArrowHEID = 0x8010D830; +PopupMenu_StarPieceCounterPosX = 0x8010D848; +PopupMenu_SelectedIndex = 0x8010D808; +PopupDipMode = 0x8010D859; +D_8010D67C = 0x8010D83C; +PopupMenu_MaxDisplayableEntryCount = 0x8010D84F; +D_8010D690 = 0x8010D850; +PopupMenu_DisplayedEntryCount = 0x8010D816; +PopupMenu_EntryIconHEID = 0x8010D838; +open_status_bar_quickly = 0x800E972C; // type:func rom:0x82BDC +HES_StatusCoin = 0x801086E8; // rom:0xA1B98 +hud_element_draw_clipped = 0x80149858; // type:func rom:0xDE6E8 +D_8010D691 = 0x8010D851; +HES_EmptyBar = 0x80107A9C; // rom:0xA0F4C +D_8010D68C = 0x8010D84C; +basic_window_update = 0x8014C524; // rom:0xE13B4 +D_8010D6A4 = 0x8010D864; +D_8010D680 = 0x8010D840; +D_8010D658 = 0x8010D818; +D_8010D693 = 0x8010D853; +hud_element_set_render_pos = 0x80149A34; // type:func rom:0xDE8C4 +basic_hidden_window_update = 0x8014C624; // rom:0xE14B4 +HES_AnimatedHandPointer = 0x80104BB8; // rom:0x9E068 +gPopupWorker = 0x8010D854; +hud_element_set_flags = 0x80149AB0; // type:func rom:0xDE940 +D_8010D65A = 0x8010D81A; +hud_element_draw_next = 0x80149874; // type:func rom:0xDE704 +set_window_update = 0x8014CF2C; // type:func rom:0xE1DBC +gPopupMenu = 0x8010D85C; +close_status_bar = 0x800E9758; // type:func rom:0x82C08 +PopupMenu_StarPieceCounterPosY = 0x8010D84A; +PopupMenu_PrevSelectedIndex = 0x8010D80C; +status_bar_ignore_changes = 0x800E9834; // type:func rom:0x82CE4 +status_bar_is_ignoring_changes = 0x800E9874; // type:func rom:0x82D24 +HES_HandPointer = 0x80104B90; // rom:0x9E040 +status_bar_respond_to_changes = 0x800E9864; // type:func rom:0x82D14 +func_800F52BC = 0x800F5450; // type:func rom:0x8E900 +popup_menu_update = 0x800F19A0; // type:func rom:0x8AE50 diff --git a/ver/jp/undefined_syms.txt b/ver/jp/undefined_syms.txt index c8e533b5ece..fe9b28486e9 100644 --- a/ver/jp/undefined_syms.txt +++ b/ver/jp/undefined_syms.txt @@ -48,62 +48,6 @@ __osHwIntTable = 0x800958A0; // main.bss // subsequent segments -draw_box = 0x800F5470; -HES_AsleepBegin = 0x80104E54; -HES_AsleepEnd = 0x80104FF4; -HES_ElectrifiedBegin = 0x80105238; -HES_ElectrifiedEnd = 0x80105468; -HES_ParalyzedBegin = 0x801056AC; -HES_ParalyzedEnd = 0x801058DC; -HES_DizzyBegin = 0x80105A90; -HES_DizzyEnd = 0x80105C30; -HES_PoisonedBegin = 0x80105DE4; -HES_PoisonedEnd = 0x80105F84; -HES_FrozenBegin = 0x80106138; -HES_FrozenEnd = 0x801062D8; -HES_WeakenedLoop = 0x80106430; -HES_WeakenedBegin = 0x8010646C; -HES_WeakenedEnd = 0x801065EC; -HES_StoppedBegin = 0x801067A0; -HES_StoppedEnd = 0x80106940; -HES_ShrunkBegin = 0x80106AF4; -HES_ShrunkEnd = 0x80106C94; -HES_TransparentBegin = 0x80106E68; -HES_TransparentEnd = 0x80107028; -HES_BoostJumpBegin = 0x801071AC; -HES_BoostJumpEnd = 0x8010730C; -HES_BoostHammerBegin = 0x801074A4; -HES_BoostHammerEnd = 0x80107604; -HES_BoostPartner = 0x80107770; -HES_Surprise = 0x8010779C; -HES_Partner0 = 0x80107E38; -HES_Partner0Disabled = 0x80107E60; -HES_Goombario = 0x80107E88; -HES_GoombarioDisabled = 0x80107EB0; -HES_Kooper = 0x80107ED8; -HES_KooperDisabled = 0x80107F00; -HES_Bombette = 0x80107F28; -HES_BombetteDisabled = 0x80107F50; -HES_Parakarry = 0x80107F78; -HES_ParakarryDisabled = 0x80107FA0; -HES_Bow = 0x80107FC8; -HES_BowDisabled = 0x80107FF0; -HES_Watt = 0x80108018; -HES_WattDisabled = 0x80108040; -HES_Sushie = 0x80108068; -HES_SushieDisabled = 0x80108090; -HES_Lakilester = 0x801080B8; -HES_LakilesterDisabled = 0x801080E0; -HES_Partner9 = 0x80108108; -HES_Partner9Disabled = 0x80108130; -HES_PartnerA = 0x80108158; -HES_PartnerADisabled = 0x80108180; -HES_PartnerB = 0x801081A8; -HES_PartnerBDisabled = 0x801081D0; -HES_Peril = 0x80108B54; -HES_Danger = 0x80108BA4; -HES_MoveDiamond = 0x801094C8; -HES_MoveDiamond_disabled = 0x80109568; spr_init_sprites = 0x80111448; spr_render_init = 0x801115B0; spr_update_player_sprite = 0x801115DC; @@ -1069,26 +1013,10 @@ exec_ShakeCam1 = 0x802CB56C; pulse_stone_notification_setup = 0x802B7140; sfx_play_sound_at_player = 0x8014ED88; world_lakilester_can_dismount = 0x802BD7DC; -hide_popup_menu = 0x800f1340; -destroy_popup_menu = 0x800f14c8; -create_standard_popup_menu = 0x800f4fd4; -HES_StatusHP = 0x801083D8; -HES_StatusHeart = 0x801086A8; -HES_StatusFP = 0x80108400; -HES_StatusFlower = 0x801086C8; -HES_StatusCoin = 0x801086E8; -HES_StatusStarPoint = 0x8010883C; -HES_StatusSPShine = 0x80104D7C; -func_800F0D5C = 0x800F0CEC; -HES_StatusSPEmptyIncrement = 0x80108540; -HES_StatusStarEmpty = 0x80108680; copy_world_hud_element_ref_to_battle = 0x8014a364; hud_element_set_tint = 0x80149fac; get_worker = 0x8012884c; create_worker_frontUI = 0x8012844c; -func_800F0CB0 = 0x800f0c40; -func_800F102C = 0x800F0FBC; -func_800F0D80 = 0x800F0D10; hud_element_draw_clipped = 0x80149858; draw_number = 0x8012c8b0; basic_hidden_window_update = 0x8014C624; @@ -1161,38 +1089,6 @@ action_update_ride = 0x802B6000; action_update_step_up = 0x802B6000; action_update_state_23 = 0x802B609C; -HES_MenuTimes = 0x80109400; - -HES_StatusDigit0 = 0x80108248; -HES_StatusDigit1 = 0x80108270; -HES_StatusDigit2 = 0x80108298; -HES_StatusDigit3 = 0x801082C0; -HES_StatusDigit4 = 0x801082E8; -HES_StatusDigit5 = 0x80108310; -HES_StatusDigit6 = 0x80108338; -HES_StatusDigit7 = 0x80108360; -HES_StatusDigit8 = 0x80108388; -HES_StatusDigit9 = 0x801083B0; - -HES_StatusSlash = 0x80108220; -HES_StatusTimes = 0x801081F8; - -HES_StatusSPIncrement1 = 0x80108428; -HES_StatusSPIncrement2 = 0x80108450; -HES_StatusSPIncrement3 = 0x80108478; -HES_StatusSPIncrement4 = 0x801084A0; -HES_StatusSPIncrement5 = 0x801084C8; -HES_StatusSPIncrement6 = 0x801084F0; -HES_StatusSPIncrement7 = 0x80108518; - -HES_StatusStar1 = 0x80108568; -HES_StatusStar2 = 0x80108590; -HES_StatusStar3 = 0x801085B8; -HES_StatusStar4 = 0x801085E0; -HES_StatusStar5 = 0x80108608; -HES_StatusStar6 = 0x80108630; -HES_StatusStar7 = 0x80108658; - world_use_item_ROM_START = 0x32d500; world_use_item_ROM_END = 0x32ddd0; world_use_item_VRAM = 0x802C0000; @@ -1318,3 +1214,11 @@ EVS_WorldTwink_Update = 0x802BD20C; EVS_WorldTwink_UseAbility = 0x802BD228; EVS_WorldTwink_PutAway = 0x802BD244; +mdl_get_next_texture_address = 0x801229F4; +hud_element_draw_without_clipping = 0x80149890; +free_worker = 0x801287D0; +set_message_int_var = 0x8012AE48; +msg_printer_set_origin_pos = 0x8012AD18; +hud_element_set_scale = 0x80149CD0; +hud_element_set_alpha = 0x80149F60; +msg_get_printer_for_msg = 0x8012AB60; From 6f1c8b0e30fa90e531c808432649eb8f628f606e Mon Sep 17 00:00:00 2001 From: AltoXorg <56553686+Alto1772@users.noreply.github.com> Date: Mon, 11 Dec 2023 22:42:02 +0800 Subject: [PATCH 03/18] engine4 --- src/101b90_len_8f0.c | 2 ++ ver/jp/splat.yaml | 5 ++--- ver/jp/undefined_syms.txt | 9 +++++++++ 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/101b90_len_8f0.c b/src/101b90_len_8f0.c index 6472d5260d0..f6176e133c4 100644 --- a/src/101b90_len_8f0.c +++ b/src/101b90_len_8f0.c @@ -10,6 +10,8 @@ #define SPRITE_ROM_START 0x1943000 + 0x10 #elif VERSION_PAL #define SPRITE_ROM_START 0x1DF0000 + 0x10 +#elif VERSION_JP +#define SPRITE_ROM_START 0x1A40000 + 0x10 #endif extern s32 spr_allocateBtlComponentsOnWorldHeap; diff --git a/ver/jp/splat.yaml b/ver/jp/splat.yaml index c1ddd6013ac..005ee2062c3 100644 --- a/ver/jp/splat.yaml +++ b/ver/jp/splat.yaml @@ -834,13 +834,12 @@ segments: - [0xA5250] - name: engine4 - dir: engine4 type: code start: 0xA5F90 vram: 0x8010f890 subsegments: - - [0xA5F90, bin] - - [0xa9770] + - [auto, c, sprite] + - [auto, c, 101b90_len_8f0] - name: engine2 dir: engine2 diff --git a/ver/jp/undefined_syms.txt b/ver/jp/undefined_syms.txt index fe9b28486e9..abfe9be47ca 100644 --- a/ver/jp/undefined_syms.txt +++ b/ver/jp/undefined_syms.txt @@ -1222,3 +1222,12 @@ msg_printer_set_origin_pos = 0x8012AD18; hud_element_set_scale = 0x80149CD0; hud_element_set_alpha = 0x80149F60; msg_get_printer_for_msg = 0x8012AB60; +heap_spriteHead = 0x8034F800; +create_shading_palette = 0x8014D274; +imgfx_appendGfx_component = 0x80140020; +imgfx_update = 0x8013FB4C; +imgfx_release_instance = 0x8013F904; +imgfx_init = 0x8013F42C; +func_8013A4D0 = 0x8013F580; +gSpriteShadingProfile = 0x80156388; +imgfx_get_free_instances = 0x8013F7B4; From 68c90b03c0f1aed5bb645916f37ee2b79e6ce970 Mon Sep 17 00:00:00 2001 From: AltoXorg <56553686+Alto1772@users.noreply.github.com> Date: Tue, 12 Dec 2023 21:47:37 +0800 Subject: [PATCH 04/18] evt --- include/common_structs.h | 21 +- src/8a860_len_3f30.c | 7 +- src/evt/demo_api.c | 5 + ver/jp/splat.yaml | 16 +- ver/jp/symbol_addrs.txt | 809 ++++++++++++++++++++++++++++++++++++++ ver/jp/undefined_syms.txt | 127 +++--- 6 files changed, 925 insertions(+), 60 deletions(-) diff --git a/include/common_structs.h b/include/common_structs.h index 756d55819bf..8ccc4241812 100644 --- a/include/common_structs.h +++ b/include/common_structs.h @@ -1168,6 +1168,22 @@ typedef struct ItemEntity { /* 0x58 */ s32 sparkleHeight; } ItemEntity; // size = 0x5C +#if VERSION_JP // mergetodo +typedef struct MessagePrintState { + /* 0x000 */ char unk_00[0x4A8]; + /* 0x4A8 */ u8 curOption; + /* 0x4A9 */ s8 madeChoice; + /* 0x4AA */ u8 cancelOption; + /* 0x4AB */ char unk_4EB[0x1]; + /* 0x4AC */ u8 targetOption; + /* 0x4AD */ u8 scrollingTime; + /* 0x4AE */ u8 selectedOption; + /* 0x4AF */ char unk_4EF[0x9]; + /* 0x4B8 */ u8 windowState; + /* 0x4B9 */ char unk_4F9[0x3]; + /* 0x4BC */ s32 stateFlags; +} MessagePrintState; +#else typedef struct MessagePrintState { /* 0x000 */ u8* srcBuffer; /* 0x004 */ u16 printBufferPos; @@ -1201,9 +1217,7 @@ typedef struct MessagePrintState { /* 0x486 */ u8 curLine; /* 0x487 */ u8 unkArraySize; /* 0x488 */ u16 lineEndPos[4]; - /* 0x490 */ char unk_490[0x18]; - /* 0x4A8 */ u8 unk4A8; // curOption in JP? - /* 0x4A9 */ char unk_4A9[0x1F]; + /* 0x490 */ char unk_490[0x38]; /* 0x4C8 */ u16 unk_4C8; /* 0x4CA */ s16 unk_4CA; /* 0x4CC */ u16 unk_4CC; @@ -1262,6 +1276,7 @@ typedef struct MessagePrintState { /* 0x550 */ PAL_PTR letterContentPal; /* 0x554 */ char unk_554[0x4]; } MessagePrintState; // size = 0x558 +#endif typedef struct MessageDrawState { /* 0x00 */ s32 clipX[2]; // characters beyond this pos get skipped diff --git a/src/8a860_len_3f30.c b/src/8a860_len_3f30.c index 10210b24013..9bdb383d23e 100644 --- a/src/8a860_len_3f30.c +++ b/src/8a860_len_3f30.c @@ -1304,12 +1304,7 @@ s32 popup_menu_update(void) { case POPUP_STATE_CANCEL_DIP_AWAIT_CHOICE: if (D_8010D6A4 == 1) { set_window_update(WINDOW_ID_21, WINDOW_UPDATE_HIDE); -#if VERSION_JP - switch (D_8010D6A0->unk4A8) // duplicate of curOption? -#else - switch (D_8010D6A0->curOption) -#endif - { + switch (D_8010D6A0->curOption) { case 0: gPopupState = POPUP_STATE_CANCEL_DIP_ACCEPT; break; diff --git a/src/evt/demo_api.c b/src/evt/demo_api.c index 9dab7aefaa3..66f21b46d6a 100644 --- a/src/evt/demo_api.c +++ b/src/evt/demo_api.c @@ -1,6 +1,11 @@ #include "common.h" #include "ld_addrs.h" +#if VERSION_JP // TODO remove once this part is split +#define SHADING_NONE 0xFFFFFFFF +extern Addr sprite_shading_profiles_ROM_START; +#endif + // TODO: not sure where these go u8 D_802D9D70 = 254; u8 D_802D9D71 = 254; diff --git a/ver/jp/splat.yaml b/ver/jp/splat.yaml index 005ee2062c3..caf7ce82ac2 100644 --- a/ver/jp/splat.yaml +++ b/ver/jp/splat.yaml @@ -856,8 +856,20 @@ segments: start: 0xeb1a0 vram: 0x802c3000 subsegments: - - [0xeb1a0, bin] - - [0x102620] + - [auto, c, script_list] + - [auto, c, evt] + - [auto, c, map_api] + - [auto, c, cam_api] + - [auto, c, model_api] + - [auto, c, npc_api] + - [auto, c, msg_api] + - [auto, c, player_api] + - [auto, c, virtual_entity] + - [auto, c, f8f60_len_1560] + - [auto, c, audio_api] + - [auto, c, item_api] + - [auto, c, fx_api] + - [auto, c, demo_api] - name: entity type: code diff --git a/ver/jp/symbol_addrs.txt b/ver/jp/symbol_addrs.txt index 94ba688180a..02dcb6c1eb7 100644 --- a/ver/jp/symbol_addrs.txt +++ b/ver/jp/symbol_addrs.txt @@ -789,3 +789,812 @@ HES_HandPointer = 0x80104B90; // rom:0x9E040 status_bar_respond_to_changes = 0x800E9864; // type:func rom:0x82D14 func_800F52BC = 0x800F5450; // type:func rom:0x8E900 popup_menu_update = 0x800F19A0; // type:func rom:0x8AE50 +gCollisionStatus = 0x8015F4D0; +disable_npc_blur = 0x8003AA6C; // type:func rom:0x15E6C +fx_floating_flower = 0x8006FD50; // type:func rom:0x4B150 +func_800E01DC = 0x800E01BC; // type:func rom:0x7966C +sin_deg = 0x8002A2AC; // type:func rom:0x56AC +add_coins = 0x800EA060; // type:func rom:0x83510 +fx_star = 0x8006FE10; // type:func rom:0x4B210 +fx_sleep_bubble = 0x800707D0; // type:func rom:0x4BBD0 +fx_flashing_box_shockwave = 0x80071430; // type:func rom:0x4C830 +fx_effect_65 = 0x80071E50; // type:func rom:0x4D250 +fx_breaking_junk = 0x800727B0; // type:func rom:0x4DBB0 +get_npc_unsafe = 0x8003A7AC; // type:func rom:0x15BAC +fx_flower_trail = 0x8006FBD0; // type:func rom:0x4AFD0 +bgm_push_battle_song = 0x8014FFA8; // type:func rom:0xE4E38 +fx_merlin_house_stars = 0x80071790; // type:func rom:0x4CB90 +set_player_imgfx_all = 0x80111B48; // type:func rom:0xA8248 +fx_snowfall = 0x80071250; // type:func rom:0x4C650 +get_collider_center = 0x8005BAC0; // type:func rom:0x36EC0 +fx_steam_burst = 0x800709B0; // type:func rom:0x4BDB0 +fx_attack_result_text = 0x80071370; // type:func rom:0x4C770 +msg_printer_set_origin_pos = 0x8012AD18; // type:func rom:0xBFBA8 +fx_cold_breath = 0x80072210; // type:func rom:0x4D610 +fx_shockwave = 0x80070650; // type:func rom:0x4BA50 +fx_waterfall = 0x80071A90; // type:func rom:0x4CE90 +partner_is_flying = 0x800EA544; // type:func rom:0x839F4 +fx_red_impact = 0x80071F70; // type:func rom:0x4D370 +fx_rising_bubble = 0x80070590; // type:func rom:0x4B990 +fx_squirt = 0x800719D0; // type:func rom:0x4CDD0 +fx_stars_burst = 0x800704D0; // type:func rom:0x4B8D0 +remove_effect = 0x8005A100; // type:func rom:0x35500 +fx_flower_splash = 0x8006FB70; // type:func rom:0x4AF70 +fx_stars_shimmer = 0x80070530; // type:func rom:0x4B930 +heap_malloc = 0x8002ACA4; // type:func rom:0x60A4 +fx_static_status = 0x80072390; // type:func rom:0x4D790 +fx_snowman_doll = 0x80071C70; // type:func rom:0x4D070 +get_screen_coords = 0x8002E1C8; // type:func rom:0x95C8 +fx_energy_shockwave = 0x80070DD0; // type:func rom:0x4C1D0 +npc_set_decoration = 0x8003C098; // type:func rom:0x17498 +sfx_play_sound_at_player = 0x8014ED88; // type:func rom:0xE3C18 +func_800EF314 = 0x800EF2A8; // type:func rom:0x88758 +fx_shape_spell = 0x8006FF30; // type:func rom:0x4B330 +fx_ring_blast = 0x800705F0; // type:func rom:0x4B9F0 +set_message_int_var = 0x8012AE48; // type:func rom:0xBFCD8 +disable_status_bar_input = 0x800E97EC; // type:func rom:0x82C9C +enable_partner_ai = 0x800EF2BC; // type:func rom:0x8876C +partner_enable_input = 0x800EF594; // type:func rom:0x88A44 +fx_cloud_puff = 0x8006FC30; // type:func rom:0x4B030 +disable_player_shadow = 0x800E00C4; // type:func rom:0x79574 +get_entity_model = 0x80127FEC; // type:func rom:0xBCE7C +fx_star_outline = 0x80072A50; // type:func rom:0x4DE50 +free_npc = 0x8003868C; // type:func rom:0x13A8C +fx_quizmo_assistant = 0x80072870; // type:func rom:0x4DC70 +func_800EF300 = 0x800EF294; // type:func rom:0x88744 +fx_flame = 0x80070470; // type:func rom:0x4B870 +func_JP_80067420 = 0x80067420; // type:func rom:0x42820 +suggest_player_anim_allow_backward = 0x800DFEDC; // type:func rom:0x7938C +gCollisionData = 0x800B42C0; +fx_tattle_window = 0x800720F0; // type:func rom:0x4D4F0 +fx_lens_flare = 0x80070230; // type:func rom:0x4B630 +add_vec2D_polar = 0x80029F5C; // type:func rom:0x535C +fx_butterflies = 0x80071850; // type:func rom:0x4CC50 +fx_cloud_trail = 0x8006FC90; // type:func rom:0x4B090 +fx_ice_pillar = 0x800728D0; // type:func rom:0x4DCD0 +fx_peach_star_beam = 0x80072570; // type:func rom:0x4D970 +fx_lightning = 0x80070CB0; // type:func rom:0x4C0B0 +fx_energy_orb_wave = 0x80071730; // type:func rom:0x4CB30 +fx_shimmer_burst = 0x80070D70; // type:func rom:0x4C170 +npc_set_palswap_2 = 0x8003B124; // type:func rom:0x16524 +fx_drop_leaves = 0x8006FFF0; // type:func rom:0x4B3F0 +msg_get_printer_for_msg = 0x8012AB60; // type:func rom:0xBF9F0 +fx_purple_ring = 0x80070410; // type:func rom:0x4B810 +fx_confetti = 0x800711F0; // type:func rom:0x4C5F0 +fx_radial_shimmer = 0x80070B90; // type:func rom:0x4BF90 +fx_hieroglyphs = 0x800722D0; // type:func rom:0x4D6D0 +fx_emote = 0x8006FE70; // type:func rom:0x4B270 +fx_spiky_white_aura = 0x800702F0; // type:func rom:0x4B6F0 +enable_player_static_collisions = 0x800E0120; // type:func rom:0x795D0 +fx_walking_dust = 0x8006FB10; // type:func rom:0x4AF10 +fx_thunderbolt_ring = 0x80071970; // type:func rom:0x4CD70 +fx_snowflake = 0x8006FDB0; // type:func rom:0x4B1B0 +fx_stop_watch = 0x80071D30; // type:func rom:0x4D130 +get_global_flag = 0x8014A56C; // type:func rom:0xDF3FC +guRotateF = 0x80067B00; // type:func rom:0x42F00 +fx_big_smoke_puff = 0x8006F8D0; // type:func rom:0x4ACD0 +update_collider_transform = 0x8005B6D4; // type:func rom:0x36AD4 +free_npc_by_index = 0x80038560; // type:func rom:0x13960 +fx_huff_puff_breath = 0x800721B0; // type:func rom:0x4D5B0 +enable_npc_blur = 0x8003A9E4; // type:func rom:0x15DE4 +fx_damage_indicator = 0x800703B0; // type:func rom:0x4B7B0 +subtract_fortress_keys = 0x800EA358; // type:func rom:0x83808 +fx_firework = 0x80071190; // type:func rom:0x4C590 +fx_spirit_card = 0x80072690; // type:func rom:0x4DA90 +fx_snaking_static = 0x80071910; // type:func rom:0x4CD10 +fx_water_block = 0x80071A30; // type:func rom:0x4CE30 +npc_set_palswap_1 = 0x8003B10C; // type:func rom:0x1650C +set_screen_overlay_center = 0x8013CEFC; // type:func rom:0xD1D8C +fx_chomp_drop = 0x80071550; // type:func rom:0x4C950 +player_check_collision_below = 0x800E34F4; // type:func rom:0x7C9A4 +fx_explosion = 0x800701D0; // type:func rom:0x4B5D0 +func_800EF3E4 = 0x800EF378; // type:func rom:0x88828 +fx_disable_x = 0x800710D0; // type:func rom:0x4C4D0 +fx_light_rays = 0x80070C50; // type:func rom:0x4C050 +fx_falling_leaves = 0x800708F0; // type:func rom:0x4BCF0 +fx_lil_oink = 0x800726F0; // type:func rom:0x4DAF0 +fx_aura = 0x80070E90; // type:func rom:0x4C290 +fx_green_impact = 0x80070B30; // type:func rom:0x4BF30 +fx_windy_leaves = 0x80070890; // type:func rom:0x4BC90 +set_map_transition_effect = 0x8013D350; // type:func rom:0xD21E0 +fx_fire_breath = 0x80070D10; // type:func rom:0x4C110 +gSpriteShadingProfile = 0x80156388; +func_800EF43C = 0x800EF3D0; // type:func rom:0x88880 +create_basic_npc = 0x80038504; // type:func rom:0x13904 +sfx_stop_sound = 0x8014ED1C; // type:func rom:0xE3BAC +get_enemy = 0x8003E9A8; // type:func rom:0x19DA8 +partner_can_use_ability = 0x800EB3C0; // type:func rom:0x84870 +add_star_points = 0x800EA0C8; // type:func rom:0x83578 +bgm_set_song = 0x8014F9C8; // type:func rom:0xE4858 +enable_player_input = 0x800E0184; // type:func rom:0x79634 +disable_npc_shadow = 0x8003A8BC; // type:func rom:0x15CBC +parent_collider_to_model = 0x8005B430; // type:func rom:0x36830 +fx_dust = 0x80070050; // type:func rom:0x4B450 +fx_misc_particles = 0x80072330; // type:func rom:0x4D730 +fx_pink_sparkles = 0x800729F0; // type:func rom:0x4DDF0 +fx_stars_spread = 0x80070950; // type:func rom:0x4BD50 +sprintf = 0x800654C0; // type:func rom:0x408C0 +set_screen_overlay_params_front = 0x8013CE38; // type:func rom:0xD1CC8 +fx_debuff = 0x80070AD0; // type:func rom:0x4BED0 +start_rumble = 0x80028ED8; // type:func rom:0x42D8 +fx_sweat = 0x80070770; // type:func rom:0x4BB70 +get_map_IDs_by_name = 0x8005A8B0; // type:func rom:0x35CB0 +fx_fright_jar = 0x80071CD0; // type:func rom:0x4D0D0 +test_ray_zones = 0x8005CDD4; // type:func rom:0x381D4 +decrement_status_bar_disabled = 0x800E9AD0; // type:func rom:0x82F80 +fx_lightning_bolt = 0x80071BB0; // type:func rom:0x4CFB0 +disable_player_static_collisions = 0x800E00F4; // type:func rom:0x795A4 +func_800EF3D4 = 0x800EF368; // type:func rom:0x88818 +fx_damage_stars = 0x80070170; // type:func rom:0x4B570 +enable_status_bar_input = 0x800E97DC; // type:func rom:0x82C8C +fx_shiny_flare = 0x80072150; // type:func rom:0x4D550 +bgm_flush_music_events = 0x80055D58; // type:func rom:0x31158 +set_npc_yaw = 0x8003B000; // type:func rom:0x16400 +fx_effect_46 = 0x800712B0; // type:func rom:0x4C6B0 +fx_music_note = 0x800706B0; // type:func rom:0x4BAB0 +fx_fire_flower = 0x80071010; // type:func rom:0x4C410 +fx_something_rotating = 0x80072750; // type:func rom:0x4DB50 +fx_motion_blur_flame = 0x800716D0; // type:func rom:0x4CAD0 +sort_items = 0x800E766C; // type:func rom:0x80B1C +cos_deg = 0x8002A310; // type:func rom:0x5710 +fx_footprint = 0x8006FCF0; // type:func rom:0x4B0F0 +fx_water_splash = 0x80071C10; // type:func rom:0x4D010 +add_item = 0x800E7514; // type:func rom:0x809C4 +heap_free = 0x8002ACEC; // type:func rom:0x60EC +fx_landing_dust = 0x8006FAB0; // type:func rom:0x4AEB0 +fx_small_gold_sparkle = 0x800713D0; // type:func rom:0x4C7D0 +fx_got_item_outline = 0x80070290; // type:func rom:0x4B690 +fx_whirlwind = 0x80071F10; // type:func rom:0x4D310 +partner_disable_input = 0x800EF5BC; // type:func rom:0x88A6C +fx_big_snowflakes = 0x80070A70; // type:func rom:0x4BE70 +set_npc_sprite = 0x8003A91C; // type:func rom:0x15D1C +set_action_state = 0x800E5D84; // type:func rom:0x7F234 +gItemHudScripts = 0x8008A650; // rom:0x65A50 +fx_floating_cloud_puff = 0x80071FD0; // type:func rom:0x4D3D0 +fx_underwater = 0x80071B50; // type:func rom:0x4CF50 +bgm_set_battle_song = 0x8015003C; // type:func rom:0xE4ECC +get_npc_safe = 0x8003A808; // type:func rom:0x15C08 +set_global_flag = 0x8014A500; // type:func rom:0xDF390 +spawn_surface_effects = 0x8003D320; // type:func rom:0x18720 +fx_effect_63 = 0x80071D90; // type:func rom:0x4D190 +add_star_pieces = 0x800EA110; // type:func rom:0x835C0 +npc_set_imgfx_params = 0x8003D2E4; // type:func rom:0x186E4 +fx_moving_cloud = 0x800723F0; // type:func rom:0x4D7F0 +create_worker_world = 0x80128368; // type:func rom:0xBD1F8 +fx_bulb_glow = 0x80070EF0; // type:func rom:0x4C2F0 +fx_blast = 0x80070FB0; // type:func rom:0x4C3B0 +bgm_poll_music_events = 0x80055D3C; // type:func rom:0x3113C +fx_recover = 0x80071070; // type:func rom:0x4C470 +fx_smoke_ring = 0x80070110; // type:func rom:0x4B510 +move_player = 0x800E2758; // type:func rom:0x7BC08 +gPartnerAnimations = 0x800F84D8; // rom:0x91988 +set_screen_overlay_params_back = 0x8013CE54; // type:func rom:0xD1CE4 +destroy_popup_menu = 0x800F14C8; // type:func rom:0x8A978 +can_trigger_loading_zone = 0x800E26A4; // type:func rom:0x7BB54 +npc_set_palswap_mode_A = 0x8003B090; // type:func rom:0x16490 +fx_bombette_breaking = 0x80071130; // type:func rom:0x4C530 +fx_sparkles = 0x8006FED0; // type:func rom:0x4B2D0 +fx_quizmo_stage = 0x800715B0; // type:func rom:0x4C9B0 +fx_ending_decals = 0x80070BF0; // type:func rom:0x4BFF0 +fx_chapter_change = 0x800725D0; // type:func rom:0x4D9D0 +round = 0x80029A84; // type:func rom:0x4E84 +fx_shimmer_wave = 0x80070E30; // type:func rom:0x4C230 +fx_sun = 0x80072930; // type:func rom:0x4DD30 +guMtxXFML = 0x800679C0; // type:func rom:0x42DC0 +enable_npc_shadow = 0x8003A860; // type:func rom:0x15C60 +set_time_freeze_mode = 0x80027054; // type:func rom:0x2454 +player_handle_floor_collider_type = 0x800E313C; // type:func rom:0x7C5EC +get_current_map_settings = 0x8005A8A0; // type:func rom:0x35CA0 +fx_ice_shard = 0x80072630; // type:func rom:0x4DA30 +set_cam_viewport = 0x8002DFA4; // type:func rom:0x93A4 +fx_floating_rock = 0x800714F0; // type:func rom:0x4C8F0 +update_lerp = 0x8002A374; // type:func rom:0x5774 +sfx_play_sound_at_position = 0x8014EE0C; // type:func rom:0xE3C9C +fx_throw_spiny = 0x80071DF0; // type:func rom:0x4D1F0 +get_fortress_key_count = 0x800EA384; // type:func rom:0x83834 +get_model_from_list_index = 0x8011FF40; // type:func rom:0xB4DD0 +fx_gather_magic = 0x80071310; // type:func rom:0x4C710 +enable_player_shadow = 0x800E0090; // type:func rom:0x79540 +fx_effect_75 = 0x80072450; // type:func rom:0x4D850 +bgm_pop_battle_song = 0x8014FF1C; // type:func rom:0xE4DAC +sin_cos_deg = 0x8002A1F4; // type:func rom:0x55F4 +fx_effect_3D = 0x80070F50; // type:func rom:0x4C350 +partner_clear_player_tracking = 0x800EF3F0; // type:func rom:0x888A0 +fx_radiating_energy_orb = 0x80071610; // type:func rom:0x4CA10 +fx_shattering_stones = 0x800700B0; // type:func rom:0x4B4B0 +fx_stars_orbiting = 0x80070A10; // type:func rom:0x4BE10 +handle_floor_behavior = 0x800EFC98; // type:func rom:0x89148 +gItemTable = 0x800878B0; // rom:0x62CB0 +add_badge = 0x800E76DC; // type:func rom:0x80B8C +fx_partner_buff = 0x80072810; // type:func rom:0x4DC10 +fx_star_spirits_energy = 0x80072990; // type:func rom:0x4DD90 +npc_move_heading = 0x8003A714; // type:func rom:0x15B14 +fx_balloon = 0x80071490; // type:func rom:0x4C890 +fx_effect_86 = 0x80072AB0; // type:func rom:0x4DEB0 +increment_status_bar_disabled = 0x800E9AF4; // type:func rom:0x82FA4 +fx_tubba_heart_attack = 0x80071EB0; // type:func rom:0x4D2B0 +fx_embers = 0x80072270; // type:func rom:0x4D670 +hide_popup_menu = 0x800F1340; // type:func rom:0x8A7F0 +fx_stat_change = 0x800718B0; // type:func rom:0x4CCB0 +fx_smoke_burst = 0x80070710; // type:func rom:0x4BB10 +create_standard_popup_menu = 0x800F4FD4; // type:func rom:0x8E484 +fx_energy_in_out = 0x80072090; // type:func rom:0x4D490 +fx_water_fountain = 0x80071AF0; // type:func rom:0x4CEF0 +fx_gather_energy_pink = 0x8006FF90; // type:func rom:0x4B390 +fx_firework_rocket = 0x80072510; // type:func rom:0x4D910 +fx_smoke_impact = 0x80070350; // type:func rom:0x4B750 +gStaticScriptCounter = 0x802D9CA0; // rom:0x101E40 +gIsUpdatingScripts = 0x802D9CA4; // rom:0x101E44 +gGlobalTimeSpace = 0x802D9CA8; // rom:0x101E48 +sort_scripts = 0x802C3000; // type:func rom:0xEB1A0 +gScriptIdList = 0x802DAA98; +gCurrentScriptListPtr = 0x802DA890; +gScriptIndexList = 0x802DA898; +gScriptListCount = 0x802DAC98; +find_script_labels = 0x802C3148; // type:func rom:0xEB2E8 +gWorldScriptList = 0x802DA490; +gWorldMapVars = 0x802DBCA8; +gMapVars = 0x802DA484; +gWorldMapFlags = 0x802DBC70; +gBattleScriptList = 0x802DA690; +gBattleMapVars = 0x802DBCE8; +gBattleMapFlags = 0x802DBD34; +gMapFlags = 0x802DA480; +gNumScripts = 0x802DA488; +init_script_list = 0x802C32EC; // type:func rom:0xEB48C +suspend_frozen_scripts = 0x802C3390; // type:func rom:0xEB530 +start_script = 0x802C33E0; // type:func rom:0xEB580 +start_script_in_group = 0x802C35D0; // type:func rom:0xEB770 +start_child_script = 0x802C37C8; // type:func rom:0xEB968 +func_802C39F8 = 0x802C39F8; // type:func rom:0xEBB98 +func_802C3C10 = 0x802C3C10; // type:func rom:0xEBDB0 +kill_script = 0x802C3F3C; // type:func rom:0xEC0DC +restart_script = 0x802C3D04; // type:func rom:0xEBEA4 +kill_script_by_ID = 0x802C40AC; // type:func rom:0xEC24C +kill_all_scripts = 0x802C4114; // type:func rom:0xEC2B4 +does_script_exist = 0x802C4164; // type:func rom:0xEC304 +does_script_exist_by_ref = 0x802C41A4; // type:func rom:0xEC344 +set_script_priority = 0x802C41D8; // type:func rom:0xEC378 +set_script_timescale = 0x802C41E0; // type:func rom:0xEC380 +set_global_timespace = 0x802C4200; // type:func rom:0xEC3A0 +get_global_timespace = 0x802C420C; // type:func rom:0xEC3AC +set_script_group = 0x802C4218; // type:func rom:0xEC3B8 +bind_trigger = 0x802C4220; // type:func rom:0xEC3C0 +bind_trigger_1 = 0x802C42A8; // type:func rom:0xEC448 +suspend_group_script = 0x802C42D8; // type:func rom:0xEC478 +resume_group_script = 0x802C437C; // type:func rom:0xEC51C +suspend_all_script = 0x802C4420; // type:func rom:0xEC5C0 +resume_all_script = 0x802C448C; // type:func rom:0xEC62C +suspend_group_script_index = 0x802C44F8; // type:func rom:0xEC698 +resume_group_script_index = 0x802C4570; // type:func rom:0xEC710 +suspend_group_others = 0x802C46A8; // type:func rom:0xEC848 +resume_group_others = 0x802C471C; // type:func rom:0xEC8BC +get_script_by_index = 0x802C4790; // type:func rom:0xEC930 +get_script_by_id = 0x802C47A8; // type:func rom:0xEC948 +set_script_flags = 0x802C47E8; // type:func rom:0xEC988 +clear_script_flags = 0x802C4880; // type:func rom:0xECA20 +D_802DA48C = 0x802DA48C; +D_802DA894 = 0x802DA894; +D_802DAC9C = 0x802DAC9C; +evtDebugPrintBuffer = 0x802DACA0; +gLavaResetList = 0x802DADA0; +LastSafeFloor = 0x802DADA4; +D_802DADA8 = 0x802DADA8; +gBattleMeshAnimationList = 0x802DADB0; +gWorldMeshAnimationList = 0x802DADF0; +gCurrentMeshAnimationListPtr = 0x802DAE30; +D_802DAE34 = 0x802DAE34; +wExtraPartnerID = 0x802DAE40; +wExtraPartnerNpcID = 0x802DAE44; +D_802DAE4C = 0x802DAE48; +ShowMessageScreenOffsetX = 0x802DAE50; +ShowMessageScreenOffsetY = 0x802DAE54; +D_802DAE58 = 0x802DAE58; +D_802DAE60 = 0x802DAE60; +gCurrentPrintContext = 0x802DB260; +D_802DB264 = 0x802DB264; +D_802DB268 = 0x802DB268; +D_802DB26C = 0x802DB26C; +playerNpcData = 0x802DB270; +PlayerImgFXFlags = 0x802DB5B0; +D_802DB5B4 = 0x802DB5B4; +bBattleVirtualEntityList = 0x802DB5C0; +wWorldVirtualEntityList = 0x802DB6C0; +gCurrentVirtualEntityListPtr = 0x802DB7C0; +D_802DB7C4 = 0x802DB7C4; +MusicEventList = 0x802DB7D0; +D_802DB7D4 = 0x802DB7D4; +RunningMusicEvents = 0x802DB7D8; +RunningMusicEventIDs = 0x802DB800; +D_802DB828 = 0x802DB828; +D_802DB830 = 0x802DB830; +gSpriteShadingHeader = 0x802DBB60; +D_802DBB64 = 0x802DBB64; +gSpriteShadingData = 0x802DBB68; +D_802DB8B6C = 0x802DBB6C; +D_802DBB70 = 0x802DBB70; +DoorModelsSwingCW = 0x802DBC7C; +wPushBlockGrids = 0x802DBC88; +DoorModelsSwingCCW = 0x802DBD28; +evt_fixed_var_to_float = 0x802C4920; // type:func rom:0xECAC0 +evt_float_to_fixed_var = 0x802C496C; // type:func rom:0xECB0C +evt_handle_return = 0x802C4998; // type:func rom:0xECB38 +evt_handle_label = 0x802C49B8; // type:func rom:0xECB58 +evt_handle_goto = 0x802C49C0; // type:func rom:0xECB60 +evt_find_label = 0x802C8890; // type:func rom:0xF0A30 +evt_handle_loop = 0x802C4A00; // type:func rom:0xECBA0 +evt_handle_end_loop = 0x802C4A48; // type:func rom:0xECBE8 +evt_set_variable = 0x802C8098; // type:func rom:0xF0238 +evt_handle_break_loop = 0x802C4B0C; // type:func rom:0xECCAC +evt_goto_end_loop = 0x802C8AE4; // type:func rom:0xF0C84 +evt_handle_wait = 0x802C4B5C; // type:func rom:0xECCFC +evt_handle_wait_seconds = 0x802C4BB8; // type:func rom:0xECD58 +evt_get_float_variable = 0x802C842C; // type:func rom:0xF05CC +evt_handle_if_equal = 0x802C4C40; // type:func rom:0xECDE0 +evt_skip_if = 0x802C88FC; // type:func rom:0xF0A9C +evt_handle_if_not_equal = 0x802C4CA0; // type:func rom:0xECE40 +evt_handle_if_less = 0x802C4D00; // type:func rom:0xECEA0 +evt_handle_if_greater = 0x802C4D64; // type:func rom:0xECF04 +evt_handle_if_less_equal = 0x802C4DC8; // type:func rom:0xECF68 +evt_handle_if_greater_equal = 0x802C4E2C; // type:func rom:0xECFCC +evt_handle_if_AND = 0x802C4E90; // type:func rom:0xED030 +evt_handle_if_not_AND = 0x802C4EE8; // type:func rom:0xED088 +evt_handle_else = 0x802C4F40; // type:func rom:0xED0E0 +evt_skip_else = 0x802C8978; // type:func rom:0xF0B18 +evt_handle_end_if = 0x802C4F6C; // type:func rom:0xED10C +evt_handle_switch = 0x802C4F74; // type:func rom:0xED114 +evt_handle_switch_const = 0x802C4FE4; // type:func rom:0xED184 +evt_handle_case_equal = 0x802C5030; // type:func rom:0xED1D0 +evt_goto_end_case = 0x802C89E4; // type:func rom:0xF0B84 +evt_goto_next_case = 0x802C8A60; // type:func rom:0xF0C00 +evt_handle_case_not_equal = 0x802C50BC; // type:func rom:0xED25C +evt_handle_case_less = 0x802C5148; // type:func rom:0xED2E8 +evt_handle_case_less_equal = 0x802C51D8; // type:func rom:0xED378 +evt_handle_case_greater = 0x802C5268; // type:func rom:0xED408 +evt_handle_case_greater_equal = 0x802C52F8; // type:func rom:0xED498 +evt_handle_case_range = 0x802C5388; // type:func rom:0xED528 +evt_handle_case_default = 0x802C5444; // type:func rom:0xED5E4 +evt_handle_case_AND = 0x802C549C; // type:func rom:0xED63C +evt_handle_case_equal_OR = 0x802C5518; // type:func rom:0xED6B8 +evt_handle_case_equal_AND = 0x802C55B8; // type:func rom:0xED758 +evt_handle_end_case_group = 0x802C565C; // type:func rom:0xED7FC +evt_handle_break_case = 0x802C56D4; // type:func rom:0xED874 +evt_handle_end_switch = 0x802C5718; // type:func rom:0xED8B8 +evt_handle_set_var = 0x802C5744; // type:func rom:0xED8E4 +evt_handle_set_const = 0x802C5790; // type:func rom:0xED930 +evt_handle_set_float = 0x802C57B8; // type:func rom:0xED958 +evt_set_float_variable = 0x802C8640; // type:func rom:0xF07E0 +evt_handle_add = 0x802C5804; // type:func rom:0xED9A4 +evt_handle_subtract = 0x802C5868; // type:func rom:0xEDA08 +evt_handle_multiply = 0x802C58CC; // type:func rom:0xEDA6C +evt_handle_divide = 0x802C5934; // type:func rom:0xEDAD4 +evt_handle_mod = 0x802C59BC; // type:func rom:0xEDB5C +evt_handle_addF = 0x802C5A84; // type:func rom:0xEDC24 +evt_handle_subtractF = 0x802C5AEC; // type:func rom:0xEDC8C +evt_handle_multiplyF = 0x802C5B54; // type:func rom:0xEDCF4 +evt_handle_divideF = 0x802C5BC0; // type:func rom:0xEDD60 +evt_handle_set_int_buffer_ptr = 0x802C5C28; // type:func rom:0xEDDC8 +evt_handle_set_float_buffer_ptr = 0x802C5C5C; // type:func rom:0xEDDFC +evt_handle_get_1_word = 0x802C5C90; // type:func rom:0xEDE30 +evt_handle_get_2_word = 0x802C5CC4; // type:func rom:0xEDE64 +evt_handle_get_3_word = 0x802C5D2C; // type:func rom:0xEDECC +evt_handle_get_4_word = 0x802C5DB4; // type:func rom:0xEDF54 +evt_handle_get_Nth_word = 0x802C5E5C; // type:func rom:0xEDFFC +evt_handle_get_1_float = 0x802C5EB4; // type:func rom:0xEE054 +evt_handle_get_2_float = 0x802C5F0C; // type:func rom:0xEE0AC +evt_handle_get_3_float = 0x802C5F9C; // type:func rom:0xEE13C +evt_handle_get_4_float = 0x802C605C; // type:func rom:0xEE1FC +evt_handle_get_Nth_float = 0x802C614C; // type:func rom:0xEE2EC +evt_handle_set_array = 0x802C61AC; // type:func rom:0xEE34C +evt_handle_set_flag_array = 0x802C61E0; // type:func rom:0xEE380 +evt_handle_allocate_array = 0x802C6214; // type:func rom:0xEE3B4 +evt_handle_AND = 0x802C6270; // type:func rom:0xEE410 +evt_handle_AND_const = 0x802C62D4; // type:func rom:0xEE474 +evt_handle_OR = 0x802C632C; // type:func rom:0xEE4CC +evt_handle_OR_const = 0x802C6390; // type:func rom:0xEE530 +evt_handle_call = 0x802C63E8; // type:func rom:0xEE588 +evt_handle_exec1 = 0x802C646C; // type:func rom:0xEE60C +evt_handle_exec1_get_id = 0x802C6524; // type:func rom:0xEE6C4 +evt_handle_exec_wait = 0x802C65FC; // type:func rom:0xEE79C +evt_handle_jump = 0x802C6640; // type:func rom:0xEE7E0 +evt_trigger_on_activate_exec_script = 0x802C667C; // type:func rom:0xEE81C +evt_handle_bind = 0x802C6714; // type:func rom:0xEE8B4 +evt_get_variable_index = 0x802C7DA8; // type:func rom:0xEFF48 +DeleteTrigger = 0x802C6824; // type:func rom:0xEE9C4 +evt_handle_unbind = 0x802C6850; // type:func rom:0xEE9F0 +evt_handle_kill = 0x802C6870; // type:func rom:0xEEA10 +evt_handle_set_priority = 0x802C689C; // type:func rom:0xEEA3C +evt_handle_set_timescale = 0x802C68D8; // type:func rom:0xEEA78 +evt_handle_set_group = 0x802C6914; // type:func rom:0xEEAB4 +evt_handle_suspend_all = 0x802C6950; // type:func rom:0xEEAF0 +evt_handle_resume_all = 0x802C697C; // type:func rom:0xEEB1C +evt_handle_suspend_others = 0x802C69A8; // type:func rom:0xEEB48 +evt_handle_resume_others = 0x802C69E4; // type:func rom:0xEEB84 +evt_handle_suspend = 0x802C6A20; // type:func rom:0xEEBC0 +evt_handle_resume = 0x802C6A4C; // type:func rom:0xEEBEC +evt_handle_does_script_exist = 0x802C6A78; // type:func rom:0xEEC18 +evt_trigger_on_activate_lock = 0x802C6AD0; // type:func rom:0xEEC70 +evt_handle_bind_lock = 0x802C6B54; // type:func rom:0xEECF4 +evt_handle_thread = 0x802C6C78; // type:func rom:0xEEE18 +evt_handle_end_thread = 0x802C6D4C; // type:func rom:0xEEEEC +evt_handle_child_thread = 0x802C6D6C; // type:func rom:0xEEF0C +evt_handle_end_child_thread = 0x802C6DF4; // type:func rom:0xEEF94 +evt_handle_debug_log = 0x802C6E14; // type:func rom:0xEEFB4 +evt_handle_print_debug_var = 0x802C6E1C; // type:func rom:0xEEFBC +func_802C739C = 0x802C739C; // type:func rom:0xEF53C +func_802C73B0 = 0x802C73B0; // type:func rom:0xEF550 +func_802C73B8 = 0x802C73B8; // type:func rom:0xEF558 +evt_execute_next_command = 0x802C7404; // type:func rom:0xEF5A4 +evt_get_variable_index_alt = 0x802C7F20; // type:func rom:0xF00C0 +TranslateModel = 0x802C8B60; // type:func rom:0xF0D00 +RotateModel = 0x802C8C64; // type:func rom:0xF0E04 +ScaleModel = 0x802C8D88; // type:func rom:0xF0F28 +GetModelIndex = 0x802C8E8C; // type:func rom:0xF102C +InvalidateModelTransform = 0x802C8EE4; // type:func rom:0xF1084 +CloneModel = 0x802C8F28; // type:func rom:0xF10C8 +GetModelCenter = 0x802C8F80; // type:func rom:0xF1120 +SetTexPanner = 0x802C9000; // type:func rom:0xF11A0 +SetCustomGfxEnabled = 0x802C907C; // type:func rom:0xF121C +SetModelCustomGfx = 0x802C90FC; // type:func rom:0xF129C +SetModelTexVariant = 0x802C91A4; // type:func rom:0xF1344 +EnableTexPanning = 0x802C9208; // type:func rom:0xF13A8 +EnableModel = 0x802C9288; // type:func rom:0xF1428 +SetGroupVisibility = 0x802C9308; // type:func rom:0xF14A8 +SetTexPanOffset = 0x802C9364; // type:func rom:0xF1504 +SetCustomGfx = 0x802C9428; // type:func rom:0xF15C8 +SetCustomGfxBuilders = 0x802C94A0; // type:func rom:0xF1640 +SetModelFlags = 0x802C9518; // type:func rom:0xF16B8 +apply_transform_to_children = 0x802C95A0; // type:func rom:0xF1740 +MakeTransformGroup = 0x802C971C; // type:func rom:0xF18BC +SetTransformGroupEnabled = 0x802C9748; // type:func rom:0xF18E8 +TranslateGroup = 0x802C97B4; // type:func rom:0xF1954 +RotateGroup = 0x802C98D8; // type:func rom:0xF1A78 +ScaleGroup = 0x802C9A1C; // type:func rom:0xF1BBC +GetTransformGroup = 0x802C9B40; // type:func rom:0xF1CE0 +EnableGroup = 0x802C9B98; // type:func rom:0xF1D38 +MakeLocalVertexCopy = 0x802C9C70; // type:func rom:0xF1E10 +modify_collider_family_flags = 0x802C9CE8; // type:func rom:0xF1E88 +ModifyColliderFlags = 0x802C9DCC; // type:func rom:0xF1F6C +ResetFromLava = 0x802C9ED8; // type:func rom:0xF2078 +get_lava_reset_pos = 0x802C9FD4; // type:func rom:0xF2174 +GetColliderCenter = 0x802CA0AC; // type:func rom:0xF224C +ParentColliderToModel = 0x802CA114; // type:func rom:0xF22B4 +UpdateColliderTransform = 0x802CA188; // type:func rom:0xF2328 +set_zone_enabled = 0x802CA1B8; // type:func rom:0xF2358 +SetZoneEnabled = 0x802CA254; // type:func rom:0xF23F4 +goto_map = 0x802CA304; // type:func rom:0xF24A4 +GotoMap = 0x802CA400; // type:func rom:0xF25A0 +GotoMapSpecial = 0x802CA420; // type:func rom:0xF25C0 +GotoMapByID = 0x802CA440; // type:func rom:0xF25E0 +GetEntryID = 0x802CA460; // type:func rom:0xF2600 +GetMapID = 0x802CA490; // type:func rom:0xF2630 +GetLoadType = 0x802CA4C0; // type:func rom:0xF2660 +SetRenderMode = 0x802CA4F4; // type:func rom:0xF2694 +PlaySoundAtModel = 0x802CA558; // type:func rom:0xF26F8 +PlaySoundAtCollider = 0x802CA614; // type:func rom:0xF27B4 +ShakeCam1 = 0x802D9CB0; // rom:0x101E50 +ShakeCam = 0x802CB2A8; // type:func rom:0xF3448 +ShakeCamX = 0x802D9CE8; // rom:0x101E88 +SetCamEnabled = 0x802CA6C0; // type:func rom:0xF2860 +SetCamNoDraw = 0x802CA774; // type:func rom:0xF2914 +SetCamPerspective = 0x802CA828; // type:func rom:0xF29C8 +func_802CA90C = 0x802CA90C; // type:func rom:0xF2AAC +func_802CA988 = 0x802CA988; // type:func rom:0xF2B28 +SetCamViewport = 0x802CAB18; // type:func rom:0xF2CB8 +func_802CABE8 = 0x802CABE8; // type:func rom:0xF2D88 +func_802CACC0 = 0x802CACC0; // type:func rom:0xF2E60 +SetCamBGColor = 0x802CAD98; // type:func rom:0xF2F38 +func_802CAE50 = 0x802CAE50; // type:func rom:0xF2FF0 +SetCamTarget = 0x802CAF2C; // type:func rom:0xF30CC +InterpCamTargetPos = 0x802CB008; // type:func rom:0xF31A8 +exec_ShakeCam1 = 0x802CB56C; // type:func rom:0xF370C +exec_ShakeCamX = 0x802CB5C8; // type:func rom:0xF3768 +SetCamLeadPlayer = 0x802CB680; // type:func rom:0xF3820 +func_802CB710 = 0x802CB710; // type:func rom:0xF38B0 +PanToTarget = 0x802CB79C; // type:func rom:0xF393C +UseSettingsFrom = 0x802CB860; // type:func rom:0xF3A00 +LoadSettings = 0x802CB9F8; // type:func rom:0xF3B98 +SetCamType = 0x802CBAB4; // type:func rom:0xF3C54 +SetCamPitch = 0x802CBB48; // type:func rom:0xF3CE8 +SetCamDistance = 0x802CBBE4; // type:func rom:0xF3D84 +SetCamPosA = 0x802CBC58; // type:func rom:0xF3DF8 +SetCamPosB = 0x802CBCF4; // type:func rom:0xF3E94 +SetCamPosC = 0x802CBD90; // type:func rom:0xF3F30 +SetPanTarget = 0x802CBE2C; // type:func rom:0xF3FCC +SetCamSpeed = 0x802CBEF0; // type:func rom:0xF4090 +GetCamType = 0x802CBF64; // type:func rom:0xF4104 +GetCamPitch = 0x802CBFF4; // type:func rom:0xF4194 +GetCamDistance = 0x802CC084; // type:func rom:0xF4224 +GetCamPosA = 0x802CC0F4; // type:func rom:0xF4294 +GetCamPosB = 0x802CC184; // type:func rom:0xF4324 +GetCamPosC = 0x802CC214; // type:func rom:0xF43B4 +GetCamPosition = 0x802CC2A4; // type:func rom:0xF4444 +WaitForCam = 0x802CC354; // type:func rom:0xF44F4 +SetCamProperties = 0x802CC3EC; // type:func rom:0xF458C +AdjustCam = 0x802CC660; // type:func rom:0xF4800 +ResetCam = 0x802CC8C8; // type:func rom:0xF4A68 +update_animated_models = 0x802CCAC0; // type:func rom:0xF4C60 +render_animated_models = 0x802CCB18; // type:func rom:0xF4CB8 +InitAnimatedModels = 0x802CCCB0; // type:func rom:0xF4E50 +LoadAnimatedModel = 0x802CCCEC; // type:func rom:0xF4E8C +LoadAnimatedMesh = 0x802CCDAC; // type:func rom:0xF4F4C +PlayModelAnimation = 0x802CCE6C; // type:func rom:0xF500C +PlayModelAnimationStartingFrom = 0x802CCEDC; // type:func rom:0xF507C +ChangeModelAnimation = 0x802CCF6C; // type:func rom:0xF510C +SetAnimatedModelRootPosition = 0x802CCFE4; // type:func rom:0xF5184 +GetAnimatedModelRootPosition = 0x802CD090; // type:func rom:0xF5230 +AddAnimatedModelRootPosition = 0x802CD12C; // type:func rom:0xF52CC +SetAnimatedModelRootRotation = 0x802CD1F0; // type:func rom:0xF5390 +SetAnimatedModelRootScale = 0x802CD29C; // type:func rom:0xF543C +SetAnimatedModelRenderMode = 0x802CD348; // type:func rom:0xF54E8 +DeleteAnimatedModel = 0x802CD3C0; // type:func rom:0xF5560 +SetAnimatorFlags = 0x802CD418; // type:func rom:0xF55B8 +reset_model_animators = 0x802CD4B4; // type:func rom:0xF5654 +init_model_animators = 0x802CD57C; // type:func rom:0xF571C +GetAnimatedNodePosition = 0x802CD5C0; // type:func rom:0xF5760 +GetAnimatedNodeRotation = 0x802CD6E0; // type:func rom:0xF5880 +GetAnimatedPositionByTreeIndex = 0x802CD7D8; // type:func rom:0xF5978 +GetAnimatedRotationByTreeIndex = 0x802CD8F8; // type:func rom:0xF5A98 +SetAnimatedNodeFlags = 0x802CD9F0; // type:func rom:0xF5B90 +resolve_npc = 0x802CDAC0; // type:func rom:0xF5C60 +set_npc_animation = 0x802CDB0C; // type:func rom:0xF5CAC +CreateNpc = 0x802CDBA4; // type:func rom:0xF5D44 +DeleteNpc = 0x802CDC1C; // type:func rom:0xF5DBC +GetNpcPointer = 0x802CDC58; // type:func rom:0xF5DF8 +SetNpcPos = 0x802CDCB0; // type:func rom:0xF5E50 +SetNpcRotation = 0x802CDDB0; // type:func rom:0xF5F50 +SetNpcRotationPivot = 0x802CDE68; // type:func rom:0xF6008 +SetNpcScale = 0x802CDED4; // type:func rom:0xF6074 +SetNpcCollisionSize = 0x802CDF8C; // type:func rom:0xF612C +SetNpcSpeed = 0x802CE01C; // type:func rom:0xF61BC +SetNpcJumpscale = 0x802CE088; // type:func rom:0xF6228 +SetNpcAnimation = 0x802CE0F4; // type:func rom:0xF6294 +GetNpcAnimation = 0x802CE160; // type:func rom:0xF6300 +SetNpcAnimationSpeed = 0x802CE1C0; // type:func rom:0xF6360 +NpcMoveTo = 0x802CE22C; // type:func rom:0xF63CC +_npc_jump_to = 0x802CE434; // type:func rom:0xF65D4 +NpcJump0 = 0x802CE6C4; // type:func rom:0xF6864 +NpcJump1 = 0x802CE6E0; // type:func rom:0xF6880 +NpcFlyTo = 0x802CE6FC; // type:func rom:0xF689C +GetNpcYaw = 0x802CEA10; // type:func rom:0xF6BB0 +SetNpcYaw = 0x802CEA84; // type:func rom:0xF6C24 +InterpNpcYaw = 0x802CEB04; // type:func rom:0xF6CA4 +NpcFacePlayer = 0x802CECC8; // type:func rom:0xF6E68 +NpcFaceNpc = 0x802CEE80; // type:func rom:0xF7020 +SetNpcFlagBits = 0x802CF060; // type:func rom:0xF7200 +GetNpcPos = 0x802CF0F4; // type:func rom:0xF7294 +SetNpcCollisionChannel = 0x802CF1B4; // type:func rom:0xF7354 +SetNpcSprite = 0x802CF208; // type:func rom:0xF73A8 +EnableNpcShadow = 0x802CF268; // type:func rom:0xF7408 +EnableNpcBlur = 0x802CF2EC; // type:func rom:0xF748C +ClearPartnerMoveHistory = 0x802CF370; // type:func rom:0xF7510 +NpcSetHomePosToCurrent = 0x802CF3BC; // type:func rom:0xF755C +GetPartnerPos = 0x802CF438; // type:func rom:0xF75D8 +DisablePartnerAI = 0x802CF4E8; // type:func rom:0xF7688 +EnablePartnerAI = 0x802CF52C; // type:func rom:0xF76CC +func_802CF54C = 0x802CF54C; // type:func rom:0xF76EC +func_802CF56C = 0x802CF56C; // type:func rom:0xF770C +BringPartnerOut = 0x802CF5B8; // type:func rom:0xF7758 +PutPartnerAway = 0x802CF988; // type:func rom:0xF7B28 +GetCurrentPartnerID = 0x802CFC74; // type:func rom:0xF7E14 +PartnerCanUseAbility = 0x802CFCA0; // type:func rom:0xF7E40 +PartnerIsFlying = 0x802CFCE8; // type:func rom:0xF7E88 +SetNpcImgFXParams = 0x802CFD30; // type:func rom:0xF7ED0 +SetNpcImgFXFlags = 0x802CFE2C; // type:func rom:0xF7FCC +SetNpcPaletteSwapMode = 0x802CFE80; // type:func rom:0xF8020 +SetNpcPaletteSwapLower = 0x802CFEEC; // type:func rom:0xF808C +SetNpcPaletteSwapping = 0x802CFFC0; // type:func rom:0xF8160 +SetNpcDecoration = 0x802D0118; // type:func rom:0xF82B8 +PlaySoundAtNpc = 0x802D01AC; // type:func rom:0xF834C +SetNpcRenderMode = 0x802D0244; // type:func rom:0xF83E4 +SpeakToPlayer = 0x802D02B0; // type:func rom:0xF8450 +_show_message = 0x802D0320; // type:func rom:0xF84C0 +EndSpeech = 0x802D02CC; // type:func rom:0xF846C +ContinueSpeech = 0x802D02E8; // type:func rom:0xF8488 +SpeakToNpc = 0x802D0304; // type:func rom:0xF84A4 +ShowMessageAtScreenPos = 0x802D0894; // type:func rom:0xF8A34 +ShowMessageAtWorldPos = 0x802D095C; // type:func rom:0xF8AFC +CloseMessage = 0x802D0A98; // type:func rom:0xF8C38 +SwitchMessage = 0x802D0AFC; // type:func rom:0xF8C9C +ShowChoice = 0x802D0B6C; // type:func rom:0xF8D0C +CloseChoice = 0x802D0BF8; // type:func rom:0xF8D98 +CancelMessage = 0x802D0C20; // type:func rom:0xF8DC0 +cancel_current_message = 0x802D0C48; // type:func rom:0xF8DE8 +SetMessageImages = 0x802D0C70; // type:func rom:0xF8E10 +func_802D0C94 = 0x802D0C94; // type:func rom:0xF8E34 +SetMessageText = 0x802D0CEC; // type:func rom:0xF8E8C +SetMessageValue = 0x802D0D44; // type:func rom:0xF8EE4 +playerNpc = 0x802D9D20; // rom:0x101EC0 +HidePlayerShadow = 0x802D0DA0; // type:func rom:0xF8F40 +DisablePlayerPhysics = 0x802D0DE4; // type:func rom:0xF8F84 +DisablePlayerInput = 0x802D0E28; // type:func rom:0xF8FC8 +SetPlayerPos = 0x802D0EF0; // type:func rom:0xF9090 +SetPlayerCollisionSize = 0x802D0FB0; // type:func rom:0xF9150 +SetPlayerSpeed = 0x802D1024; // type:func rom:0xF91C4 +SetPlayerJumpscale = 0x802D1054; // type:func rom:0xF91F4 +SetPlayerAnimation = 0x802D1084; // type:func rom:0xF9224 +SetPlayerActionState = 0x802D10D8; // type:func rom:0xF9278 +SetPlayerAnimationSpeed = 0x802D1104; // type:func rom:0xF92A4 +PlayerMoveTo = 0x802D1134; // type:func rom:0xF92D4 +func_802D1270 = 0x802D1270; // type:func rom:0xF9410 +func_802D1380 = 0x802D1380; // type:func rom:0xF9520 +player_jump = 0x802D14E0; // type:func rom:0xF9680 +PlayerJump = 0x802D18E8; // type:func rom:0xF9A88 +PlayerJump1 = 0x802D1904; // type:func rom:0xF9AA4 +PlayerJump2 = 0x802D1920; // type:func rom:0xF9AC0 +InterpPlayerYaw = 0x802D193C; // type:func rom:0xF9ADC +PlayerFaceNpc = 0x802D1B04; // type:func rom:0xF9CA4 +GetPlayerTargetYaw = 0x802D1D28; // type:func rom:0xF9EC8 +SetPlayerFlagBits = 0x802D1D60; // type:func rom:0xF9F00 +GetPlayerActionState = 0x802D1DD0; // type:func rom:0xF9F70 +GetPlayerPos = 0x802D1DFC; // type:func rom:0xF9F9C +GetPlayerAnimation = 0x802D1E94; // type:func rom:0xFA034 +FullyRestoreHPandFP = 0x802D1EC0; // type:func rom:0xFA060 +FullyRestoreSP = 0x802D1EE0; // type:func rom:0xFA080 +EnablePartner = 0x802D1EFC; // type:func rom:0xFA09C +DisablePartner = 0x802D1F38; // type:func rom:0xFA0D8 +UseEntryHeading = 0x802D1F70; // type:func rom:0xFA110 +func_802D2148 = 0x802D2148; // type:func rom:0xFA2E8 +UseExitHeading = 0x802D216C; // type:func rom:0xFA30C +func_802D23F8 = 0x802D23F8; // type:func rom:0xFA598 +WaitForPlayerTouchingFloor = 0x802D244C; // type:func rom:0xFA5EC +func_802D2484 = 0x802D2484; // type:func rom:0xFA624 +IsPlayerOnValidFloor = 0x802D249C; // type:func rom:0xFA63C +WaitForPlayerMoveToComplete = 0x802D24F4; // type:func rom:0xFA694 +WaitForPlayerInputEnabled = 0x802D2508; // type:func rom:0xFA6A8 +UpdatePlayerImgFX = 0x802D2520; // type:func rom:0xFA6C0 +SetPlayerImgFXFlags = 0x802D286C; // type:func rom:0xFAA0C +FacePlayerTowardPoint = 0x802D2884; // type:func rom:0xFAA24 +DisablePulseStone = 0x802D2AA8; // type:func rom:0xFAC48 +GetPartnerInUse = 0x802D2B0C; // type:func rom:0xFACAC +ForceUsePartner = 0x802D2B50; // type:func rom:0xFACF0 +InterruptUsePartner = 0x802D2B6C; // type:func rom:0xFAD0C +Disable8bitMario = 0x802D2B88; // type:func rom:0xFAD28 +func_802D2C14 = 0x802D2C14; // type:func rom:0xFADB4 +SetPlayerPushVelocity = 0x802D2C40; // type:func rom:0xFADE0 +PlaySoundAtPlayer = 0x802D2CD8; // type:func rom:0xFAE78 +virtual_entity_appendGfx_quad = 0x802D2D30; // type:func rom:0xFAED0 +virtual_entity_render_quad = 0x802D2ED4; // type:func rom:0xFB074 +virtual_entity_move_polar = 0x802D2F34; // type:func rom:0xFB0D4 +virtual_entity_list_update = 0x802D2FCC; // type:func rom:0xFB16C +virtual_entity_list_render_world = 0x802D3028; // type:func rom:0xFB1C8 +virtual_entity_list_render_UI = 0x802D31E0; // type:func rom:0xFB380 +InitVirtualEntityList = 0x802D3398; // type:func rom:0xFB538 +CreateVirtualEntityAt = 0x802D33D4; // type:func rom:0xFB574 +CreateVirtualEntity = 0x802D3474; // type:func rom:0xFB614 +CreateVirtualEntity_ALT = 0x802D354C; // type:func rom:0xFB6EC +DeleteVirtualEntity = 0x802D3624; // type:func rom:0xFB7C4 +SetVirtualEntityRenderCommands = 0x802D3674; // type:func rom:0xFB814 +SetVirtualEntityPosition = 0x802D36E0; // type:func rom:0xFB880 +GetVirtualEntityPosition = 0x802D378C; // type:func rom:0xFB92C +SetVirtualEntityRotation = 0x802D3840; // type:func rom:0xFB9E0 +SetVirtualEntityScale = 0x802D38EC; // type:func rom:0xFBA8C +SetVirtualEntityMoveSpeed = 0x802D3998; // type:func rom:0xFBB38 +SetVirtualEntityJumpGravity = 0x802D39FC; // type:func rom:0xFBB9C +VirtualEntityMoveTo = 0x802D3A60; // type:func rom:0xFBC00 +VirtualEntityJumpTo = 0x802D3C58; // type:func rom:0xFBDF8 +VirtualEntityLandJump = 0x802D3EB8; // type:func rom:0xFC058 +SetVirtualEntityFlags = 0x802D3F74; // type:func rom:0xFC114 +SetVirtualEntityFlagBits = 0x802D3FC8; // type:func rom:0xFC168 +SetVirtualEntityRenderMode = 0x802D4050; // type:func rom:0xFC1F0 +virtual_entity_get_by_index = 0x802D4164; // type:func rom:0xFC304 +virtual_entity_create_at_index = 0x802D417C; // type:func rom:0xFC31C +virtual_entity_create = 0x802D420C; // type:func rom:0xFC3AC +ALT_virtual_entity_create = 0x802D42AC; // type:func rom:0xFC44C +virtual_entity_set_pos = 0x802D4364; // type:func rom:0xFC504 +virtual_entity_set_scale = 0x802D43AC; // type:func rom:0xFC54C +virtual_entity_set_rotation = 0x802D43D0; // type:func rom:0xFC570 +virtual_entity_delete_by_index = 0x802D43F4; // type:func rom:0xFC594 +virtual_entity_delete_by_ref = 0x802D4434; // type:func rom:0xFC5D4 +clear_virtual_entity_list = 0x802D4488; // type:func rom:0xFC628 +init_virtual_entity_list = 0x802D4560; // type:func rom:0xFC700 +MakeLerp = 0x802D45B0; // type:func rom:0xFC750 +UpdateLerp = 0x802D462C; // type:func rom:0xFC7CC +RandInt = 0x802D46B0; // type:func rom:0xFC850 +GetAngleBetweenNPCs = 0x802D4708; // type:func rom:0xFC8A8 +GetAngleToNPC = 0x802D47B4; // type:func rom:0xFC954 +GetAngleToPlayer = 0x802D4830; // type:func rom:0xFC9D0 +AwaitPlayerApproach = 0x802D48AC; // type:func rom:0xFCA4C +IsPlayerWithin = 0x802D4964; // type:func rom:0xFCB04 +AwaitPlayerLeave = 0x802D4A5C; // type:func rom:0xFCBFC +AddVectorPolar = 0x802D4B14; // type:func rom:0xFCCB4 +func_802D4BDC = 0x802D4BDC; // type:func rom:0xFCD7C +func_802D4C4C = 0x802D4C4C; // type:func rom:0xFCDEC +func_802D4CC4 = 0x802D4CC4; // type:func rom:0xFCE64 +func_802D4D14 = 0x802D4D14; // type:func rom:0xFCEB4 +func_802D4D88 = 0x802D4D88; // type:func rom:0xFCF28 +load_path_data = 0x802D4DAC; // type:func rom:0xFCF4C +get_path_position = 0x802D5270; // type:func rom:0xFD410 +LoadPath = 0x802D5430; // type:func rom:0xFD5D0 +GetNextPathPos = 0x802D5524; // type:func rom:0xFD6C4 +GetDist2D = 0x802D5770; // type:func rom:0xFD910 +SetTimeFreezeMode = 0x802D5830; // type:func rom:0xFD9D0 +ModifyGlobalOverrideFlags = 0x802D585C; // type:func rom:0xFD9FC +SetValueByRef = 0x802D58E0; // type:func rom:0xFDA80 +GetValueByRef = 0x802D593C; // type:func rom:0xFDADC +EnableWorldStatusBar = 0x802D5998; // type:func rom:0xFDB38 +ShowWorldStatusBar = 0x802D59DC; // type:func rom:0xFDB7C +SetGameMode = 0x802D5A28; // type:func rom:0xFDBC8 +ClampAngleInt = 0x802D5A58; // type:func rom:0xFDBF8 +ClampAngleFloat = 0x802D5AB4; // type:func rom:0xFDC54 +EVS_MusicEventMonitor = 0x802D9D34; // rom:0x101ED4 +MusicEventPollCount = 0x802D9D30; // rom:0x101ED0 +PollMusicEvents = 0x802D5B10; // type:func rom:0xFDCB0 +RegisterMusicEvents = 0x802D5C70; // type:func rom:0xFDE10 +FadeOutMusic = 0x802D5CE0; // type:func rom:0xFDE80 +SetMusicTrack = 0x802D5D4C; // type:func rom:0xFDEEC +FadeInMusic = 0x802D5DF4; // type:func rom:0xFDF94 +EnableMusicProximityMix = 0x802D5EE0; // type:func rom:0xFE080 +AdjustMusicProximityMix = 0x802D5F28; // type:func rom:0xFE0C8 +SetMusicTrackVolumes = 0x802D5FA4; // type:func rom:0xFE144 +PopSong = 0x802D5FD8; // type:func rom:0xFE178 +PushSong = 0x802D5FF8; // type:func rom:0xFE198 +PopBattleSong = 0x802D6050; // type:func rom:0xFE1F0 +PushBattleSong = 0x802D6070; // type:func rom:0xFE210 +SetBattleSong = 0x802D6090; // type:func rom:0xFE230 +ClearAmbientSounds = 0x802D60E8; // type:func rom:0xFE288 +PlayAmbientSounds = 0x802D611C; // type:func rom:0xFE2BC +PlaySound = 0x802D6150; // type:func rom:0xFE2F0 +PlaySoundWithVolume = 0x802D617C; // type:func rom:0xFE31C +PlaySoundAt = 0x802D61DC; // type:func rom:0xFE37C +StopSound = 0x802D62B8; // type:func rom:0xFE458 +StopTrackingSoundPos = 0x802D62E4; // type:func rom:0xFE484 +UseDoorSounds = 0x802D6314; // type:func rom:0xFE4B4 +UseRoomDoorSounds = 0x802D6340; // type:func rom:0xFE4E0 +PlaySoundAtF = 0x802D636C; // type:func rom:0xFE50C +ShowKeyChoicePopup = 0x802D6420; // type:func rom:0xFE5C0 +ShowConsumableChoicePopup = 0x802D663C; // type:func rom:0xFE7DC +RemoveKeyItemAt = 0x802D6858; // type:func rom:0xFE9F8 +RemoveItemAt = 0x802D688C; // type:func rom:0xFEA2C +AddKeyItem = 0x802D68C8; // type:func rom:0xFEA68 +CloseChoicePopup = 0x802D6954; // type:func rom:0xFEAF4 +HasKeyItem = 0x802D699C; // type:func rom:0xFEB3C +FindKeyItem = 0x802D6A14; // type:func rom:0xFEBB4 +AddItem = 0x802D6A98; // type:func rom:0xFEC38 +ClearVariable = 0x802D6AF0; // type:func rom:0xFEC90 +FindItem = 0x802D6B18; // type:func rom:0xFECB8 +RemoveItem = 0x802D6B9C; // type:func rom:0xFED3C +CountFortessKeys = 0x802D6C4C; // type:func rom:0xFEDEC +RemoveFortressKeys = 0x802D6C94; // type:func rom:0xFEE34 +MakeItemEntity = 0x802D6CC0; // type:func rom:0xFEE60 +DropItemEntity = 0x802D6DC0; // type:func rom:0xFEF60 +DropResizableItemEntity = 0x802D6EC0; // type:func rom:0xFF060 +RemoveItemEntity = 0x802D6FCC; // type:func rom:0xFF16C +AddBadge = 0x802D6FF8; // type:func rom:0xFF198 +RemoveBadge = 0x802D7050; // type:func rom:0xFF1F0 +SetItemPos = 0x802D70D0; // type:func rom:0xFF270 +SetItemFlags = 0x802D7194; // type:func rom:0xFF334 +SetItemAlpha = 0x802D721C; // type:func rom:0xFF3BC +AddCoin = 0x802D7278; // type:func rom:0xFF418 +AddStarPoints = 0x802D72B4; // type:func rom:0xFF454 +AddStarPieces = 0x802D72F0; // type:func rom:0xFF490 +GetItemPower = 0x802D732C; // type:func rom:0xFF4CC +ShowGotItem = 0x802D73A4; // type:func rom:0xFF544 +show_start_recovery_shimmer = 0x802D7460; // type:func rom:0xFF600 +show_recovery_shimmer = 0x802D74C0; // type:func rom:0xFF660 +ShowStartRecoveryShimmer = 0x802D7520; // type:func rom:0xFF6C0 +ShowRecoveryShimmer = 0x802D75D8; // type:func rom:0xFF778 +func_802D7690 = 0x802D7690; // type:func rom:0xFF830 +ShowEmote = 0x802D78A0; // type:func rom:0xFFA40 +RemoveEffect = 0x802D7AE4; // type:func rom:0xFFC84 +DismissEffect = 0x802D7B10; // type:func rom:0xFFCB0 +DismissItemOutline = 0x802D7B44; // type:func rom:0xFFCE4 +func_802D7B74 = 0x802D7B74; // type:func rom:0xFFD14 +InterpMotionBlurParams = 0x802D7BA4; // type:func rom:0xFFD44 +EVS_UpdateMotionBlurParams = 0x802D9D50; // rom:0x101EF0 +SetMotionBlurParams = 0x802D7CF8; // type:func rom:0xFFE98 +ShowSweat = 0x802D7E08; // type:func rom:0xFFFA8 +ShowSleepBubble = 0x802D8028; // type:func rom:0x1001C8 +SetSleepBubbleTimeLeft = 0x802D8248; // type:func rom:0x1003E8 +PlayEffect = 0x802D829C; // type:func rom:0x10043C +D_802D9D70 = 0x802D9D70; // rom:0x101F10 +D_802D9D71 = 0x802D9D71; // rom:0x101F11 +StarShrineLightBeamAlpha = 0x802D9D72; // rom:0x101F12 +SetSpriteShading = 0x802D9700; // type:func rom:0x1018A0 +EnableSpriteShading = 0x802D9A3C; // type:func rom:0x101BDC +GetDemoState = 0x802D9A90; // type:func rom:0x101C30 +DemoPressButton = 0x802D9AC0; // type:func rom:0x101C60 +DemoReleaseButton = 0x802D9AF8; // type:func rom:0x101C98 +DemoSetButtons = 0x802D9B34; // type:func rom:0x101CD4 +DemoJoystickRadial = 0x802D9B64; // type:func rom:0x101D04 +DemoJoystickXY = 0x802D9C10; // type:func rom:0x101DB0 diff --git a/ver/jp/undefined_syms.txt b/ver/jp/undefined_syms.txt index abfe9be47ca..9ca56020842 100644 --- a/ver/jp/undefined_syms.txt +++ b/ver/jp/undefined_syms.txt @@ -7,6 +7,8 @@ D_A450000C = 0xA450000C; D_A4600010 = 0xA4600010; D_A4800018 = 0xA4800018; +sprite_shading_profiles_data_ROM_START = sprite_shading_profiles_ROM_START + 0x1D0; + obfuscated_obfuscation_shims_ROM_START = 0xF79E611F; filemenu_ROM_START = 0x0016B550; @@ -48,19 +50,6 @@ __osHwIntTable = 0x800958A0; // main.bss // subsequent segments -spr_init_sprites = 0x80111448; -spr_render_init = 0x801115B0; -spr_update_player_sprite = 0x801115DC; -spr_draw_player_sprite = 0x80111790; -func_802DDEC4 = 0x80111A14; -spr_load_npc_sprite = 0x80111C3C; -spr_update_sprite = 0x80111DFC; -spr_draw_npc_sprite = 0x80111F28; -spr_get_notify_value = 0x80112118; -spr_free_sprite = 0x80112138; -set_npc_imgfx_all = 0x801123E4; -spr_get_npc_palettes = 0x80112590; -spr_get_npc_color_variations = 0x801125BC; update_entities = 0x801148E0; render_entities = 0x801150C4; get_entity_by_index = 0x801157F8; @@ -219,39 +208,6 @@ shim_create_audio_system_obfuscated = 0x802B2000; shim_load_engine_data_obfuscated = 0x802B203C; shim_general_heap_create_obfuscated = 0x802B2078; shim_battle_heap_create_obfuscated = 0x802B20B4; -clear_script_list = 0x802C31DC; -init_script_list = 0x802C32EC; -start_script = 0x802C33E0; -start_script_in_group = 0x802C35D0; -update_scripts = 0x802C3D74; -func_802C3EE4 = 0x802C3EE4; -kill_script = 0x802C3F3C; -kill_script_by_ID = 0x802C40AC; -does_script_exist = 0x802C4164; -suspend_all_script = 0x802C4420; -resume_all_script = 0x802C448C; -suspend_all_group = 0x802C45E8; -resume_all_group = 0x802C4648; -get_script_by_id = 0x802C47A8; -set_script_flags = 0x802C47E8; -clear_script_flags = 0x802C4880; -evt_get_variable = 0x802C7ABC; -evt_set_variable = 0x802C8098; -evt_get_float_variable = 0x802C842C; -resolve_npc = 0x802CDAC0; -CreateNpc = 0x802CDBA4; -DeleteNpc = 0x802CDC1C ; -SetNpcPos = 0x802CDCB0; -SetNpcRotation = 0x802CDDB0; -SetNpcAnimation = 0x802CE0F4; -SetNpcYaw = 0x802CEA84; -SetNpcFlagBits = 0x802CF060; -GetNpcPos = 0x802CF0F4; -SetNpcImgFXParams = 0x802CFD30; -GetPlayerPos = 0x802D1DFC; -PlaySound = 0x802D6150; -D_802D9D70 = 0x802D9D70; -D_802D9D71 = 0x802D9D71; ui_msg_frame_a_1_1_png = 0x802E7110; ui_msg_frame_a_1_2_png = 0x802E7130; ui_msg_frame_a_1_3_png = 0x802E7150; @@ -992,8 +948,6 @@ pulse_stone_ROM_END = 0xE2B440; i_spy_ROM_START = 0xE2B440; i_spy_ROM_END = 0xE2C0F0; -set_player_imgfx_comp = 0x80111A34; -set_player_imgfx_all = 0x80111B48; WorldTattleInteractionID = 0x802BDF60; set_standard_shadow_scale = 0x80117A6C; set_peach_shadow_scale = 0x80117BE4; @@ -1009,7 +963,6 @@ appendGfx_speech_bubble = 0x802B71C8; interact_speech_setup = 0x802B70B4; appendGfx_pulse_stone_icon = 0x802B71D4; appendGfx_ispy_icon = 0x802b7000; -exec_ShakeCam1 = 0x802CB56C; pulse_stone_notification_setup = 0x802B7140; sfx_play_sound_at_player = 0x8014ED88; world_lakilester_can_dismount = 0x802BD7DC; @@ -1231,3 +1184,79 @@ imgfx_init = 0x8013F42C; func_8013A4D0 = 0x8013F580; gSpriteShadingProfile = 0x80156388; imgfx_get_free_instances = 0x8013F7B4; +create_trigger = 0x8014A81C; +is_another_trigger_bound = 0x8014AD1C; +get_area_byte = 0x8014A700; +set_global_byte = 0x8014A5D0; +get_area_flag = 0x8014A6A0; +clear_global_flag = 0x8014A490; +get_global_byte = 0x8014A5E8; +set_area_flag = 0x8014A650; +clear_area_flag = 0x8014A5FC; +delete_trigger = 0x8014ACA4; +set_area_byte = 0x8014A6E8; +get_model_list_index_from_tree_index = 0x80120220; +set_main_pan_u = 0x80120E2C; +mdl_group_set_visibility = 0x801209D0; +mdl_make_local_vertex_copy = 0x80121374; +clone_model = 0x80120900; +set_custom_gfx = 0x80120EC4; +get_transform_group = 0x801203D0; +get_model_center_and_size = 0x801202FC; +gCurrentModels = 0x8015632C; +set_aux_pan_v = 0x80120E74; +get_transform_group_index = 0x801202A0; +set_main_pan_v = 0x80120E44; +mdl_make_transform_group = 0x8012058C; +set_tex_panner = 0x80120E24; +enable_transform_group = 0x801207E0; +set_custom_gfx_builders = 0x80120EE0; +set_mdl_custom_gfx_set = 0x80120E8C; +gCurrentModelTreeNodeInfo = 0x8009A5D4; +disable_transform_group = 0x80120870; +set_aux_pan_u = 0x80120E5C; +play_model_animation_starting_from = 0x801253A8; +render_animated_model = 0x80124514; +get_animator_node_with_id = 0x801251A8; +create_model_animator = 0x801236C8; +get_animator_node_for_tree_index = 0x80125184; +get_animator_by_index = 0x801251F0; +delete_model_animator = 0x80123648; +guMtxIdent = 0x80067420; +update_model_animator_with_transform = 0x80123C64; +play_model_animation = 0x80125358; +load_mesh_animator_tree = 0x80125684; +load_model_animator_tree = 0x801255BC; +set_message_text_var = 0x8012AD9C; +close_message = 0x8012AED0; +msg_printer_load_msg = 0x8012ACC8; +cancel_message = 0x8012AD68; +set_message_images = 0x8012AD8C; +draw_entity_model_E = 0x80127498; +clear_entity_model_flags = 0x80128134; +set_entity_model_render_command_list = 0x80127F8C; +draw_entity_model_A = 0x80126EF8; +set_entity_model_flags = 0x801280F8; +load_entity_model = 0x80125EF0; +free_entity_model_by_index = 0x8012800C; +exec_entity_model_commandlist = 0x80126114; +create_worker_backUI = 0x80128530; +ALT_load_entity_model = 0x80125FF4; +bgm_pop_song = 0x8014FE54; +snd_stop_tracking_env_sound_pos = 0x8014EB1C; +bgm_push_song = 0x8014FEA8; +sfx_play_sound_with_params = 0x8014EB68; +bgm_adjust_proximity = 0x8014FB04; +bgm_set_track_volumes = 0x8014FBBC; +gCurrentRoomDoorSounds = 0x80156368; +gCurrentDoorSounds = 0x801563A0; +play_ambient_sounds = 0x8014C418; +gMusicSettings = 0x8015EA70; +func_8014A964 = 0x8014FA14; +set_item_entity_flags = 0x801392B8; +make_item_entity_nodelay = 0x80136C04; +make_item_entity_at_player = 0x80136C70; +get_item_entity = 0x801360D8; +remove_item_entity_by_index = 0x80138B6C; +get_screen_overlay_params = 0x8013CE70; +sprite_shading_profiles_ROM_START = 0x0031DF90; From 8913179a5dbcc8d9eaf2f97361a7d86489d95c28 Mon Sep 17 00:00:00 2001 From: AltoXorg <56553686+Alto1772@users.noreply.github.com> Date: Thu, 14 Dec 2023 14:35:23 +0800 Subject: [PATCH 05/18] entity --- src/entity/Block.c | 19 ++ src/entity/BlueWarpPipe.c | 5 + src/entity/Chest.c | 5 + src/entity/HeartBlock.c | 7 + src/entity/HiddenPanel.c | 5 + src/entity/ItemBlock.c | 19 ++ src/entity/SaveBlock.c | 5 + src/entity/ShatteringBlock.c | 11 + src/entity/Signpost.c | 5 + src/entity/SimpleSpring.c | 11 + src/entity/SuperBlock.c | 11 + src/entity/Switch.c | 9 + src/entity/WoodenCrate.c | 5 + ver/jp/splat.yaml | 42 +++- ver/jp/symbol_addrs.txt | 400 +++++++++++++++++++++++++++++++++++ ver/jp/undefined_syms.txt | 154 ++++++++++++++ 16 files changed, 711 insertions(+), 2 deletions(-) diff --git a/src/entity/Block.c b/src/entity/Block.c index e6c51dfe420..ac44dcaed40 100644 --- a/src/entity/Block.c +++ b/src/entity/Block.c @@ -3,6 +3,25 @@ #include "ld_addrs.h" #include "entity.h" +#if VERSION_JP // TODO remove once segments are split +extern Addr entity_model_BrickBlock_ROM_END; +extern Addr entity_model_BrickBlock_ROM_START; +extern Addr entity_model_Hammer1Block_ROM_END; +extern Addr entity_model_Hammer1Block_ROM_START; +extern Addr entity_model_Hammer2Block_ROM_END; +extern Addr entity_model_Hammer2Block_ROM_START; +extern Addr entity_model_Hammer3Block_ROM_END; +extern Addr entity_model_Hammer3Block_ROM_START; +extern Addr entity_model_InertRedBlock_ROM_END; +extern Addr entity_model_InertRedBlock_ROM_START; +extern Addr entity_model_InertYellowBlock_ROM_END; +extern Addr entity_model_InertYellowBlock_ROM_START; +extern Addr entity_model_PowBlock_ROM_END; +extern Addr entity_model_PowBlock_ROM_START; +extern Addr entity_model_PushBlock_ROM_END; +extern Addr entity_model_PushBlock_ROM_START; +#endif + extern Gfx Entity_InertYellowBlock_Render[]; extern Gfx Entity_InertRedBlock_Render[]; extern Gfx Entity_BrickBlock_Render[]; diff --git a/src/entity/BlueWarpPipe.c b/src/entity/BlueWarpPipe.c index c5c8b310a36..becd7cbf642 100644 --- a/src/entity/BlueWarpPipe.c +++ b/src/entity/BlueWarpPipe.c @@ -5,6 +5,11 @@ #include "entity.h" #include "sprite/player.h" +#if VERSION_JP // TODO remove once segments are split +extern Addr entity_model_BlueWarpPipe_ROM_END; +extern Addr entity_model_BlueWarpPipe_ROM_START; +#endif + extern Gfx Entity_BlueWarpPipe_RenderPipe[]; extern Gfx Entity_BlueWarpPipe_RenderBase[]; diff --git a/src/entity/Chest.c b/src/entity/Chest.c index e0010603650..bd839b895b8 100644 --- a/src/entity/Chest.c +++ b/src/entity/Chest.c @@ -4,6 +4,11 @@ #include "entity.h" #include "sprite/player.h" +#if VERSION_JP // TODO remove once segments are split +extern Addr entity_model_Chest_ROM_END; +extern Addr entity_model_Chest_ROM_START; +#endif + extern EntityScript Entity_Chest_ScriptOpened; extern Gfx Entity_Chest_RenderBox[]; diff --git a/src/entity/HeartBlock.c b/src/entity/HeartBlock.c index ef7c83db1c9..42d6effded8 100644 --- a/src/entity/HeartBlock.c +++ b/src/entity/HeartBlock.c @@ -4,6 +4,13 @@ #include "ld_addrs.h" #include "entity.h" +#if VERSION_JP // TODO remove once segments are split +extern Addr entity_model_HeartBlockContent_ROM_END; +extern Addr entity_model_HeartBlockContent_ROM_START; +extern Addr entity_model_HeartBlock_ROM_END; +extern Addr entity_model_HeartBlock_ROM_START; +#endif + extern EntityModelScript Entity_HeartBlockContent_RenderScriptIdle; extern EntityModelScript Entity_HeartBlockContent_RenderScriptAfterHit; extern EntityModelScript Entity_HeartBlockContent_RenderScriptHit; diff --git a/src/entity/HiddenPanel.c b/src/entity/HiddenPanel.c index 846f3ec4cdc..1f234451fd4 100644 --- a/src/entity/HiddenPanel.c +++ b/src/entity/HiddenPanel.c @@ -2,6 +2,11 @@ #include "ld_addrs.h" #include "entity.h" +#if VERSION_JP // TODO remove once segments are split +extern Addr entity_model_HiddenPanel_ROM_END; +extern Addr entity_model_HiddenPanel_ROM_START; +#endif + s32 entity_HiddenPanel_is_item_on_top(Entity*); void entity_HiddenPanel_flip_over(Entity*); diff --git a/src/entity/ItemBlock.c b/src/entity/ItemBlock.c index dbcb6797907..37aa7b292fb 100644 --- a/src/entity/ItemBlock.c +++ b/src/entity/ItemBlock.c @@ -5,6 +5,25 @@ #include "entity.h" #include "model.h" +#if VERSION_JP // TODO remove once segments are split +extern Addr entity_model_HitFloatingYellowBlock_anim_ROM_END; +extern Addr entity_model_HitFloatingYellowBlock_anim_ROM_START; +extern Addr entity_model_HitFloatingYellowBlock_gfx_ROM_END; +extern Addr entity_model_HitFloatingYellowBlock_gfx_ROM_START; +extern Addr entity_model_HitRedBlock_anim_ROM_END; +extern Addr entity_model_HitRedBlock_anim_ROM_START; +extern Addr entity_model_HitRedBlock_gfx_ROM_END; +extern Addr entity_model_HitRedBlock_gfx_ROM_START; +extern Addr entity_model_HitYellowBlock_anim_ROM_END; +extern Addr entity_model_HitYellowBlock_anim_ROM_START; +extern Addr entity_model_HitYellowBlock_gfx_ROM_END; +extern Addr entity_model_HitYellowBlock_gfx_ROM_START; +extern Addr entity_model_RedBlock_ROM_END; +extern Addr entity_model_RedBlock_ROM_START; +extern Addr entity_model_YellowBlock_ROM_END; +extern Addr entity_model_YellowBlock_ROM_START; +#endif + extern Gfx Entity_YellowBlock_Render[]; extern Gfx Entity_RedBlock_Render[]; extern AnimScript Entity_HitYellowBlock_AnimationHit; diff --git a/src/entity/SaveBlock.c b/src/entity/SaveBlock.c index c878e590017..364ca3e831c 100644 --- a/src/entity/SaveBlock.c +++ b/src/entity/SaveBlock.c @@ -4,6 +4,11 @@ #include "entity.h" #include "message_ids.h" +#if VERSION_JP // TODO remove once segments are split +extern Addr entity_model_SaveBlock_ROM_END; +extern Addr entity_model_SaveBlock_ROM_START; +#endif + extern Mtx Entity_SaveBlock_Mtx; extern Gfx Entity_SaveBlock_RenderContent[]; extern Gfx Entity_SaveBlock_RenderBlock[]; diff --git a/src/entity/ShatteringBlock.c b/src/entity/ShatteringBlock.c index 3fe188dd897..8d0cb9120f8 100644 --- a/src/entity/ShatteringBlock.c +++ b/src/entity/ShatteringBlock.c @@ -2,6 +2,17 @@ #include "ld_addrs.h" #include "entity.h" +#if VERSION_JP // TODO remove once segments are split +extern Addr entity_model_ShatteringBrickBlock_ROM_END; +extern Addr entity_model_ShatteringBrickBlock_ROM_START; +extern Addr entity_model_ShatteringHammer1Block_ROM_END; +extern Addr entity_model_ShatteringHammer1Block_ROM_START; +extern Addr entity_model_ShatteringHammer2Block_ROM_END; +extern Addr entity_model_ShatteringHammer2Block_ROM_START; +extern Addr entity_model_ShatteringHammer3Block_ROM_END; +extern Addr entity_model_ShatteringHammer3Block_ROM_START; +#endif + extern Mtx Entity_ShatteringHammer1Block_FragmentsMatrices[]; extern Gfx* Entity_ShatteringHammer1Block_FragmentsRender[]; extern Mtx Entity_ShatteringHammer2Block_FragmentsMatrices[]; diff --git a/src/entity/Signpost.c b/src/entity/Signpost.c index 4a64e25e88a..2e570c258d6 100644 --- a/src/entity/Signpost.c +++ b/src/entity/Signpost.c @@ -2,6 +2,11 @@ #include "ld_addrs.h" #include "entity.h" +#if VERSION_JP // TODO remove once segments are split +extern Addr entity_model_Signpost_ROM_END; +extern Addr entity_model_Signpost_ROM_START; +#endif + extern Gfx Entity_Signpost_Render[]; void entity_Signpost_idle(Entity* entity) { diff --git a/src/entity/SimpleSpring.c b/src/entity/SimpleSpring.c index 4bbcee1c46a..883e792f98a 100644 --- a/src/entity/SimpleSpring.c +++ b/src/entity/SimpleSpring.c @@ -3,6 +3,17 @@ #include "animation_script.h" #include "ld_addrs.h" +#if VERSION_JP // TODO remove once segments are split +extern Addr entity_model_ScriptSpring_anim_ROM_END; +extern Addr entity_model_ScriptSpring_anim_ROM_START; +extern Addr entity_model_ScriptSpring_gfx_ROM_END; +extern Addr entity_model_ScriptSpring_gfx_ROM_START; +extern Addr entity_model_SimpleSpring_anim_ROM_END; +extern Addr entity_model_SimpleSpring_anim_ROM_START; +extern Addr entity_model_SimpleSpring_gfx_ROM_END; +extern Addr entity_model_SimpleSpring_gfx_ROM_START; +#endif + extern StaticAnimatorNode* Entity_ScriptSpring_Mesh[]; extern AnimScript Entity_ScriptSpring_AnimLaunch; extern AnimScript Entity_ScriptSpring_AnimIdle; diff --git a/src/entity/SuperBlock.c b/src/entity/SuperBlock.c index 4a53ee18223..8e6c968b727 100644 --- a/src/entity/SuperBlock.c +++ b/src/entity/SuperBlock.c @@ -3,6 +3,17 @@ #include "ld_addrs.h" #include "entity.h" +#if VERSION_JP // TODO remove once segments are split +extern Addr entity_model_SuperBlockContent_ROM_END; +extern Addr entity_model_SuperBlockContent_ROM_START; +extern Addr entity_model_SuperBlock_ROM_END; +extern Addr entity_model_SuperBlock_ROM_START; +extern Addr entity_model_UltraBlockContent_ROM_END; +extern Addr entity_model_UltraBlockContent_ROM_START; +extern Addr entity_model_UltraBlock_ROM_END; +extern Addr entity_model_UltraBlock_ROM_START; +#endif + extern EntityBlueprint Entity_SuperBlockContent; extern Gfx Entity_SuperBlock_Render[]; diff --git a/src/entity/Switch.c b/src/entity/Switch.c index da52e411b5d..1883764d987 100644 --- a/src/entity/Switch.c +++ b/src/entity/Switch.c @@ -3,6 +3,15 @@ #include "ld_addrs.h" #include "entity.h" +#if VERSION_JP // TODO remove once segments are split +extern Addr entity_model_BlueSwitch_ROM_END; +extern Addr entity_model_BlueSwitch_ROM_START; +extern Addr entity_model_GreenStompSwitch_ROM_END; +extern Addr entity_model_GreenStompSwitch_ROM_START; +extern Addr entity_model_RedSwitch_ROM_END; +extern Addr entity_model_RedSwitch_ROM_START; +#endif + #define REFLECTED_SWITCH_HIDDEN 1 #define REFLECTED_SWITCH_LINKED 2 diff --git a/src/entity/WoodenCrate.c b/src/entity/WoodenCrate.c index eec2d87e8d7..b695241b912 100644 --- a/src/entity/WoodenCrate.c +++ b/src/entity/WoodenCrate.c @@ -3,6 +3,11 @@ #include "ld_addrs.h" #include "entity.h" +#if VERSION_JP // TODO remove once segments are split +extern Addr entity_model_WoodenCrate_ROM_END; +extern Addr entity_model_WoodenCrate_ROM_START; +#endif + extern Gfx Entity_RenderNone[]; extern Gfx Entity_WoodenCrate_Render[]; extern Gfx* Entity_WoodenCrate_FragmentsRender[]; diff --git a/ver/jp/splat.yaml b/ver/jp/splat.yaml index caf7ce82ac2..7b7778150f1 100644 --- a/ver/jp/splat.yaml +++ b/ver/jp/splat.yaml @@ -876,8 +876,46 @@ segments: start: 0x102620 vram: 0x802dbd40 subsegments: - - [0x102620, bin] - - [0x10cc20] + - [auto, c, entity/Shadow] + - [auto, c, entity/SaveBlock] + - [auto, c, entity/Switch] + - [auto, c, entity/ShatteringBlock_common] + - [auto, c, entity/ShatteringBlock] + - [auto, c, entity/Block] + - [auto, c, entity/ItemBlock] + - [auto, c, entity/HeartBlock] + - [auto, c, entity/SuperBlock] + - [auto, c, entity/SimpleSpring] + - [auto, c, entity/HiddenPanel] + - [auto, c, entity/Chest] + - [auto, c, entity/WoodenCrate] + - [auto, c, entity/BlueWarpPipe] + - [auto, c, entity/Signpost] + - start: 0x10AA00 + type: .data + name: entity/Shadow + subsegments: + - [0x10AA00, i4, entity/shadow/square, 16, 16] + - [0x10AA80, i4, entity/shadow/circle, 16, 16] + - [0x10AB00, vtx, entity/vtx/shadow1] + - [0x10AB40, vtx, entity/vtx/shadow2] + - [0x10AB80, i4, entity/shadow/square_big, 32, 32] + - [0x10AD80, i4, entity/shadow/circle_big, 32, 32] + - [0x10AF80] + - [auto, .data, entity/SaveBlock] + - [auto, .data, entity/Switch] + - [auto, .data, entity/ShatteringBlock_common] + - [auto, .data, entity/ShatteringBlock] + - [auto, .data, entity/Block] + - [auto, .data, entity/ItemBlock] + - [auto, .data, entity/HeartBlock] + - [auto, .data, entity/SuperBlock] + - [auto, .data, entity/SimpleSpring] + - [auto, .data, entity/HiddenPanel] + - [auto, .data, entity/Chest] + - [auto, .data, entity/WoodenCrate] + - [auto, .data, entity/BlueWarpPipe] + - [auto, .data, entity/Signpost] - name: font_width type: code diff --git a/ver/jp/symbol_addrs.txt b/ver/jp/symbol_addrs.txt index 02dcb6c1eb7..16612f02e73 100644 --- a/ver/jp/symbol_addrs.txt +++ b/ver/jp/symbol_addrs.txt @@ -1598,3 +1598,403 @@ DemoReleaseButton = 0x802D9AF8; // type:func rom:0x101C98 DemoSetButtons = 0x802D9B34; // type:func rom:0x101CD4 DemoJoystickRadial = 0x802D9B64; // type:func rom:0x101D04 DemoJoystickXY = 0x802D9C10; // type:func rom:0x101DB0 +spr_defaultQuad = 0x80112EE0; // rom:0xA95E0 +SprPauseVp = 0x80112F20; // rom:0xA9620 +SprPauseVpAlt = 0x80112F30; // rom:0xA9630 +D_802DF3F0 = 0x80112F40; // rom:0xA9640 +D_802DF428 = 0x80112F78; // rom:0xA9678 +D_802DF460 = 0x80112FB0; // rom:0xA96B0 +D_802DF490 = 0x80112FE0; // rom:0xA96E0 +spr_animUpdateTimeScale = 0x80113010; // rom:0xA9710 +spr_playerSpriteSets = 0x80113014; // rom:0xA9714 +spr_init_quad_cache = 0x8010F890; // type:func rom:0xA5F90 +D_802DFE44 = 0x80113994; +D_802DFE48 = 0x80113998; +spr_get_cached_quad = 0x8010F8DC; // type:func rom:0xA5FDC +spr_make_quad_for_size = 0x8010F90C; // type:func rom:0xA600C +spr_get_quad_for_size = 0x8010F9C8; // type:func rom:0xA60C8 +spr_clear_quad_cache = 0x8010FB10; // type:func rom:0xA6210 +spr_appendGfx_component_flat = 0x8010FB58; // type:func rom:0xA6258 +spr_appendGfx_component = 0x80110444; // type:func rom:0xA6B44 +D_802DF540 = 0x80113090; +spr_transform_point = 0x80110850; // type:func rom:0xA6F50 +spr_draw_component = 0x80110A2C; // type:func rom:0xA712C +D_802DFEA0 = 0x801139F0; +D_802DF57C = 0x801130CC; +spr_unpack_signed_12bit = 0x80110C2C; // type:func rom:0xA732C +spr_unpack_signed_16bit = 0x80110C4C; // type:func rom:0xA734C +spr_component_update_commands = 0x80110C6C; // type:func rom:0xA736C +SpriteUpdateNotifyValue = 0x801139FC; +spr_component_update_finish = 0x80111184; // type:func rom:0xA7884 +spr_component_update = 0x8011122C; // type:func rom:0xA792C +spr_init_component_anim_state = 0x80111300; // type:func rom:0xA7A00 +spr_init_anim_state = 0x80111370; // type:func rom:0xA7A70 +spr_set_anim_timescale = 0x801113DC; // type:func rom:0xA7ADC +spr_load_player_sprite = 0x801113EC; // type:func rom:0xA7AEC +spr_playerMaxComponents = 0x801130D0; +spr_playerSprites = 0x80113098; +spr_allocateBtlComponentsOnWorldHeap = 0x80113074; +spr_playerCurrentAnimInfo = 0x801130D8; +NpcSpriteInstanceCount = 0x801134A8; +NpcSpriteData = 0x80113100; +SpriteInstances = 0x80113598; +func_802DDA84 = 0x801115D4; // type:func rom:0xA7CD4 +spr_update_player_sprite = 0x801115DC; // type:func rom:0xA7CDC +spr_draw_player_sprite = 0x80111790; // type:func rom:0xA7E90 +func_802DDEC4 = 0x80111A14; // type:func rom:0xA8114 +set_player_imgfx_comp = 0x80111A34; // type:func rom:0xA8134 +spr_get_player_raster_info = 0x80111B94; // type:func rom:0xA8294 +spr_get_player_palettes = 0x80111C10; // type:func rom:0xA8310 +spr_load_npc_sprite = 0x80111C3C; // type:func rom:0xA833C +MaxLoadedSpriteInstanceID = 0x80113080; +spr_update_sprite = 0x80111DFC; // type:func rom:0xA84FC +spr_draw_npc_sprite = 0x80111F28; // type:func rom:0xA8628 +spr_get_notify_value = 0x80112118; // type:func rom:0xA8818 +spr_free_sprite = 0x80112138; // type:func rom:0xA8838 +get_npc_comp_imgfx_idx = 0x80112298; // type:func rom:0xA8998 +set_npc_imgfx_comp = 0x801122D0; // type:func rom:0xA89D0 +set_npc_imgfx_all = 0x801123E4; // type:func rom:0xA8AE4 +spr_get_comp_position = 0x8011242C; // type:func rom:0xA8B2C +spr_get_npc_raster_info = 0x80112528; // type:func rom:0xA8C28 +spr_get_npc_palettes = 0x80112590; // type:func rom:0xA8C90 +spr_get_npc_color_variations = 0x801125BC; // type:func rom:0xA8CBC +D_802DF520 = 0x80113070; +D_802DF528 = 0x80113078; +D_802DF534 = 0x80113084; +D_802DF544 = 0x80113094; +D_802DF584 = 0x801130D4; +D_802DF5AC = 0x801130FC; +D_802DFA44 = 0x80113594; +spr_swizzle_anim_offsets = 0x801125F0; // type:func rom:0xA8CF0 +spr_load_sprite = 0x8011265C; // type:func rom:0xA8D5C +SpriteDataHeader = 0x801147B0; +spr_asset_entry = 0x80113A00; +PlayerRasterLoadDescBuffer = 0x80113A08; +PlayerRasterLoadDescNumLoaded = 0x80113B9C; +PlayerSpriteRasterSets = 0x80114770; +PlayerRasterLoadDescBeginSpriteIndex = 0x80113BA0; +PlayerRasterHeader = 0x80114760; +PlayerRasterLoadDesc = 0x80113BE0; +spr_init_player_raster_cache = 0x801128B0; // type:func rom:0xA8FB0 +PlayerRasterCacheSize = 0x801147A8; +PlayerRasterMaxSize = 0x801147AC; +PlayerRasterCache = 0x801147C0; +spr_get_player_raster = 0x801129F0; // type:func rom:0xA90F0 +spr_update_player_raster_cache = 0x80112B04; // type:func rom:0xA9204 +spr_load_npc_extra_anims = 0x80112B5C; // type:func rom:0xA925C +spr_allocate_components = 0x80112E28; // type:func rom:0xA9528 +D_802D0084 = 0x80113BD4; +D_802E0C1C = 0x8011476C; +D_802E0C6C = 0x801147BC; +entity_Shadow_init = 0x802DBD40; // type:func rom:0x102620 +entity_can_collide_with_jumping_player = 0x802DBD60; // type:func rom:0x102640 +D_802E9170 = 0x802E4120; // rom:0x10AA00 +D_802E91F0 = 0x802E41A0; // rom:0x10AA80 +D_802E9270 = 0x802E4220; // rom:0x10AB00 size:0x40 +D_802E92B0 = 0x802E4260; // rom:0x10AB40 size:0x40 +D_802E92F0 = 0x802E42A0; // rom:0x10AB80 +D_802E94F0 = 0x802E44A0; // rom:0x10AD80 +Entity_Shadow_GfxCommon = 0x802E46A0; // rom:0x10AF80 +Entity_Shadow_LoadTexSquare = 0x802E46E8; // rom:0x10AFC8 +Entity_Shadow_LoadTexCircle = 0x802E4738; // rom:0x10B018 +Entity_RenderSquareShadow = 0x802E4788; // rom:0x10B068 +Entity_RenderCircularShadow = 0x802E47B0; // rom:0x10B090 +Entity_RenderNone = 0x802E47D8; // rom:0x10B0B8 +Entity_RenderNone_Script = 0x802E47E0; // rom:0x10B0C0 +D_802E9844_padding = 0x802E47F4; // rom:0x10B0D4 +Entity_CircularShadowA_Render = 0x802E4800; // rom:0x10B0E0 +Entity_CircularShadowB_Render = 0x802E4824; // rom:0x10B104 +Entity_SquareShadow_Render = 0x802E4848; // rom:0x10B128 +CircularShadowA = 0x802E486C; // rom:0x10B14C +CircularShadowB = 0x802E4890; // rom:0x10B170 +SquareShadow = 0x802E48B4; // rom:0x10B194 +entity_SaveBlock_setupGfx = 0x802DBD90; // type:func rom:0x102670 +entity_SaveBlock_idle = 0x802DC0A4; // type:func rom:0x102984 +entity_SaveBlock_pause_game = 0x802DC0FC; // type:func rom:0x1029DC +entity_SaveBlock_resume_game = 0x802DC12C; // type:func rom:0x102A0C +entity_SaveBlock_save_data = 0x802DC150; // type:func rom:0x102A30 +entity_SaveBlock_show_tutorial_message = 0x802DC1B4; // type:func rom:0x102A94 +SaveBlockTutorialPrinterClosed = 0x802E6340; +entity_SaveBlock_wait_for_close_tutorial = 0x802DC220; // type:func rom:0x102B00 +entity_SaveBlock_show_choice_message = 0x802DC248; // type:func rom:0x102B28 +SaveBlockResultPrinterClosed = 0x802E6344; +SaveBlockResultPrinter = 0x802E634C; +SaveBlockTutorialPrinter = 0x802E6348; +entity_SaveBlock_show_result_message = 0x802DC2A8; // type:func rom:0x102B88 +entity_SaveBlock_wait_for_close_result = 0x802DC2D8; // type:func rom:0x102BB8 +entity_SaveBlock_wait_for_close_choice = 0x802DC300; // type:func rom:0x102BE0 +Entity_SaveBlock_ScriptResume = 0x802E498C; // rom:0x10B26C +entity_SaveBlock_init = 0x802DC368; // type:func rom:0x102C48 +Entity_SaveBlock_Script = 0x802E48E0; // rom:0x10B1C0 +Entity_SaveBlock_RenderScript = 0x802E49AC; // rom:0x10B28C +Entity_SavePoint = 0x802E49C8; // rom:0x10B2A8 +entity_GreenStompSwitch_idle = 0x802DC3B0; // type:func rom:0x102C90 +entity_GreenStompSwitch_retract = 0x802DC410; // type:func rom:0x102CF0 +entity_GreenStompSwitch_extend = 0x802DC488; // type:func rom:0x102D68 +entity_switch_fall_down = 0x802DC4EC; // type:func rom:0x102DCC +entity_HugeBlueSwitch_idle = 0x802DC5C4; // type:func rom:0x102EA4 +entity_small_switch_idle = 0x802DC610; // type:func rom:0x102EF0 +entity_RedSwitch_wait_and_reset = 0x802DC6F0; // type:func rom:0x102FD0 +entity_base_switch_anim_init = 0x802DC71C; // type:func rom:0x102FFC +entity_RedSwitch_animate_scale = 0x802DC758; // type:func rom:0x103038 +entity_base_switch_start_bound_script = 0x802DCE58; // type:func rom:0x103738 +entity_base_switch_animate_scale = 0x802DCE8C; // type:func rom:0x10376C +entity_base_switch_init = 0x802DD2FC; // type:func rom:0x103BDC +entity_BlueSwitch_init = 0x802DD330; // type:func rom:0x103C10 +SwitchToLink = 0x802E6350; +entity_HugeBlueSwitch_init = 0x802DD3B8; // type:func rom:0x103C98 +Entity_RedSwitch_Script = 0x802E49F0; // rom:0x10B2D0 +Entity_HugeBlueSwitch_Script = 0x802E4A38; // rom:0x10B318 +Entity_BlueSwitch_Script = 0x802E4A74; // rom:0x10B354 +Entity_GreenStompSwitch_Script = 0x802E4AB0; // rom:0x10B390 +Entity_BlueSwitch_RenderScript = 0x802E4AF0; // rom:0x10B3D0 +Entity_HugeBlueSwitch_RenderScript = 0x802E4B0C; // rom:0x10B3EC +Entity_RedSwitch_RenderScript = 0x802E4B28; // rom:0x10B408 +Entity_GreenStompSwitch_RenderScript = 0x802E4B44; // rom:0x10B424 +Entity_RedSwitch = 0x802E4B60; // rom:0x10B440 +Entity_BlueSwitch = 0x802E4B84; // rom:0x10B464 +Entity_HugeBlueSwitch = 0x802E4BA8; // rom:0x10B488 +Entity_GreenStompSwitch = 0x802E4BCC; // rom:0x10B4AC +entity_BrickBlock_idle = 0x802DD400; // type:func rom:0x103CE0 +entity_shattering_init_pieces = 0x802DD41C; // type:func rom:0x103CFC +entity_shattering_setupGfx = 0x802DDB54; // type:func rom:0x104434 +entity_shattering_idle = 0x802DD5EC; // type:func rom:0x103ECC +Entity_ShatteringBlock_Script = 0x802E4BF0; // rom:0x10B4D0 +Entity_ShatteringBlock_RenderScript = 0x802E4C20; // rom:0x10B500 +Entity_ShatteringHammer1Block = 0x802E4C3C; // rom:0x10B51C +entity_shattering_block_init = 0x802DDE60; // type:func rom:0x104740 +Entity_ShatteringHammer2Block = 0x802E4C60; // rom:0x10B540 +Entity_ShatteringHammer3Block = 0x802E4C84; // rom:0x10B564 +Entity_ShatteringHammer1BlockTiny = 0x802E4CA8; // rom:0x10B588 +Entity_ShatteringHammer2BlockTiny = 0x802E4CCC; // rom:0x10B5AC +Entity_ShatteringHammer3BlockTiny = 0x802E4CF0; // rom:0x10B5D0 +Entity_ShatteringBrickBlock = 0x802E4D14; // rom:0x10B5F4 +entity_breakable_block_create_shattering_entity = 0x802DDF80; // type:func rom:0x104860 +entity_base_block_setupGfx = 0x802DE070; // type:func rom:0x104950 +entity_base_block_play_vanish_effect = 0x802DE160; // type:func rom:0x104A40 +entity_block_hit_init_scale = 0x802DE19C; // type:func rom:0x104A7C +entity_block_hit_animate_scale = 0x802DE23C; // type:func rom:0x104B1C +entity_base_block_idle = 0x802DE600; // type:func rom:0x104EE0 +entity_base_block_update_slow_sinking = 0x802DE320; // type:func rom:0x104C00 +entity_base_block_init = 0x802DE694; // type:func rom:0x104F74 +entity_inactive_block_hit_init = 0x802DE6C4; // type:func rom:0x104FA4 +entity_inactive_block_hit_anim = 0x802DE6D8; // type:func rom:0x104FB8 +entity_MulticoinBlock_update_timer = 0x802DE9B0; // type:func rom:0x105290 +entity_inactive_block_recoil_anim = 0x802DE794; // type:func rom:0x105074 +entity_MulticoinBlock_init = 0x802DE848; // type:func rom:0x105128 +entity_MulticoinBlock_spawn_coin = 0x802DE888; // type:func rom:0x105168 +Entity_InertYellowBlock = 0x802E502C; // rom:0x10B90C +Entity_CreatedInertBlock_Script = 0x802E4E04; // rom:0x10B6E4 +entity_MulticoinBlock_idle = 0x802DE9F8; // type:func rom:0x1052D8 +entity_MulticoinBlock_check_if_inactive = 0x802DEAB8; // type:func rom:0x105398 +entity_block_handle_collision = 0x802DEB54; // type:func rom:0x105434 +Entity_BreakingBlock_Script = 0x802E4E30; // rom:0x10B710 +entity_init_Hammer1Block_normal = 0x802DEDB0; // type:func rom:0x105690 +entity_init_HammerBlock_small = 0x802DEDE0; // type:func rom:0x1056C0 +Entity_PowBlock_Script = 0x802E4D40; // rom:0x10B620 +Entity_BaseBlock_Script = 0x802E4D7C; // rom:0x10B65C +D_802E9DEC = 0x802E4D9C; // rom:0x10B67C +Entity_InertBlock_Script = 0x802E4DBC; // rom:0x10B69C +Entity_BrickBlock_Script = 0x802E4E64; // rom:0x10B744 +Entity_Hammer1Block_Script = 0x802E4EB0; // rom:0x10B790 +Entity_MulticoinBlock_Script = 0x802E4ED8; // rom:0x10B7B8 +Entity_InertYellowBlock_RenderScript = 0x802E4F30; // rom:0x10B810 +Entity_InertRedBlock_RenderScript = 0x802E4F4C; // rom:0x10B82C +Entity_MulticoinBrick_RenderScript = 0x802E4F68; // rom:0x10B848 +Entity_Hammer1Block_RenderScript = 0x802E4F84; // rom:0x10B864 +Entity_Hammer2Block_RenderScript = 0x802E4FA0; // rom:0x10B880 +Entity_Hammer3Block_RenderScript = 0x802E4FBC; // rom:0x10B89C +Entity_PushBlock_RenderScript = 0x802E4FD8; // rom:0x10B8B8 +Entity_BrickBlock_RenderScript = 0x802E4FF4; // rom:0x10B8D4 +Entity_PowBlock_RenderScript = 0x802E5010; // rom:0x10B8F0 +Entity_InertRedBlock = 0x802E5050; // rom:0x10B930 +Entity_BrickBlock = 0x802E5074; // rom:0x10B954 +Entity_MulticoinBlock = 0x802E5098; // rom:0x10B978 +Entity_Hammer1Block = 0x802E50BC; // rom:0x10B99C +Entity_Hammer1Block_WideX = 0x802E50E0; // rom:0x10B9C0 +Entity_Hammer1Block_WideZ = 0x802E5104; // rom:0x10B9E4 +Entity_Hammer1BlockTiny = 0x802E5128; // rom:0x10BA08 +Entity_Hammer2Block = 0x802E514C; // rom:0x10BA2C +Entity_Hammer2Block_WideX = 0x802E5170; // rom:0x10BA50 +Entity_Hammer2Block_WideZ = 0x802E5194; // rom:0x10BA74 +Entity_Hammer2BlockTiny = 0x802E51B8; // rom:0x10BA98 +Entity_Hammer3Block = 0x802E51DC; // rom:0x10BABC +Entity_Hammer3Block_WideX = 0x802E5200; // rom:0x10BAE0 +Entity_Hammer3Block_WideZ = 0x802E5224; // rom:0x10BB04 +Entity_Hammer3BlockTiny = 0x802E5248; // rom:0x10BB28 +Entity_PushBlock = 0x802E526C; // rom:0x10BB4C +Entity_PowBlock = 0x802E5290; // rom:0x10BB70 +entity_ItemBlock_idle = 0x802DEE30; // type:func rom:0x105710 +entity_HiddenItemBlock_idle = 0x802DEE4C; // type:func rom:0x10572C +entity_HitItemBlock_appear = 0x802DEE90; // type:func rom:0x105770 +entity_ItemBlock_spawn_item = 0x802DEEBC; // type:func rom:0x10579C +entity_TriggerBlock_start_bound_script_2 = 0x802DEFF0; // type:func rom:0x1058D0 +entity_TriggerBlock_play_vanish_effect = 0x802DF00C; // type:func rom:0x1058EC +TriggerBlockVanishEffect = 0x802E6360; +entity_HitItemBlock_play_anim = 0x802DF050; // type:func rom:0x105930 +entity_HitItemBlock_show_inactive = 0x802DF0B8; // type:func rom:0x105998 +entity_ItemBlock_check_if_inactive = 0x802DF104; // type:func rom:0x1059E4 +D_802EA310 = 0x802E52C0; // rom:0x10BBA0 +entity_ItemBlock_replace_with_inactive = 0x802DF1CC; // type:func rom:0x105AAC +Entity_HitRedBlock = 0x802E5610; // rom:0x10BEF0 +Entity_HitFloatingYellowBlock = 0x802E55EC; // rom:0x10BECC +Entity_HitGroundedYellowBlock = 0x802E55C8; // rom:0x10BEA8 +entity_HitItemBlock_hide = 0x802DF434; // type:func rom:0x105D14 +entity_TriggerBlock_start_bound_script = 0x802DF47C; // type:func rom:0x105D5C +entity_TriggerBlock_disable_player_input = 0x802DF4A8; // type:func rom:0x105D88 +entity_TriggerBlock_enable_player_input = 0x802DF4F0; // type:func rom:0x105DD0 +entity_ItemBlock_setupGfx = 0x802DF50C; // type:func rom:0x105DEC +entity_ItemBlock_init = 0x802DF5FC; // type:func rom:0x105EDC +entity_HiddenItemBlock_init = 0x802DF644; // type:func rom:0x105F24 +entity_ItemlessBlock_init = 0x802DF66C; // type:func rom:0x105F4C +Entity_ItemBlock_Script = 0x802E52D8; // rom:0x10BBB8 +Entity_HiddenItemBlock_Script = 0x802E533C; // rom:0x10BC1C +Entity_HitBlock_Script = 0x802E53A0; // rom:0x10BC80 +Entity_TriggerBlock_Script = 0x802E53F0; // rom:0x10BCD0 +Entity_HitYellowBlock_dma = 0x802E5474; // rom:0x10BD54 +Entity_HitFloatinYellowBlock_dma = 0x802E5484; // rom:0x10BD64 +Entity_HitRedBlock_dma = 0x802E5494; // rom:0x10BD74 +Entity_YellowBlock_RenderScript = 0x802E54A4; // rom:0x10BD84 +Entity_HiddenYellowBlock_RenderScript = 0x802E54C0; // rom:0x10BDA0 +Entity_RedBlock_RenderScript = 0x802E54DC; // rom:0x10BDBC +Entity_HiddenRedBlock_RenderScript = 0x802E54F8; // rom:0x10BDD8 +Entity_YellowBlock = 0x802E5514; // rom:0x10BDF4 +Entity_HiddenYellowBlock = 0x802E5538; // rom:0x10BE18 +Entity_RedBlock = 0x802E555C; // rom:0x10BE3C +Entity_HiddenRedBlock = 0x802E5580; // rom:0x10BE60 +Entity_TriggerBlock = 0x802E55A4; // rom:0x10BE84 +entity_HeartBlockContent_get_previous_yaw = 0x802DF6C0; // type:func rom:0x105FA0 +entity_HeartBlockContent__setupGfx = 0x802DF6E0; // type:func rom:0x105FC0 +entity_HeartBlockContent_setupGfx = 0x802DFA9C; // type:func rom:0x10637C +entity_HeartBlockContent_set_initial_pos = 0x802DFAC0; // type:func rom:0x1063A0 +entity_HeartBlockContent__reset = 0x802DFB10; // type:func rom:0x1063F0 +entity_HeartBlockContent_anim_idle = 0x802DFBC0; // type:func rom:0x1064A0 +entity_HeartBlockContent_reset_data = 0x802DFD90; // type:func rom:0x106670 +entity_HeartBlockContent__anim_heal = 0x802DFDB4; // type:func rom:0x106694 +Entity_HeartBlockContent_RenderScriptHit = 0x802E56F4; // rom:0x10BFD4 +entity_HeartBlock_idle = 0x802E02B8; // type:func rom:0x106B98 +entity_HeartBlockContent_anim_beating = 0x802E02D4; // type:func rom:0x106BB4 +entity_HeartBlockContent_init = 0x802E03BC; // type:func rom:0x106C9C +entity_HeartBlockContent_reset = 0x802E03D8; // type:func rom:0x106CB8 +Entity_HeartBlockContent_RenderScriptIdle = 0x802E56D8; // rom:0x10BFB8 +entity_HeartBlockContent_idle = 0x802E040C; // type:func rom:0x106CEC +entity_HeartBlockContent_anim_heal = 0x802E043C; // type:func rom:0x106D1C +entity_HeartBlock_change_render_script = 0x802E0458; // type:func rom:0x106D38 +Entity_HeartBlockContent_RenderScriptAfterHit = 0x802E5710; // rom:0x10BFF0 +entity_HeartBlock_show_tutorial_message = 0x802E047C; // type:func rom:0x106D5C +HeartBlockPrinterClosed = 0x802E6370; +entity_HeartBlock_wait_for_close_tutorial = 0x802E050C; // type:func rom:0x106DEC +entity_HeartBlock_create_child_entity = 0x802E0558; // type:func rom:0x106E38 +entity_HeartBlock_init = 0x802E05F8; // type:func rom:0x106ED8 +Entity_HeartBlockContent = 0x802E576C; // rom:0x10C04C +Entity_HeartBlockContent_Script = 0x802E5640; // rom:0x10BF20 +Entity_HeartBlock_Script = 0x802E569C; // rom:0x10BF7C +Entity_HeartBlock_RenderScript = 0x802E572C; // rom:0x10C00C +Entity_HeartBlockFrame = 0x802E5748; // rom:0x10C028 +Entity_HeartBlock = 0x802E5790; // rom:0x10C070 +entity_SuperBlockContent_get_previous_yaw = 0x802E0620; // type:func rom:0x106F00 +entity_upgrade_block_hide_content = 0x802E0640; // type:func rom:0x106F20 +entity_upgrade_block_idle = 0x802E0680; // type:func rom:0x106F60 +entity_upgrade_block_check_if_inactive = 0x802E069C; // type:func rom:0x106F7C +Entity_SuperBlockContent = 0x802E58E4; // rom:0x10C1C4 +entity_upgrade_block_init = 0x802E073C; // type:func rom:0x10701C +entity_SuperBlock_init = 0x802E0794; // type:func rom:0x107074 +entity_UltraBlock_init = 0x802E07B0; // type:func rom:0x107090 +entity_SuperBlockContent_attach_to_parent = 0x802E07CC; // type:func rom:0x1070AC +Entity_SuperBlock_Script = 0x802E57C0; // rom:0x10C0A0 +Entity_SuperBlock_Palettes = 0x802E5810; // rom:0x10C0F0 +Entity_SuperBlock_PalData = 0x802E5820; // rom:0x10C100 +entity_SuperBlockContent_setupGfx = 0x802E081C; // type:func rom:0x1070FC +entity_SuperBlockContent_idle = 0x802E0E00; // type:func rom:0x1076E0 +entity_init_SuperBlockContent = 0x802E0F00; // type:func rom:0x1077E0 +entity_init_UltraBlockContent = 0x802E0F2C; // type:func rom:0x10780C +Entity_SuperBlockContent_Script = 0x802E5830; // rom:0x10C110 +Entity_UltraBlockContent_Script = 0x802E5840; // rom:0x10C120 +Entity_SuperBlock_RenderScript = 0x802E5850; // rom:0x10C130 +Entity_SuperBlockContent_RenderScript = 0x802E586C; // rom:0x10C14C +Entity_UltraBlock_RenderScript = 0x802E5888; // rom:0x10C168 +Entity_UltraBlockContent_RenderScript = 0x802E58A4; // rom:0x10C184 +Entity_SuperBlock = 0x802E58C0; // rom:0x10C1A0 +Entity_UltraBlock = 0x802E5908; // rom:0x10C1E8 +Entity_UltraBlockContent = 0x802E592C; // rom:0x10C20C +entity_ScriptSpring_idle = 0x802E0F60; // type:func rom:0x107840 +entity_SimpleSpring_idle = 0x802E1014; // type:func rom:0x1078F4 +entity_SimpleSpring_set_jump_params = 0x802E10C8; // type:func rom:0x1079A8 +entity_SimpleSpring_enable_player_input = 0x802E1128; // type:func rom:0x107A08 +entity_ScriptSpring_init = 0x802E1144; // type:func rom:0x107A24 +entity_SimpleSpring_init = 0x802E114C; // type:func rom:0x107A2C +Entity_ScriptSpring_Script = 0x802E5950; // rom:0x10C230 +Entity_SimpleSpring_Script = 0x802E5974; // rom:0x10C254 +Entity_ScriptSpring_dma = 0x802E59C0; // rom:0x10C2A0 +Entity_SimpleSpring_dma = 0x802E59D0; // rom:0x10C2B0 +Entity_ScriptSpring = 0x802E59E0; // rom:0x10C2C0 +Entity_SimpleSpring = 0x802E5A04; // rom:0x10C2E4 +entity_HiddenPanel_setupGfx = 0x802E1160; // type:func rom:0x107A40 +entity_HiddenPanel_set_ispy_notification = 0x802E12E8; // type:func rom:0x107BC8 +entity_HiddenPanel_hide = 0x802E1340; // type:func rom:0x107C20 +entity_HiddenPanel_idle = 0x802E1358; // type:func rom:0x107C38 +entity_HiddenPanel_is_item_on_top = 0x802E1B1C; // type:func rom:0x1083FC +entity_HiddenPanel_flip_over = 0x802E1524; // type:func rom:0x107E04 +entity_HiddenPanel_init = 0x802E1BD4; // type:func rom:0x1084B4 +ERS_AltHiddenPanel = 0x802E5A90; // rom:0x10C370 +Entity_HiddenPanel_Script = 0x802E5A30; // rom:0x10C310 +ERS_HiddenPanel = 0x802E5A6C; // rom:0x10C34C +Entity_HiddenPanel = 0x802E5AB4; // rom:0x10C394 +Entity_Chest_AdjustCam_ISK = 0x802E5AE0; // rom:0x10C3C0 +Entity_Chest_ResetCam_ISK = 0x802E5BBC; // rom:0x10C49C +Entity_Chest_AdjustCam_TIK = 0x802E5BF0; // rom:0x10C4D0 +Entity_Chest_AdjustCam_KZN = 0x802E5C34; // rom:0x10C514 +Entity_Chest_ResetCam_Default = 0x802E5C78; // rom:0x10C558 +entity_Chest_adjust_camera = 0x802E1DD0; // type:func rom:0x1086B0 +entity_Chest_reset_camera = 0x802E1E40; // type:func rom:0x108720 +entity_Chest_setupGfx = 0x802E1E88; // type:func rom:0x108768 +entity_Chest_check_opened = 0x802E1FE4; // type:func rom:0x1088C4 +Entity_Chest_ScriptOpened = 0x802E5D2C; // rom:0x10C60C +entity_Chest_idle = 0x802E2060; // type:func rom:0x108940 +entity_Chest_begin_opening = 0x802E21A8; // type:func rom:0x108A88 +entity_Chest_open = 0x802E21E0; // type:func rom:0x108AC0 +entity_Chest_close = 0x802E23DC; // type:func rom:0x108CBC +entity_GiantChest_hide_effect = 0x802E2570; // type:func rom:0x108E50 +entity_GiantChest_open = 0x802E2594; // type:func rom:0x108E74 +entity_GiantChest_give_equipment = 0x802E2A94; // type:func rom:0x109374 +entity_Chest_start_bound_script = 0x802E2C20; // type:func rom:0x109500 +entity_Chest_enable_player_input = 0x802E2C3C; // type:func rom:0x10951C +entity_GiantChest_await_got_item = 0x802E2C68; // type:func rom:0x109548 +entity_Chest_clear_item_id = 0x802E2CD8; // type:func rom:0x1095B8 +entity_Chest_readargs = 0x802E2CE8; // type:func rom:0x1095C8 +entity_GiantChest_init = 0x802E2D04; // type:func rom:0x1095E4 +entity_Chest_init = 0x802E2D34; // type:func rom:0x109614 +Entity_GiantChest_Script = 0x802E5CAC; // rom:0x10C58C +Entity_Chest_Script = 0x802E5D3C; // rom:0x10C61C +Entity_Chest_RenderScript = 0x802E5DA0; // rom:0x10C680 +Entity_GiantChest = 0x802E5DBC; // rom:0x10C69C +Entity_Chest = 0x802E5DE0; // rom:0x10C6C0 +entity_WoodenCrate_init_fragments = 0x802E2D90; // type:func rom:0x109670 +entity_WoodenCrate_setupGfx = 0x802E34FC; // type:func rom:0x109DDC +entity_WoodenCrate_init = 0x802E2EF0; // type:func rom:0x1097D0 +entity_WoodenCrate_reset_fragments = 0x802E2F1C; // type:func rom:0x1097FC +entity_WoodenCrate_update_fragments = 0x802E2F50; // type:func rom:0x109830 +entity_WoodenCrate_idle = 0x802E3808; // type:func rom:0x10A0E8 +Entity_WoodenCrate_RenderShatteredScript = 0x802E5E2C; // rom:0x10C70C +entity_WoodenCrate_shatter = 0x802E389C; // type:func rom:0x10A17C +Entity_WoodenCrate_RenderScript = 0x802E5E10; // rom:0x10C6F0 +Entity_WoodenCrate_Script = 0x802E5E48; // rom:0x10C728 +Entity_WoodenCrate = 0x802E5E84; // rom:0x10C764 +entity_BlueWarpPipe_check_if_active = 0x802E3960; // type:func rom:0x10A240 +entity_BlueWarpPipe_rise_up = 0x802E39A8; // type:func rom:0x10A288 +entity_BlueWarpPipe_wait_for_player_to_get_off = 0x802E3A08; // type:func rom:0x10A2E8 +entity_BlueWarpPipe_idle = 0x802E3A8C; // type:func rom:0x10A36C +entity_BlueWarpPipe_set_player_move_to_center = 0x802E3B70; // type:func rom:0x10A450 +entity_BlueWarpPipe_wait_player_move_to_center = 0x802E3C44; // type:func rom:0x10A524 +entity_BlueWarpPipe_enter_pipe_init = 0x802E3C7C; // type:func rom:0x10A55C +entity_BlueWarpPipe_enter_pipe_update = 0x802E3D24; // type:func rom:0x10A604 +entity_BlueWarpPipe_start_bound_script = 0x802E3DC0; // type:func rom:0x10A6A0 +entity_BlueWarpPipe_setupGfx = 0x802E3DFC; // type:func rom:0x10A6DC +entity_init_BlueWarpPipe = 0x802E3F44; // type:func rom:0x10A824 +Entity_BlueWarpPipe_Script = 0x802E5EB0; // rom:0x10C790 +Entity_BlueWarpPipe_RenderScript = 0x802E5F14; // rom:0x10C7F4 +Entity_BlueWarpPipe = 0x802E5F30; // rom:0x10C810 +entity_Signpost_idle = 0x802E4000; // type:func rom:0x10A8E0 +Entity_Signpost_Script = 0x802E5F60; // rom:0x10C840 +Entity_Signpost_RenderScript = 0x802E5F70; // rom:0x10C850 +Entity_Signpost = 0x802E5F8C; // rom:0x10C86C diff --git a/ver/jp/undefined_syms.txt b/ver/jp/undefined_syms.txt index 9ca56020842..dc6e0b378a4 100644 --- a/ver/jp/undefined_syms.txt +++ b/ver/jp/undefined_syms.txt @@ -1260,3 +1260,157 @@ get_item_entity = 0x801360D8; remove_item_entity_by_index = 0x80138B6C; get_screen_overlay_params = 0x8013CE70; sprite_shading_profiles_ROM_START = 0x0031DF90; +Entity_UltraBlockContent_Render = 0x0A000800; +entity_model_SimpleSpring_gfx_ROM_END = 0x00E72BD0; +Entity_SaveBlock_RenderNone = 0x0A003508; +entity_model_BlueSwitch_ROM_END = 0x00E6D750; +Entity_HitYellowBlock_Mesh = 0x00000084; +entity_model_Hammer3Block_ROM_END = 0x00E3B2A0; +entity_model_SimpleSpring_anim_ROM_END = 0x00E74030; +create_entity = 0x80116AD4; +Entity_SuperBlockContent_Render2 = 0x0A000380; +Entity_Chest_RenderBox = 0x0A000EB8; +CreateEntityVarArgBuffer = 0x80161750; +Entity_InertYellowBlock_Render = 0x0A0004E0; +entity_model_HitYellowBlock_gfx_ROM_END = 0x00E4FC90; +Entity_SaveBlock_RenderBlock = 0x0A0034F0; +entity_set_render_script = 0x80115DDC; +entity_model_UltraBlockContent_ROM_END = 0x00E54160; +Entity_HitFloatingYellowBlock_AnimationIdle = 0x0000022C; +entity_model_PowBlock_ROM_START = 0x00E4C9A0; +entity_model_ShatteringHammer1Block_ROM_END = 0x00E3E4F0; +Entity_Signpost_Render = 0x0A000A68; +entity_model_BlueWarpPipe_ROM_END = 0x00E62300; +entity_model_Hammer1Block_ROM_START = 0x00E3A3B0; +entity_model_HitRedBlock_anim_ROM_END = 0x00E52CC0; +D_0A000240_E4A8E0 = 0x0A000240; +entity_model_WoodenCrate_ROM_START = 0x00E5A4C0; +entity_model_Hammer2Block_ROM_END = 0x00E3ADB0; +Entity_HeartBlock_Render = 0x0A000918; +Entity_Hammer2Block_Render = 0x0A0004F0; +Entity_HitRedBlock_AnimationHit = 0x00000094; +Entity_BrickBlock_Render = 0x0A0004A0; +Entity_SuperBlockContent_Render = 0x0A000328; +entity_model_SuperBlockContent_ROM_START = 0x00E53520; +entity_model_InertRedBlock_ROM_START = 0x00E4B5C0; +entity_model_SuperBlockContent_ROM_END = 0x00E53900; +entity_model_Hammer3Block_ROM_START = 0x00E3ADB0; +Entity_ScriptSpring_AnimLaunch = 0x000001E4; +entity_model_Chest_ROM_START = 0x00E6D750; +Entity_GreenStompSwitch_Render = 0x0A000740; +entity_model_HiddenPanel_ROM_END = 0x00E5FCE0; +entity_model_ShatteringBrickBlock_ROM_END = 0x00E4B0C0; +Entity_Chest_LidMtx = 0x0A000C48; +Entity_HeartBlockContent_RenderHeartHappy = 0x0A000808; +entity_model_GreenStompSwitch_ROM_END = 0x00E6B940; +set_item_entity_position = 0x8013934C; +Entity_HeartBlockContent_RenderHeartSleeping = 0x0A000700; +entity_model_RedBlock_ROM_END = 0x00E45C50; +Entity_SaveBlock_RenderContent = 0x0A0034E0; +Entity_HeartBlockContent_RenderHeartAwake = 0x0A0007B0; +D_0A000220_E4A8C0 = 0x0A000220; +entity_model_PowBlock_ROM_END = 0x00E4D680; +entity_model_ShatteringBrickBlock_ROM_START = 0x00E470E0; +Entity_HitYellowBlock_AnimationHit = 0x00000094; +entity_model_YellowBlock_ROM_END = 0x00E451A0; +entity_model_HitFloatingYellowBlock_anim_ROM_START = 0x00E51370; +Entity_PushBlock_Render = 0x0A000338; +entity_model_ScriptSpring_gfx_ROM_START = 0x00E6E620; +Entity_InertRedBlock_Render = 0x0A000A90; +entity_model_ShatteringHammer3Block_ROM_START = 0x00E41710; +Entity_Hammer3Block_Render = 0x0A0004E0; +entity_model_Chest_ROM_END = 0x00E6E620; +entity_model_RedBlock_ROM_START = 0x00E451A0; +entity_model_BrickBlock_ROM_START = 0x00E46C30; +entity_model_HitFloatingYellowBlock_anim_ROM_END = 0x00E51600; +mdl_draw_hidden_panel_surface = 0x8012293C; +entity_model_InertYellowBlock_ROM_END = 0x00E4B5C0; +Entity_WoodenCrate_Render = 0x0A004338; +entity_model_ShatteringHammer3Block_ROM_END = 0x00E446F0; +entity_model_HitYellowBlock_anim_ROM_START = 0x00E4FC90; +entity_model_HitRedBlock_gfx_ROM_END = 0x00E52A60; +entity_model_UltraBlock_ROM_START = 0x00E4DF90; +entity_model_BrickBlock_ROM_END = 0x00E470E0; +entity_model_HeartBlockContent_ROM_END = 0x00E53520; +Entity_SuperBlock_Render = 0x0A0008F8; +Gfx_HiddenPanel_Render = 0x0A000280; +entity_model_HitRedBlock_anim_ROM_START = 0x00E52A60; +Entity_ShatteringHammer1Block_FragmentsMatrices = 0x0A001508; +entity_model_HeartBlock_ROM_START = 0x00E4C070; +Entity_ShatteringHammer3Block_FragmentsRender = 0x0A002F78; +Entity_UltraBlockContent_Render2 = 0x0A000750; +Entity_Chest_RenderLid = 0x0A000DC0; +Entity_WoodenCrate_FragmentsMatrices = 0x0A0026F0; +Entity_SimpleSpring_Mesh = 0x000001B8; +entity_model_ShatteringHammer2Block_ROM_END = 0x00E41710; +entity_model_SaveBlock_ROM_END = 0x00E57670; +entity_model_GreenStompSwitch_ROM_START = 0x00E6B1F0; +entity_model_ShatteringHammer1Block_ROM_START = 0x00E3B2A0; +Gfx_AltHiddenPanel_RenderTop = 0x0A0001B0; +entity_model_SimpleSpring_anim_ROM_START = 0x00E72BD0; +entity_model_Hammer2Block_ROM_START = 0x00E3A8B0; +entity_model_PushBlock_ROM_END = 0x00E46C30; +entity_model_InertRedBlock_ROM_END = 0x00E4C070; +Entity_BlueSwitch_Render = 0x0A000EF8; +entity_model_PushBlock_ROM_START = 0x00E468E0; +entity_model_BlueSwitch_ROM_START = 0x00E6C840; +Entity_RedBlock_Render = 0x0A000A90; +is_block_on_ground = 0x80117D30; +Entity_RedSwitch_Render = 0x0A000EE8; +entity_model_HitFloatingYellowBlock_gfx_ROM_END = 0x00E51370; +entity_model_HitYellowBlock_anim_ROM_END = 0x00E4FF30; +entity_model_HitRedBlock_gfx_ROM_START = 0x00E51600; +entity_model_HitFloatingYellowBlock_gfx_ROM_START = 0x00E4FF30; +Entity_BlueWarpPipe_RenderBase = 0x0A000680; +entity_model_ScriptSpring_anim_ROM_END = 0x00E71400; +Entity_ShatteringHammer2Block_FragmentsRender = 0x0A0031B0; +exec_entity_commandlist = 0x80114F78; +entity_model_HeartBlock_ROM_END = 0x00E4C9A0; +Gfx_HiddenPanel_Render2 = 0x0A0002A0; +entity_model_Hammer1Block_ROM_END = 0x00E3A8B0; +entity_model_Signpost_ROM_END = 0x00E62D80; +entity_model_SuperBlock_ROM_END = 0x00E4DF90; +entity_model_ScriptSpring_gfx_ROM_END = 0x00E6FFA0; +entity_model_Signpost_ROM_START = 0x00E62300; +entity_model_UltraBlockContent_ROM_START = 0x00E53900; +entity_model_InertYellowBlock_ROM_START = 0x00E4B0C0; +Entity_ShatteringBrickBlock_FragmentsRender = 0x0A003F70; +entity_model_SuperBlock_ROM_START = 0x00E4D680; +Entity_PowBlock_Render = 0x0A000CC8; +Entity_ShatteringBrickBlock_FragmentsMatrices = 0x0A002318; +Entity_Hammer1Block_Render = 0x0A0004F0; +entity_model_UltraBlock_ROM_END = 0x00E4E870; +entity_model_YellowBlock_ROM_START = 0x00E446F0; +mdl_project_tex_coords = 0x8012153C; +Gfx_HiddenPanel_RenderHole = 0x0A000230; +entity_model_HeartBlockContent_ROM_START = 0x00E52CC0; +D_0A000260_E4A900 = 0x0A000260; +Entity_ScriptSpring_AnimIdle = 0x0000131C; +entity_model_BlueWarpPipe_ROM_START = 0x00E61B50; +Entity_HitRedBlock_Mesh = 0x00000084; +Entity_BlueWarpPipe_RenderPipe = 0x0A0006B8; +Entity_SimpleSpring_AnimLaunch = 0x000001E4; +Entity_YellowBlock_Render = 0x0A000A90; +entity_model_WoodenCrate_ROM_END = 0x00E5E8C0; +entity_model_HitYellowBlock_gfx_ROM_START = 0x00E4E870; +Entity_ShatteringHammer3Block_FragmentsMatrices = 0x0A001218; +Entity_ShatteringHammer1Block_FragmentsRender = 0x0A0031E0; +Gfx_HiddenPanel_RenderTop = 0x0A000180; +entity_model_ScriptSpring_anim_ROM_START = 0x00E6FFA0; +entity_model_HiddenPanel_ROM_START = 0x00E5FA20; +set_entity_commandlist = 0x80114DD0; +Entity_UltraBlock_Render = 0x0A0008C8; +Entity_HitFloatingYellowBlock_Mesh = 0x00000084; +entity_model_RedSwitch_ROM_END = 0x00E6C840; +Entity_ShatteringHammer2Block_FragmentsMatrices = 0x0A0014D8; +Entity_HitYellowBlock_AnimationIdle = 0x0000023C; +Entity_ScriptSpring_Mesh = 0x000001B8; +Entity_SimpleSpring_AnimIdle = 0x0000131C; +Entity_SaveBlock_Mtx = 0x0A003260; +entity_start_script = 0x80115888; +D_0A000200_E4A8A0 = 0x0A000200; +entity_model_RedSwitch_ROM_START = 0x00E6B940; +entity_model_SimpleSpring_gfx_ROM_START = 0x00E71400; +Entity_WoodenCrate_FragmentsRender = 0x0A004350; +entity_model_ShatteringHammer2Block_ROM_START = 0x00E3E4F0; +entity_model_SaveBlock_ROM_START = 0x00E54160; From 963f42c8d79266c269a2d6b1a410d4f3aa4fd2b8 Mon Sep 17 00:00:00 2001 From: AltoXorg <56553686+Alto1772@users.noreply.github.com> Date: Sun, 17 Dec 2023 16:24:38 +0800 Subject: [PATCH 06/18] engine2 msg split --- src/msg.c | 2072 ----------------------------------------- src/msg_draw.c | 2158 +++++++++++++++++++++++++++++++++++++++++++ ver/ique/splat.yaml | 2 + ver/pal/splat.yaml | 2 + ver/us/splat.yaml | 2 + 5 files changed, 2164 insertions(+), 2072 deletions(-) create mode 100644 src/msg_draw.c diff --git a/src/msg.c b/src/msg.c index 58e038c9ed6..23f4c7d2cd9 100644 --- a/src/msg.c +++ b/src/msg.c @@ -165,68 +165,6 @@ Gfx gMsgDlistInitDrawNumber[] = { gsSPEndDisplayList(), }; -Vtx gMsgSpeechBoxLQuad[4] = { - { .v = { .ob = {1, 0, 0}, .tc = {0, 0}, .cn = {255, 255, 248, 255} } }, - { .v = { .ob = {0x20, 0, 0}, .tc = {0x400, 0}, .cn = {255, 255, 248, 255} } }, - { .v = { .ob = {0x1, 0xFFC0, 0}, .tc = {0, 0x800}, .cn = {191, 184, 176, 255} } }, - { .v = { .ob = {0x20, 0xFFC0, 0}, .tc = {0x400, 0x800}, .cn = {191, 184, 176, 255} } }, -}; - -Vtx gMsgSpeechBoxMQuad[] = { - { .v = { .ob = {0x20, 0, 0}, .tc = {0, 0}, .cn = {255, 255, 248, 255} } }, - { .v = { .ob = {0xE1, 0, 0}, .tc = {0x100, 0}, .cn = {255, 255, 248, 255} } }, - { .v = { .ob = {0x20, 0xFFC0, 0}, .tc = {0, 0x800}, .cn = {191, 184, 176, 255} } }, - { .v = { .ob = {0xE1, 0xFFC0, 0}, .tc = {0x100, 0x800}, .cn = {191, 184, 176, 255} } }, -}; - -Vtx gMsgSpeechBoxRQuad[] = { - { .v = { .ob = {0xE1, 0, 0}, .tc = {0, 0}, .cn = {255, 255, 248, 255} } }, - { .v = { .ob = {0x100, 0, 0}, .tc = {0x400, 0}, .cn = {255, 255, 248, 255} } }, - { .v = { .ob = {0xE1, 0xFFC0, 0}, .tc = {0, 0x800}, .cn = {191, 184, 176, 255} } }, - { .v = { .ob = {0x100, 0xFFC0, 0}, .tc = {0x400, 0x800}, .cn = {191, 184, 176, 255} } }, -}; - -Vtx gMsgArrowQuad1[] = { - { .v = { .ob = {0xFFF1, 0x001E, 0}, .tc = {0, 0}, .cn = {191, 184, 176, 255} } }, - { .v = { .ob = {0xF, 0x001E, 0}, .tc = {0x1E0, 0}, .cn = {191, 184, 176, 255} } }, - { .v = { .ob = {0xFFFF, 0, 0}, .tc = {0, 0x1E0}, .cn = {191, 184, 176, 255} } }, - { .v = { .ob = {1, 0, 0}, .tc = {0x1E0, 0x1E0}, .cn = {191, 184, 176, 255} } }, -}; - -Vtx gMsgArrowQuad2[] = { - { .v = { .ob = {0xFFF1, 0x001E, 0}, .tc = {0, 0}, .cn = {191, 184, 176, 255} } }, - { .v = { .ob = {0xF, 0x001E, 0}, .tc = {0x1E0, 0}, .cn = {191, 184, 176, 255} } }, - { .v = { .ob = {0xFFFF, 0, 0}, .tc = {0, 0x1E0}, .cn = {191, 184, 176, 255} } }, - { .v = { .ob = {1, 0, 0}, .tc = {0x1E0, 0x1E0}, .cn = {191, 184, 176, 255} } }, -}; - -Gfx D_8014C500[] = { - gsDPSetCycleType(G_CYC_1CYCLE), - gsDPSetRenderMode(G_RM_TEX_EDGE, G_RM_TEX_EDGE2), - gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA), - gsDPSetTextureFilter(G_TF_AVERAGE), - gsSPTexture(-1, -1, 0, G_TX_RENDERTILE, G_ON), - gsDPSetTexturePersp(G_TP_NONE), - gsDPSetColorDither(G_CD_DISABLE), - gsDPSetAlphaDither(G_AD_DISABLE), - gsDPSetTextureLOD(G_TL_TILE), - gsDPSetTextureLUT(G_TT_RGBA16), - gsDPSetTextureDetail(G_TD_CLAMP), - gsDPSetTextureConvert(G_TC_FILT), - gsDPSetCombineKey(G_CK_NONE), - gsDPSetAlphaCompare(G_AC_NONE), - gsDPNoOp(), - gsSPEndDisplayList(), -}; - -u8 D_8014C580[] = { 50, 80, 100, 105, 100, 0, 0, 0 }; -u8 D_8014C588[] = { 105, 100, 77, 57, 40, 27, 16, 8, 3, 0, 0, 0}; -#if VERSION_IQUE -u32 D_8014AD24 = 2; -#else -u8 D_8014C594[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; -#endif - s32 draw_image_with_clipping(IMG_PTR raster, s32 width, s32 height, s32 fmt, s32 bitDepth, s16 posX, s16 posY, u16 clipULx, u16 clipULy, u16 clipLRx, u16 clipRLy); @@ -2318,2013 +2256,3 @@ void draw_number(s32 value, s32 x, s32 y, s32 charset, s32 palette, s32 opacity, } gDPPipeSync(gMainGfxPos++); } - -void drawbox_message_delegate(s32 data, s32 baseX, s32 baseY, s32 width, s32 height, s32 opacity, s32 darkening) { - MessagePrintState* printer = (MessagePrintState*)data; - - appendGfx_message(printer, 0, 0, 0, 0, 4, 0); -} - -void draw_message_window(MessagePrintState* printer) { - f32 scale = 1.0f; - s32 rotZ = 0; - - switch (printer->windowState) { - case MSG_WINDOW_STATE_D: - scale = (f32)D_8014C580[printer->fadeInCounter] / 100.0; - rotZ = (4 - printer->fadeInCounter) * 3; - printer->fadeInCounter++; - if (D_8014C580[printer->fadeInCounter] == 0) { - printer->windowState = MSG_WINDOW_STATE_PRINTING; - } - break; - case MSG_WINDOW_STATE_E: - scale = (f32)D_8014C588[printer->fadeOutCounter] / 100.0; - rotZ = -printer->fadeOutCounter; - printer->fadeOutCounter++; - if (D_8014C588[printer->fadeOutCounter] == 0) { - printer->stateFlags |= MSG_STATE_FLAG_1; - } - break; - } - - switch (printer->windowState) { - case MSG_WINDOW_STATE_D: - case MSG_WINDOW_STATE_E: - printer->windowBasePos.x = 160 - (printer->windowSize.x / 2); - printer->windowBasePos.y = 56; - draw_box(DRAW_FLAG_ROTSCALE, WINDOW_STYLE_0, printer->windowBasePos.x, 56, 0, printer->windowSize.x, printer->windowSize.y, 255, 0, - scale, scale, 0.0f, 0.0f, rotZ, drawbox_message_delegate, printer, NULL, SCREEN_WIDTH, - SCREEN_HEIGHT, NULL); - break; - default: - appendGfx_message(printer, printer->windowOffsetPos.x, printer->windowOffsetPos.y, printer->unk_46C, - printer->curLinePos, 4, 0); - break; - } -} - -#if VERSION_IQUE || VERSION_PAL -INCLUDE_ASM(s32, "msg", appendGfx_message); -#else -void appendGfx_message(MessagePrintState* printer, s16 posX, s16 posY, u16 additionalOffsetX, u16 additionalOffsetY, - u16 flag, u8 alpha) { - SpriteRasterInfo sprRasterInfo; - u16 sp80bool; - s16 sp8E; - s16 sp96; - s16 sp9E; - s16 palette; - s16 spAE; - u16 spB6; - u8 spB8; - f32 windowScaleX; - MessageCharset* msgCharset; - f32 temp_f10; - f32 temp_f20; - f32 temp_f20_3; - f32 temp_f22_2; - f32 temp_f24; - f32 bubbleX; - f32 bubbleY; - f32 temp_f28; - f32 windowScaleY; - f32 temp_f8; - f32 temp_f8_5; - f64 temp_f0; - f32 temp_f0_2; - f32 temp_f2_2; - f64 temp_f20_2; - f64 temp_f22; - f32 temp_f2; - f64 temp_f2_3; - s32 temp_s0_7; - s32 temp_s0_8; - s32 temp_a2; - s32 temp_s1_5; - s32 i; - s16 temp_s3; - s16 temp_s4; - s32 windowSizeX; - s32 windowSizeY; - s16 temp_s5; - s16 temp_s6; - u32 temp_a0_49; - s32 animIdx; - u8 packedScaleX; - u8 packedScaleY; - MessageImageData* msgVarImage; - MessageImageData* msgImageData; - s32 phi_a0; - s32 straightWidth; - s32 curveWidth; - s32 height; - s32 frameX; - s32 frameY; - s32 frameSizeX; - s32 frameSizeY; - s32 frameFading; - u8 frameAlpha; - u16 fading; - u8 phi_s0_5; - IMG_PTR signRaster; - PAL_PTR signPalette; - s8 phi_s2_4; - u8 phi_s3_2; - s32 phi_v0_3; - s32 phi_a0_4; - s16 phi_t5; - s16 phi_s0_6; - s16 phi_t3; - s32 dbPos; - s16 charPosX; - s16 charPosY; - s16 phi_s2_5; - s32 phi_s0_7; - s32 phi_s1_8; - s8 varImgHasBorder; - s16 imgDrawPosX; - s16 imgDrawPosY; - f32 z1; - f32 z2; - f32 temp1; - f32 temp2; - - msg_drawState = &D_80155D20; - msg_drawState->printBuffer = printer->printBuffer; - msg_drawState->printModeFlags = 0; - if (gMainGfxPos != D_80151338) { - msg_reset_gfx_state(); - } - msg_drawState->printModeFlags |= (MSG_PRINT_FLAG_1 | MSG_PRINT_FLAG_100); - sp8E = 255; - if (flag & 1) { - sp8E = alpha; - } - msg_drawState->textStartPos[0] = 0; - msg_drawState->textStartPos[1] = 0; - msg_drawState->clipX[0] = 0; - msg_drawState->clipY[0] = 0; - msg_drawState->clipX[1] = SCREEN_WIDTH - 1; - msg_drawState->clipY[1] = SCREEN_HEIGHT - 1; - msg_drawState->msgScale.x = 1.0f; - msg_drawState->msgScale.y = 1.0f; - msg_drawState->unk_29 = 0; - msg_drawState->framePalette = 0; - msg_drawState->unk_2C = 0; - msg_drawState->visiblePrintedCount = 0; - msg_drawState->centerPos = 0; - msg_drawState->fontVariant = 0; - msg_drawState->curPosX = 0; - msg_drawState->nextPos[0] = 0; - msg_drawState->nextPos[1] = 0; - msg_drawState->font = 0; - msg_drawState->effectFlags = 0; - msg_drawState->nextCounter = 0; - msg_drawState->textColor = MSG_PAL_WHITE; - sp96 = 0xFF; - spAE = 0xFF; - spB6 = 0; - spB8 = 0; - sp9E = -1; - - if (flag & 2) { - msg_drawState->font = 1; - } - - if (flag & 4) { - gDPSetScissor(gMainGfxPos++, G_SC_NON_INTERLACE, 0, 0, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1); - } - - sp80bool = FALSE; - msg_drawState->drawBufferPos = 0; - - while (!sp80bool) { - switch (msg_drawState->printBuffer[msg_drawState->drawBufferPos]) { - case MSG_CHAR_PRINT_ENDL: - msg_drawState->nextPos[0] = 0; - msg_drawState->nextPos[1] += (s32)((msg_drawState->msgScale.y * MsgCharsets[msg_drawState->font]->newLineY) + - MsgStyleVerticalLineOffsets[printer->style]); - if (msg_drawState->printModeFlags & MSG_PRINT_FLAG_40) { - msg_drawState->printModeFlags |= MSG_PRINT_FLAG_80; - } - msg_drawState->drawBufferPos++; - break; - case MSG_CHAR_PRINT_UNK_CHAR_FA: - msg_drawState->drawBufferPos++; - break; - case MSG_CHAR_PRINT_VARIANT0: - case MSG_CHAR_PRINT_VARIANT1: - case MSG_CHAR_PRINT_VARIANT2: - case MSG_CHAR_PRINT_VARIANT3: - msg_drawState->fontVariant = msg_drawState->printBuffer[msg_drawState->drawBufferPos] - MSG_CHAR_PRINT_VARIANT0; - msg_drawState->drawBufferPos++; - break; - case MSG_CHAR_PRINT_SPACE: - case MSG_CHAR_PRINT_FULL_SPACE: - case MSG_CHAR_PRINT_HALF_SPACE: - msg_drawState->nextPos[0] += msg_get_draw_char_width(msg_drawState->printBuffer[msg_drawState->drawBufferPos], - msg_drawState->font, msg_drawState->fontVariant, msg_drawState->msgScale.x, msg_drawState->curPosX, - msg_drawState->printModeFlags); - msg_drawState->drawBufferPos++; - break; - case MSG_CHAR_PRINT_STYLE: - switch (msg_drawState->printBuffer[msg_drawState->drawBufferPos + 1]) { - case MSG_STYLE_RIGHT: - case MSG_STYLE_LEFT: - case MSG_STYLE_CENTER: - case MSG_STYLE_TATTLE: - if (printer->windowState == MSG_WINDOW_STATE_OPENING && printer->fadeInCounter == 0) { - printer->openStartPos.x = printer->initOpenPos.x; - printer->openStartPos.y = printer->initOpenPos.y; - } - temp_s6 = printer->openStartPos.x; - temp_s5 = printer->openStartPos.y; - temp_s4 = printer->windowBasePos.x + (f32) printer->windowSize.x * 0.5; - temp_s3 = printer->windowBasePos.y + (f32) printer->windowSize.y * 0.5; - msg_drawState->textColor = MSG_PAL_STANDARD; - msg_drawState->printModeFlags |= MSG_PRINT_FLAG_10; - - if (printer->style == MSG_STYLE_RIGHT || printer->style == MSG_STYLE_LEFT || printer->style == MSG_STYLE_CENTER) { - straightWidth = 218; - printer->windowBasePos.x = 22; - printer->windowBasePos.y = 13; - printer->windowSize.x = 296; - printer->windowSize.y = 68; - msg_drawState->textStartPos[0] = 26; - msg_drawState->textStartPos[1] = 6; - printer->rewindArrowPos.x = 276; - printer->rewindArrowPos.y = 57; - curveWidth = 32; - height = 68; - } else { - straightWidth = 218; - - switch (printer->maxLinesPerPage) { - case 1: - msg_drawState->textStartPos[0] = 18; - msg_drawState->textStartPos[1] = 10; - curveWidth = 24; - break; - case 2: - msg_drawState->textStartPos[0] = 22; - msg_drawState->textStartPos[1] = 6; - curveWidth = 28; - break; - case 3: - msg_drawState->textStartPos[0] = 26; - msg_drawState->textStartPos[1] = 8; - curveWidth = 32; - break; - default: - msg_drawState->textStartPos[0] = 26; - msg_drawState->textStartPos[1] = 6; - curveWidth = 32; - break; - } - - straightWidth = printer->msgWidth; - if (straightWidth > 256) { - straightWidth = 256; - } - if (straightWidth < 70) { - straightWidth = 70; - } - straightWidth -= 12; - - printer->windowSize.x = straightWidth + (curveWidth * 2); - - height = (printer->maxLinesPerPage * 14) + 16; - if (height > 68) { - height = 68; - } - if (height < 36) { - height = 36; - } - printer->windowSize.y = height; - - temp_a2 = printer->openStartPos.x - printer->windowSize.x / 2; - if (temp_a2 < 18) { - temp_a2 = 18; - } - if (temp_a2 + printer->windowSize.x > SCREEN_WIDTH - 18) { - temp_a2 = SCREEN_WIDTH - 18 - printer->windowSize.x; - } - phi_a0 = printer->openStartPos.y - 38 - printer->windowSize.y; - if (phi_a0 < 20) { - phi_a0 = 20; - } - if (phi_a0 + printer->windowSize.y > 170) { - phi_a0 = 170 - printer->windowSize.y; - } - printer->windowBasePos.x = temp_a2; - printer->windowBasePos.y = phi_a0; - printer->rewindArrowPos.x = (printer->windowSize.x + temp_a2) - 30; - printer->rewindArrowPos.y = (printer->windowSize.y + phi_a0) - 18; - } - - if (printer->windowState == MSG_WINDOW_STATE_B || printer->windowState == MSG_WINDOW_STATE_C) { - msg_drawState->framePalette = 1; - } - - if (printer->windowState == MSG_WINDOW_STATE_OPENING) { - windowScaleX = update_lerp(EASING_LINEAR, 0.07f, 1.0f, printer->fadeInCounter, 7); - windowScaleY = update_lerp(EASING_LINEAR, 0.3f, 1.0f, printer->fadeInCounter, 7); - temp_f28 = update_lerp(EASING_LINEAR, 96.0f, 200.0f, printer->fadeInCounter, 7); - temp_f20 = update_lerp(EASING_SIN_OUT, temp_s5, temp_s3, printer->fadeInCounter, 7); - temp_f24 = update_lerp(EASING_SIN_OUT, temp_s6, temp_s4, printer->fadeInCounter, 7); - temp_f2_2 = printer->windowSize.x * windowScaleX; - temp_f0_2 = printer->windowSize.y * windowScaleY; - bubbleX = (temp_f24 - temp_f2_2 * 0.5) + 0.5; - bubbleY = (temp_f20 - temp_f0_2 * 0.5) + 0.5; - msg_draw_speech_bubble(printer, bubbleX, bubbleY, straightWidth, curveWidth, height, windowScaleX, windowScaleY, temp_f28, 1); - printer->fadeInCounter++; - if (printer->fadeInCounter == 7) { - printer->windowState = MSG_WINDOW_STATE_PRINTING; - } - } else if (printer->windowState == MSG_WINDOW_STATE_CLOSING) { - printer->fadeOutCounter++; - windowScaleX = update_lerp(EASING_LINEAR, 1.0f, 0.6f, printer->fadeOutCounter, 5); - windowScaleY = update_lerp(EASING_LINEAR, 1.0f, 0.8f, printer->fadeOutCounter, 5); - temp_f2 = (printer->windowSize.x * windowScaleX); - temp_f0 = (printer->windowSize.y * windowScaleY); - temp_f24 = temp_s4; - temp_f20 = temp_s3; - bubbleX = (temp_f24 - temp_f2 * 0.5) + 0.5; - bubbleY = (temp_f20 - temp_f0 * 0.5) + 0.5; - temp_f22_2 = (temp_f24 + temp_f2 * 0.5) - 0.5; - temp_f20_3 = (temp_f20 + temp_f0 * 0.5) - 0.5; - temp_f28 = update_lerp(EASING_LINEAR, 255.0f, 64.0f, printer->fadeOutCounter, 5); - sp8E = temp_f28 * 0.35; - spAE = temp_f28; - msg_drawState->clipX[0] = bubbleX + msg_drawState->textStartPos[0]; - msg_drawState->clipY[0] = bubbleY + msg_drawState->textStartPos[1]; - msg_drawState->clipX[1] = temp_f22_2 - msg_drawState->textStartPos[0]; - msg_drawState->clipY[1] = temp_f20_3 - msg_drawState->textStartPos[1]; - msg_draw_speech_bubble(printer, bubbleX, bubbleY, straightWidth, curveWidth, height, windowScaleX, windowScaleY, temp_f28, 1); - if (printer->fadeOutCounter >= 5) { - printer->stateFlags |= MSG_STATE_FLAG_1; - } - } else { - bubbleX = posX + printer->windowBasePos.x; - bubbleY = posY + printer->windowBasePos.y; - - msg_draw_speech_bubble(printer, bubbleX, bubbleY, straightWidth, curveWidth, height, 1.0f, 1.0f, 255, 1); - if (((u32)(printer->openStartPos.x - 20) <= 280) && (printer->openStartPos.y <= 220)) { - msg_draw_speech_arrow(printer); - } - } - - if (printer->windowState != MSG_WINDOW_STATE_CLOSING) { - msg_drawState->clipX[0] = 20; - msg_drawState->clipY[0] = printer->windowOffsetPos.y + printer->windowBasePos.y + - msg_drawState->textStartPos[1]; - msg_drawState->clipX[1] = SCREEN_WIDTH - 20; - msg_drawState->clipY[1] = msg_drawState->clipY[0] + printer->windowSize.y - 16; - } - msg_reset_gfx_state(); - msg_drawState->drawBufferPos += 2; - break; - case MSG_STYLE_CHOICE: - frameFading = 0; - windowSizeX = printer->windowSize.x; - windowSizeY = printer->windowSize.y; - frameSizeX = windowSizeX; - frameSizeY = windowSizeY; - msg_drawState->framePalette = 0; - msg_drawState->textStartPos[0] = 12; - msg_drawState->textStartPos[1] = 6; - frameAlpha = 255; - if (printer->windowState == MSG_WINDOW_STATE_OPENING) { - - printer->fadeInCounter++; - if (printer->fadeInCounter == 6) { - printer->windowState = MSG_WINDOW_STATE_PRINTING; - } - - temp_f10 = ((f32) printer->fadeInCounter * (2.0 / 15.0)) + 0.2; - - z1 = printer->windowBasePos.x + (windowSizeX / 2); - z2 = printer->windowBasePos.y + (windowSizeY / 2); - temp1 = z1 - (windowSizeX * temp_f10 * 0.5); - temp2 = z2 - (windowSizeY * temp_f10 * 0.5); - frameX = temp1 + 0.5; - frameY = temp2 + 0.5; - frameSizeX = windowSizeX * temp_f10 + 0.5; - frameSizeY = windowSizeY * temp_f10 + 0.5; - - if (frameSizeX < 24) { - frameSizeX = 24; - } - if (frameSizeY < 24) { - frameSizeY = 24; - } - - sp8E = (u8)(temp_f10 * 255.0) * 0.6; - } else if (printer->windowState == MSG_WINDOW_STATE_CLOSING) { - printer->fadeOutCounter++; - if (printer->fadeOutCounter >= 5) { - printer->stateFlags |= MSG_STATE_FLAG_1; - } - frameAlpha = ~(printer->fadeOutCounter * 0x2E); - sp8E = ((u8)frameAlpha) * 0.6; - frameFading = 1; - if (sp8E >= 32) { - sp8E -= 32; - } - frameX = printer->windowBasePos.x; - frameY = printer->windowBasePos.y; - } else { - frameX = printer->windowBasePos.x; - frameY = printer->windowBasePos.y; - msg_draw_prim_rect(255, 32, 32, 0, frameX - 1, frameY - 1, windowSizeX + 2, windowSizeY + 2); - } - msg_drawState->clipX[0] = frameX + 2; - msg_drawState->clipY[0] = frameY + 2; - msg_drawState->clipX[1] = frameX + frameSizeX - 2; - msg_drawState->clipY[1] = frameY + frameSizeY - 2; - msg_draw_frame(frameX, frameY, frameSizeX, frameSizeY, MSG_STYLE_CHOICE, msg_drawState->framePalette, frameFading, frameAlpha, - frameAlpha); - msg_reset_gfx_state(); - spAE = frameAlpha & 0xFF; - msg_drawState->textColor = MSG_PAL_STANDARD; - msg_drawState->drawBufferPos += 2; - msg_drawState->printModeFlags |= MSG_PRINT_FLAG_10; - break; - case MSG_STYLE_INSPECT: - case MSG_STYLE_UPGRADE: - case MSG_STYLE_NARRATE: - case MSG_STYLE_F: - fading = 0; - msg_drawState->textStartPos[0] = 16; - msg_drawState->textStartPos[1] = 3; - msg_drawState->clipX[0] = printer->windowBasePos.x + 5; - msg_drawState->clipY[0] = printer->windowBasePos.y + 4; - msg_drawState->clipX[1] = printer->windowBasePos.x + printer->windowSize.x - 8; - msg_drawState->clipY[1] = printer->windowBasePos.y + printer->windowSize.y - 5; - printer->rewindArrowPos.x = msg_drawState->clipX[1] - 17; - printer->rewindArrowPos.y = msg_drawState->clipY[1] - 17; - msg_drawState->textColor = MSG_PAL_WHITE; - phi_s0_5 = 0xFF; - msg_draw_prim_rect(255, 32, 32, 0, printer->windowBasePos.x + 3, printer->windowBasePos.y - 1, - printer->windowSize.x - 6, 1); - msg_draw_prim_rect(32, 255, 32, 0, printer->windowBasePos.x + 3, - printer->windowBasePos.y + printer->windowSize.y, printer->windowSize.x - 6, - 1); - - if (printer->windowState == MSG_WINDOW_STATE_OPENING) { - phi_s0_5 = (printer->fadeInCounter * 0x30) + 0x50; - sp8E = (phi_s0_5 & 0xFF) - 0x30; - printer->fadeInCounter++; - fading = 1; - if ((s16)printer->fadeInCounter == 4) { // TODO why is this cast needed - printer->windowState = MSG_WINDOW_STATE_PRINTING; - } - } else if (printer->windowState == MSG_WINDOW_STATE_CLOSING) { - phi_s0_5 = -0x30 - (printer->fadeOutCounter * 40); - sp8E = (phi_s0_5 & 0xFF) - 0x30; - printer->fadeOutCounter++; - fading = 1; - if (printer->fadeOutCounter == 4) { - printer->stateFlags |= MSG_STATE_FLAG_1; - } - } - - msg_draw_frame(printer->windowBasePos.x, printer->windowBasePos.y, printer->windowSize.x, printer->windowSize.y, MSG_STYLE_INSPECT, - msg_drawState->framePalette, fading, phi_s0_5, phi_s0_5); - msg_reset_gfx_state(); - spAE = phi_s0_5 & 0xFF; - msg_drawState->drawBufferPos += 2; - break; - case MSG_STYLE_SIGN: - case MSG_STYLE_LAMPPOST: - msg_drawState->textStartPos[0] = 18; - msg_drawState->textStartPos[1] = 11; - printer->windowBasePos.x = 20; - printer->windowBasePos.y = 28; - printer->windowSize.x = 280; - msg_drawState->framePalette = 15; - temp_s1_5 = 0xFF; - if (printer->style == MSG_STYLE_SIGN) { - signRaster = ui_msg_sign_corner_bottomright_png; - printer->windowSize.y = 72; - msg_drawState->textColor = MSG_PAL_18; - signPalette = ui_msg_sign_pal; - } else { - signRaster = ui_msg_lamppost_corner_bottomright_png; - msg_drawState->textColor = MSG_PAL_1C; - signPalette = ui_msg_lamppost_pal; - } - msg_drawState->clipX[0] = 34; - msg_drawState->clipY[0] = 40; - msg_drawState->clipX[1] = 283; - msg_drawState->clipY[1] = printer->windowSize.y + 17; - printer->rewindArrowPos.x = msg_drawState->clipX[1] - 16; - printer->rewindArrowPos.y = msg_drawState->clipY[1] - 9; - - if (printer->windowState == MSG_WINDOW_STATE_OPENING) { - temp_s1_5 = (printer->fadeInCounter << 6) + 0x50; - sp8E = (temp_s1_5 & 0xFF) - 0x30; - printer->fadeInCounter++; - if (printer->fadeInCounter == 3) { - printer->windowState = MSG_WINDOW_STATE_PRINTING; - } - } else { - if (printer->windowState == MSG_WINDOW_STATE_CLOSING) { - temp_s1_5 = -0x30 - (printer->fadeOutCounter * 0x30); - sp8E = (temp_s1_5 & 0xFF) - 0x30; - printer->fadeOutCounter++; - if (printer->fadeOutCounter == 3) { - printer->stateFlags |= MSG_STATE_FLAG_1; - } - } - } - spAE = (u8)temp_s1_5; - draw_ci_image_with_clipping(ui_msg_sign_corner_topleft_png, 16, 16, G_IM_FMT_CI, G_IM_SIZ_4b, signPalette, 20, 28, 10, 10, 310, 230, temp_s1_5); - draw_ci_image_with_clipping(ui_msg_sign_corner_topright_png, 16, 16, G_IM_FMT_CI, G_IM_SIZ_4b, signPalette, 284, 28, 10, 10, 310, 230, temp_s1_5); - draw_ci_image_with_clipping(ui_msg_sign_corner_bottomleft_png, 16, 16, G_IM_FMT_CI, G_IM_SIZ_4b, signPalette, 20, printer->windowSize.y + 12, 10, 10, 310, 230, - temp_s1_5); - draw_ci_image_with_clipping(signRaster, 16, 16, G_IM_FMT_CI, G_IM_SIZ_4b, signPalette, 284, printer->windowSize.y + 12, 10, 10, 310, 230, temp_s1_5); - gDPLoadTextureTile_4b(gMainGfxPos++, ui_msg_sign_side_top_png, G_IM_FMT_CI, 32, 0, 0, 0, 31, 15, 0, G_TX_NOMIRROR | G_TX_WRAP, - G_TX_NOMIRROR | G_TX_WRAP, 5, 4, G_TX_NOLOD, G_TX_NOLOD); - gSPTextureRectangle(gMainGfxPos++, 0x0090, 0x0070, 0x0470, 0x00B0, G_TX_RENDERTILE, 0, 0, 0x0400, 0x0400); - gDPLoadTextureTile_4b(gMainGfxPos++, ui_msg_sign_side_left_png, G_IM_FMT_CI, 16, 0, 0, 0, 15, 31, 0, G_TX_NOMIRROR | G_TX_WRAP, - G_TX_NOMIRROR | G_TX_WRAP, 4, 5, G_TX_NOLOD, G_TX_NOLOD); - gSPTextureRectangle(gMainGfxPos++, 0x0050, 0x00B0, 0x0090, (printer->windowSize.y + 12) * 4, G_TX_RENDERTILE, 0, 0, - 0x0400, 0x0400); - gDPLoadTextureTile_4b(gMainGfxPos++, ui_msg_sign_side_right_png, G_IM_FMT_CI, 16, 0, 0, 0, 15, 31, 0, G_TX_NOMIRROR | G_TX_WRAP, - G_TX_NOMIRROR | G_TX_WRAP, 4, 5, G_TX_NOLOD, G_TX_NOLOD); - gSPTextureRectangle(gMainGfxPos++, 0x0470, 0x00B0, 0x04B0, (printer->windowSize.y + 12) * 4, G_TX_RENDERTILE, 0, 0, - 0x0400, 0x0400); - gDPLoadTextureTile_4b(gMainGfxPos++, ui_msg_sign_side_bottom_png, G_IM_FMT_CI, 32, 0, 0, 0, 31, 15, 0, G_TX_NOMIRROR | G_TX_WRAP, - G_TX_NOMIRROR | G_TX_WRAP, 5, 4, G_TX_NOLOD, G_TX_NOLOD); - gSPTextureRectangle(gMainGfxPos++, 0x0090, (printer->windowSize.y + 12) * 4, 0x0470, (printer->windowSize.y + 28) * 4, - G_TX_RENDERTILE, 0, 0, 0x0400, 0x0400); - gDPLoadTextureTile_4b(gMainGfxPos++, ui_msg_sign_fill_png, G_IM_FMT_CI, 8, 0, 0, 0, 7, 7, 0, G_TX_NOMIRROR | G_TX_WRAP, - G_TX_NOMIRROR | G_TX_WRAP, 3, 3, G_TX_NOLOD, G_TX_NOLOD); - gSPTextureRectangle(gMainGfxPos++, 0x0090, 0x00B0, 0x0470, (printer->windowSize.y + 12) * 4, G_TX_RENDERTILE, 0, 0, - 0x0400, 0x0400); - msg_reset_gfx_state(); - msg_drawState->drawBufferPos += 2; - break; - case MSG_STYLE_POSTCARD: - phi_s2_4 = 0; - msg_drawState->textStartPos[0] = 12; - msg_drawState->textStartPos[1] = 5; - printer->windowBasePos.x = 40; - printer->windowBasePos.y = 28; - msg_drawState->clipX[0] = 45; - msg_drawState->clipY[0] = 32; - msg_drawState->clipX[1] = 272; - msg_drawState->clipY[1] = 81; - printer->rewindArrowPos.x = msg_drawState->clipX[1] - 21; - printer->rewindArrowPos.y = msg_drawState->clipY[1] - 20; - msg_drawState->framePalette = 0; - msg_drawState->textColor = MSG_PAL_WHITE; - msg_draw_prim_rect(255, 32, 32, 0, 43, 27, 234, 1); - msg_draw_prim_rect(32, 255, 32, 0, 43, 86, 234, 1); - phi_s3_2 = 0xFF; - if (printer->windowState == MSG_WINDOW_STATE_OPENING) { - phi_s3_2 = (printer->fadeInCounter * 64) + 80; - sp8E = (phi_s3_2 & 0xFF) - 0x30; - printer->fadeInCounter++; - if (printer->fadeInCounter == 3) { - printer->windowState = MSG_WINDOW_STATE_PRINTING; - } - phi_s2_4 = 1; - } else if (printer->windowState == MSG_WINDOW_STATE_CLOSING) { - phi_s3_2 = -0x30 - (printer->fadeOutCounter * 0x30); - sp8E = (phi_s3_2 & 0xFF) - 0x30; - printer->fadeOutCounter++; - if (printer->fadeOutCounter == 3) { - printer->stateFlags |= MSG_STATE_FLAG_1; - } - phi_s2_4 = 1; - } - msg_draw_frame(40, 28, 240, 58, MSG_STYLE_INSPECT, msg_drawState->framePalette, phi_s2_4, phi_s3_2, phi_s3_2); - draw_ci_image_with_clipping(printer->letterBackgroundImg, 150, 105, G_IM_FMT_CI, G_IM_SIZ_4b, - printer->letterBackgroundPal, 85, 97, 10, 10, 300, 220, phi_s3_2); - draw_ci_image_with_clipping(printer->letterContentImg, 70, 95, G_IM_FMT_CI, G_IM_SIZ_8b, - printer->letterContentPal, 160, 102, 10, 10, 300, 220, phi_s3_2); - msg_reset_gfx_state(); - spAE = phi_s3_2 & 0xFF; - msg_drawState->drawBufferPos += 2; - break; - case MSG_STYLE_POPUP: - case MSG_STYLE_B: - msg_drawState->textStartPos[0] = 16; - msg_drawState->textStartPos[1] = 4; - msg_drawState->clipX[0] = 0; - msg_drawState->clipX[1] = SCREEN_WIDTH - 1; - msg_drawState->clipY[0] = 0; - msg_drawState->clipY[1] = SCREEN_HEIGHT - 1; - msg_drawState->textColor = MSG_PAL_WHITE; - msg_drawState->printModeFlags |= MSG_PRINT_FLAG_10; - if (printer->windowState == MSG_WINDOW_STATE_D || printer->windowState == MSG_WINDOW_STATE_E) { - printer->windowBasePos.x = 0; - printer->windowBasePos.y = 0; - } else { - printer->windowBasePos.x = 160 - printer->windowSize.x / 2; - printer->windowBasePos.y = 56; - draw_box(0, WINDOW_STYLE_0, printer->windowBasePos.x, 56, 0, printer->windowSize.x, - printer->windowSize.y, 255, 0, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, NULL, 0, NULL, - SCREEN_WIDTH, SCREEN_HEIGHT, NULL); - } - msg_reset_gfx_state(); - msg_drawState->drawBufferPos += 2; - break; - case MSG_STYLE_EPILOGUE: - printer->windowBasePos.x = 60; - printer->windowBasePos.y = 110; - printer->windowSize.x = 200; - printer->windowSize.y = 50; - msg_drawState->textStartPos[0] = 0; - msg_drawState->textStartPos[1] = -2; - msg_drawState->clipX[0] = printer->windowBasePos.x; - msg_drawState->clipY[0] = printer->windowBasePos.y; - msg_drawState->clipX[1] = printer->windowBasePos.x + printer->windowSize.x; - msg_drawState->clipY[1] = printer->windowBasePos.y + printer->windowSize.y; - printer->rewindArrowPos.x = printer->windowBasePos.x + printer->windowSize.x - 10; - printer->rewindArrowPos.y = printer->windowBasePos.y + printer->windowSize.y - 10; - msg_reset_gfx_state(); - msg_drawState->drawBufferPos += 2; - break; - } - break; - case MSG_CHAR_PRINT_NEXT: - if (printer->windowState == MSG_WINDOW_STATE_C) { - if (msg_drawState->nextCounter >= printer->unkArraySize) { - sp80bool = TRUE; - } - } else if (printer->windowState == MSG_WINDOW_STATE_B) { - if (printer->curLinePos < printer->lineEndPos[printer->unkArraySize]) { - if (msg_drawState->nextCounter >= printer->unkArraySize) { - sp80bool = TRUE; - } - } else { - if (printer->unkArraySize < msg_drawState->nextCounter) { - sp80bool = TRUE; - } else if (msg_drawState->nextCounter >= printer->unkArraySize) { - phi_a0_4 = 36; - if (printer->maxLinesPerPage >= 2) { - phi_v0_3 = 48; - if (printer->maxLinesPerPage == 2) { - phi_v0_3 = 32; - } - if (printer->unk_4C8 < phi_v0_3) { - if (printer->unk_4C8 <= 0x10) { - phi_a0_4 = 56; - } - sp8E = 0xFF - (phi_a0_4 * printer->unk_4CC); - if (sp8E < 0) { - sp8E = 0; - } - } - } - } - } - } - msg_drawState->nextCounter++; - msg_drawState->drawBufferPos++; - break; - case MSG_CHAR_PRINT_END: - sp80bool = TRUE; - break; - case MSG_CHAR_PRINT_FUNCTION: - msg_drawState->drawBufferPos++; - switch (msg_drawState->printBuffer[msg_drawState->drawBufferPos]) { - case MSG_PRINT_FUNC_FONT: - msg_drawState->font = msg_drawState->printBuffer[msg_drawState->drawBufferPos + 1]; - msg_drawState->drawBufferPos += 2; - msg_drawState->printModeFlags |= MSG_PRINT_FLAG_10; - break; - case MSG_PRINT_FUNC_VARIANT: - msg_drawState->fontVariant = msg_drawState->printBuffer[msg_drawState->drawBufferPos + 1]; - msg_drawState->drawBufferPos += 2; - break; - case MSG_PRINT_FUNC_COLOR: - msg_drawState->textColor = msg_drawState->printBuffer[msg_drawState->drawBufferPos + 1]; - msg_drawState->printModeFlags |= MSG_PRINT_FLAG_10; - msg_drawState->drawBufferPos += 2; - break; - case MSG_PRINT_FUNC_SPACING: - msg_drawState->curPosX = msg_drawState->printBuffer[msg_drawState->drawBufferPos + 1]; - msg_drawState->drawBufferPos += 2; - break; - case MSG_PRINT_FUNC_SIZE: - packedScaleX = msg_drawState->printBuffer[msg_drawState->drawBufferPos + 1]; - msg_drawState->msgScale.x = (f32)(packedScaleX >> 4) + ((packedScaleX & 0xF) * 0.0625f); - packedScaleY = msg_drawState->printBuffer[msg_drawState->drawBufferPos + 2]; - msg_drawState->msgScale.y = (f32)(packedScaleY >> 4) + ((packedScaleY & 0xF) * 0.0625f); - msg_drawState->drawBufferPos += 3; - if (msg_drawState->msgScale.x > 1.0 || msg_drawState->msgScale.y > 1.0) { - gDPSetTextureFilter(gMainGfxPos++, G_TF_POINT); - } else if (msg_drawState->msgScale.x < 1.0 || msg_drawState->msgScale.y < 1.0) { - gDPSetTextureFilter(gMainGfxPos++, G_TF_AVERAGE); - } - break; - case MSG_PRINT_FUNC_SIZE_RESET: - msg_drawState->msgScale.x = 1.0f; - msg_drawState->msgScale.y = 1.0f; - msg_drawState->drawBufferPos++; - gDPSetTextureFilter(gMainGfxPos++, G_TF_AVERAGE); - break; - case MSG_PRINT_FUNC_SET_X: - msg_drawState->nextPos[0] = msg_drawState->printBuffer[msg_drawState->drawBufferPos + 1] * 256 + - (msg_drawState->printBuffer[msg_drawState->drawBufferPos + 2]); - msg_drawState->drawBufferPos += 3; - break; - case MSG_PRINT_FUNC_SET_Y: - msg_drawState->nextPos[1] = msg_drawState->printBuffer[msg_drawState->drawBufferPos + 1]; - msg_drawState->drawBufferPos += 2; - break; - case MSG_PRINT_FUNC_RIGHT: - msg_drawState->nextPos[0] += msg_drawState->printBuffer[msg_drawState->drawBufferPos + 1]; - msg_drawState->drawBufferPos += 2; - break; - case MSG_PRINT_FUNC_DOWN: - msg_drawState->nextPos[1] += msg_drawState->printBuffer[msg_drawState->drawBufferPos + 1]; - msg_drawState->drawBufferPos += 2; - break; - case MSG_PRINT_FUNC_UP: - msg_drawState->nextPos[1] -= msg_drawState->printBuffer[msg_drawState->drawBufferPos + 1]; - msg_drawState->drawBufferPos += 2; - break; - case MSG_PRINT_FUNC_INLINE_IMAGE: - msgImageData = &(*gMsgVarImages)[msg_drawState->printBuffer[msg_drawState->drawBufferPos + 1]]; - phi_t5 = sp8E; - if (sp8E < 0xFF) { - phi_t5 = (s32)(sp8E * 0.7); - } - imgDrawPosX = (s16)((msg_drawState->nextPos[0] + (msg_drawState->textStartPos[0] + (printer->windowBasePos.x + posX))) - - additionalOffsetX); - imgDrawPosY = (s16)((msg_drawState->nextPos[1] + (msg_drawState->textStartPos[1] + (printer->windowBasePos.y + posY))) - - additionalOffsetY); - - draw_ci_image_with_clipping(msgImageData->raster, msgImageData->width, msgImageData->height, msgImageData->format, msgImageData->bitDepth, - msgImageData->palette, imgDrawPosX, imgDrawPosY, (s32) msg_drawState->clipX[0], (s32) msg_drawState->clipY[0], - msg_drawState->clipX[1] - msg_drawState->clipX[0], msg_drawState->clipY[1] - msg_drawState->clipY[0], phi_t5); - msg_drawState->printModeFlags |= (MSG_PRINT_FLAG_2 | MSG_PRINT_FLAG_10); - msg_drawState->drawBufferPos += 2; - break; - case MSG_PRINT_FUNC_ANIM_SPRITE: - phi_s0_6 = sp8E; - if (sp8E < 0xFF) { - phi_s0_6 = (s32)(sp8E * 0.7); - } - - if (spr_get_npc_raster_info(&sprRasterInfo, (msg_drawState->printBuffer[msg_drawState->drawBufferPos + 1] << 8) | - msg_drawState->printBuffer[msg_drawState->drawBufferPos + 2], - msg_drawState->printBuffer[msg_drawState->drawBufferPos + 3]) != 0) { - imgDrawPosX = (s16)((msg_drawState->nextPos[0] + (msg_drawState->textStartPos[0] + (printer->windowBasePos.x + posX))) - - additionalOffsetX); - imgDrawPosY = (s16)((msg_drawState->nextPos[1] + (msg_drawState->textStartPos[1] + (printer->windowBasePos.y + posY))) - - additionalOffsetY); - - draw_ci_image_with_clipping(sprRasterInfo.raster, sprRasterInfo.width, sprRasterInfo.height, G_IM_FMT_CI, G_IM_SIZ_4b, sprRasterInfo.defaultPal, imgDrawPosX, imgDrawPosY, - msg_drawState->clipX[0], msg_drawState->clipY[0], msg_drawState->clipX[1] - msg_drawState->clipX[0], - msg_drawState->clipY[1] - msg_drawState->clipY[0], phi_s0_6); - msg_drawState->printModeFlags |= MSG_PRINT_FLAG_10; - } - msg_drawState->drawBufferPos += 4; - break; - case MSG_PRINT_FUNC_ITEM_ICON: - if (D_8015131C != 0) { - phi_t3 = sp8E; - if (sp8E < 0xFF) { - phi_t3 = (s32)(sp8E * 0.7); - } - imgDrawPosX = (s16)((msg_drawState->nextPos[0] + (msg_drawState->textStartPos[0] + (printer->windowBasePos.x + posX))) - - additionalOffsetX); - imgDrawPosY = (s16)((msg_drawState->nextPos[1] + (msg_drawState->textStartPos[1] + (printer->windowBasePos.y + posY))) - - additionalOffsetY); - - draw_ci_image_with_clipping(D_80159B50, 32, 32, G_IM_FMT_CI, G_IM_SIZ_4b, D_8015C7E0, imgDrawPosX, imgDrawPosY, msg_drawState->clipX[0], - msg_drawState->clipY[0], msg_drawState->clipX[1] - msg_drawState->clipX[0], - msg_drawState->clipY[1] - msg_drawState->clipY[0], phi_t3); - msg_drawState->printModeFlags |= MSG_PRINT_FLAG_10; - } - msg_drawState->drawBufferPos++; - break; - case MSG_PRINT_FUNC_ANIM_DELAY: - animIdx = msg_drawState->printBuffer[msg_drawState->drawBufferPos + 1]; - if (printer->animTimers[animIdx] == -1) { - printer->animTimers[animIdx] = msg_drawState->printBuffer[msg_drawState->drawBufferPos + 3]; - } - if (printer->animTimers[animIdx] == 0) { - printer->curAnimFrame[animIdx]++; - } - - dbPos = msg_drawState->drawBufferPos; - while (TRUE) { - if ((msg_drawState->printBuffer[dbPos - 1] == MSG_CHAR_PRINT_FUNCTION) && - (msg_drawState->printBuffer[dbPos] == MSG_PRINT_FUNC_ANIM_DELAY) && - (msg_drawState->printBuffer[dbPos + 1] == animIdx)) { - if (msg_drawState->printBuffer[dbPos + 2] != printer->curAnimFrame[animIdx]) { - dbPos += 4; - } else { - break; - } - } else { - if ((msg_drawState->printBuffer[dbPos] == MSG_CHAR_PRINT_FUNCTION) && - (msg_drawState->printBuffer[dbPos + 1] == MSG_PRINT_FUNC_ANIM_LOOP) && - (msg_drawState->printBuffer[dbPos + 2] == animIdx)) { - - if (printer->animTimers[animIdx] == 0) { - printer->curAnimFrame[animIdx] = msg_drawState->printBuffer[dbPos + 3]; - dbPos = msg_drawState->drawBufferPos; - continue; - } else { - dbPos++; - break; - } - } else { - if (msg_drawState->printBuffer[dbPos] == MSG_CHAR_PRINT_FUNCTION && - msg_drawState->printBuffer[dbPos + 1] == MSG_PRINT_FUNC_ANIM_DONE) { - if (msg_drawState->printBuffer[dbPos + 2] == animIdx) { - dbPos++; - break; - } - } - } - } - dbPos++; - } - msg_drawState->drawBufferPos = dbPos; - - switch (msg_drawState->printBuffer[msg_drawState->drawBufferPos]) { - case MSG_PRINT_FUNC_ANIM_DELAY: - if (printer->animTimers[animIdx] == 0) { - if (msg_drawState->printBuffer[msg_drawState->drawBufferPos + 3] == 0) { - printer->animTimers[animIdx] = -2; - } else { - printer->animTimers[animIdx] = msg_drawState->printBuffer[msg_drawState->drawBufferPos + 3]; - } - } - msg_drawState->drawBufferPos += 4; - break; - case MSG_PRINT_FUNC_ANIM_LOOP: - msg_drawState->drawBufferPos += 3; - break; - case MSG_PRINT_FUNC_ANIM_DONE: - msg_drawState->drawBufferPos += 2; - break; - } - break; - case MSG_PRINT_FUNC_ANIM_LOOP: - msg_drawState->drawBufferPos += 3; - break; - case MSG_PRINT_FUNC_ANIM_DONE: - msg_drawState->drawBufferPos += 2; - break; - case MSG_PRINT_FUNC_CURSOR: - printer->cursorPosX[msg_drawState->printBuffer[msg_drawState->drawBufferPos + 1]] = msg_drawState->textStartPos[0] + - msg_drawState->nextPos[0] - additionalOffsetX - 6; - printer->cursorPosY[msg_drawState->printBuffer[msg_drawState->drawBufferPos + 1]] = msg_drawState->textStartPos[1] + - msg_drawState->nextPos[1] - additionalOffsetY - 1; - msg_drawState->drawBufferPos += 2; - break; - case MSG_PRINT_FUNC_OPTION: - if (msg_drawState->printBuffer[msg_drawState->drawBufferPos + 1] == 0xFF) { - msg_drawState->printModeFlags &= ~MSG_PRINT_FLAG_20; - } else { - msg_drawState->unk_2D = msg_drawState->printBuffer[msg_drawState->drawBufferPos + 1]; - msg_drawState->printModeFlags |= MSG_PRINT_FLAG_20; - msg_drawState->nextPos[0] += 14; - } - msg_drawState->drawBufferPos += 2; - break; - case MSG_PRINT_FUNC_SET_FRAME_PALETTE: - msg_drawState->framePalette = msg_drawState->printBuffer[msg_drawState->drawBufferPos + 1]; - msg_drawState->drawBufferPos += 2; - break; - case MSG_PRINT_RESET_GFX: - msg_reset_gfx_state(); - msg_drawState->drawBufferPos++; - break; - case MSG_PRINT_FUNC_SAVE_POS: - msg_drawState->savedPos[0] = msg_drawState->nextPos[0]; - msg_drawState->savedPos[1] = msg_drawState->nextPos[1]; - msg_drawState->drawBufferPos++; - break; - case MSG_PRINT_FUNC_RESTORE_POS: - msg_drawState->nextPos[0] = msg_drawState->savedPos[0]; - msg_drawState->nextPos[1] = msg_drawState->savedPos[1]; - msg_drawState->drawBufferPos++; - break; - case MSG_PRINT_FUNC_SAVE_COLOR: - msg_drawState->savedColor = msg_drawState->textColor; - msg_drawState->drawBufferPos++; - break; - case MSG_PRINT_FUNC_RESTORE_COLOR: - msg_drawState->textColor = msg_drawState->savedColor; - msg_drawState->drawBufferPos++; - break; - case MSG_PRINT_FUNC_START_FX: - switch (msg_drawState->printBuffer[msg_drawState->drawBufferPos + 1]) { - case MSG_FX_SHAKE: - msg_drawState->effectFlags |= MSG_FX_FLAG_SHAKE; - msg_drawState->drawBufferPos += 2; - break; - case MSG_FX_WAVE: - msg_drawState->effectFlags |= MSG_FX_FLAG_WAVE; - msg_drawState->drawBufferPos += 2; - break; - case MSG_FX_NOISE_OUTLINE: - msg_drawState->effectFlags |= MSG_FX_FLAG_NOISE_OUTLINE; - gDPSetCombineMode(gMainGfxPos++, PM_CC_MSG_NOISE_OUTLINE, PM_CC_MSG_NOISE_OUTLINE); - msg_drawState->drawBufferPos += 2; - break; - case MSG_FX_STATIC: - msg_drawState->effectFlags |= MSG_FX_FLAG_STATIC; - gDPSetEnvColor(gMainGfxPos++, - msg_drawState->printBuffer[msg_drawState->drawBufferPos + 2], - msg_drawState->printBuffer[msg_drawState->drawBufferPos + 2], - msg_drawState->printBuffer[msg_drawState->drawBufferPos + 2], - 0); - gDPSetCombineMode(gMainGfxPos++, PM_CC_MSG_STATIC, PM_CC_MSG_STATIC); - msg_drawState->drawBufferPos += 3; - break; - case MSG_FX_BLUR: - msg_drawState->effectFlags |= MSG_FX_FLAG_BLUR; - spB8 = msg_drawState->printBuffer[msg_drawState->drawBufferPos + 2]; - msg_drawState->drawBufferPos += 3; - break; - case MSG_FX_RAINBOW: - msg_drawState->effectFlags |= MSG_FX_FLAG_RAINBOW; - msg_drawState->drawBufferPos += 2; - break; - case MSG_FX_DITHER_FADE: - msg_drawState->effectFlags |= MSG_FX_FLAG_DITHER_FADE; - spB6 = msg_drawState->printBuffer[msg_drawState->drawBufferPos + 2]; - msg_drawState->drawBufferPos += 3; - break; - case MSG_FX_GLOBAL_WAVE: - msg_drawState->effectFlags |= MSG_FX_FLAG_GLOBAL_WAVE; - msg_drawState->drawBufferPos += 2; - break; - case MSG_FX_GLOBAL_RAINBOW: - msg_drawState->effectFlags |= MSG_FX_FLAG_GLOBAL_RAINBOW; - msg_drawState->drawBufferPos += 2; - break; - case MSG_FX_RISE_PRINT: - msg_drawState->effectFlags |= MSG_FX_FLAG_RISE_PRINT; - msg_drawState->drawBufferPos += 2; - break; - case MSG_FX_GROW_PRINT: - msg_drawState->effectFlags |= MSG_FX_FLAG_GROW_PRINT; - msg_drawState->drawBufferPos += 2; - break; - case MSG_FX_SIZE_JITTER: - msg_drawState->effectFlags |= MSG_FX_FLAG_SIZE_JITTER; - msg_drawState->drawBufferPos += 2; - break; - case MSG_FX_SIZE_WAVE: - msg_drawState->effectFlags |= MSG_FX_FLAG_SIZE_WAVE; - msg_drawState->drawBufferPos += 2; - break; - case MSG_FX_DROP_SHADOW: - msg_drawState->effectFlags |= MSG_FX_FLAG_DROP_SHADOW; - msg_drawState->drawBufferPos += 2; - break; - } - break; - case MSG_PRINT_FUNC_END_FX: - switch (msg_drawState->printBuffer[msg_drawState->drawBufferPos + 1]) { - case MSG_FX_SHAKE: - msg_drawState->effectFlags &= ~MSG_FX_FLAG_SHAKE; - break; - case MSG_FX_WAVE: - msg_drawState->effectFlags &= ~MSG_FX_FLAG_WAVE; - break; - case MSG_FX_NOISE_OUTLINE: - msg_drawState->effectFlags &= ~MSG_FX_FLAG_NOISE_OUTLINE; - break; - case MSG_FX_STATIC: - msg_drawState->effectFlags &= ~MSG_FX_FLAG_STATIC; - break; - case MSG_FX_BLUR: - msg_drawState->effectFlags &= ~MSG_FX_FLAG_BLUR; - break; - case MSG_FX_RAINBOW: - msg_drawState->effectFlags &= ~MSG_FX_FLAG_RAINBOW; - msg_drawState->printModeFlags |= MSG_PRINT_FLAG_10; - break; - case MSG_FX_DITHER_FADE: - msg_drawState->effectFlags &= ~MSG_FX_FLAG_DITHER_FADE; - break; - case MSG_FX_GLOBAL_WAVE: - msg_drawState->effectFlags &= ~MSG_FX_FLAG_GLOBAL_WAVE; - break; - case MSG_FX_GLOBAL_RAINBOW: - msg_drawState->effectFlags &= ~MSG_FX_FLAG_GLOBAL_RAINBOW; - msg_drawState->printModeFlags |= MSG_PRINT_FLAG_10; - break; - case MSG_FX_RISE_PRINT: - msg_drawState->effectFlags &= ~MSG_FX_FLAG_RISE_PRINT; - break; - case MSG_FX_GROW_PRINT: - msg_drawState->effectFlags &= ~MSG_FX_FLAG_GROW_PRINT; - break; - case MSG_FX_SIZE_JITTER: - msg_drawState->effectFlags &= ~MSG_FX_FLAG_SIZE_JITTER; - break; - case MSG_FX_SIZE_WAVE: - msg_drawState->effectFlags &= ~MSG_FX_FLAG_SIZE_WAVE; - break; - case MSG_FX_DROP_SHADOW: - msg_drawState->effectFlags &= ~MSG_FX_FLAG_DROP_SHADOW; - break; - } - msg_drawState->drawBufferPos += 2; - break; - case MSG_PRINT_FUNC_CENTER_X: - if (msg_drawState->printBuffer[msg_drawState->drawBufferPos + 1] != 0) { - msg_drawState->centerPos = msg_drawState->printBuffer[msg_drawState->drawBufferPos + 1]; - if (msg_drawState->centerPos == 0xFF) { - msg_drawState->centerPos = printer->windowSize.x / 2; - } - msg_drawState->printModeFlags |= (MSG_PRINT_FLAG_40 | MSG_PRINT_FLAG_80); - } else { - msg_drawState->nextPos[0] = 0; - msg_drawState->printModeFlags &= ~(MSG_PRINT_FLAG_40 | MSG_PRINT_FLAG_80); - } - msg_drawState->drawBufferPos += 2; - break; - } - break; - default: - if (msg_drawState->printModeFlags & MSG_PRINT_FLAG_2) { - sp96 = 0xFF; - gDPPipeSync(gMainGfxPos++); - gSPDisplayList(gMainGfxPos++, D_8014C500); - } - msg_drawState->charScale.x = msg_drawState->msgScale.x; - msg_drawState->charScale.y = msg_drawState->msgScale.y; - if (msg_drawState->printModeFlags & MSG_PRINT_FLAG_80) { - msg_drawState->nextPos[0] += msg_drawState->centerPos - printer->msgWidth / 2; - msg_drawState->printModeFlags &= ~MSG_PRINT_FLAG_80; - } - if (msg_drawState->printModeFlags & MSG_PRINT_FLAG_40) { - charPosX = (u16) msg_drawState->nextPos[0] + ((u16) printer->windowBasePos.x + (u16) posX); - } else { - charPosX = (u16) msg_drawState->nextPos[0] + ((u16) msg_drawState->textStartPos[0] + ((u16) printer->windowBasePos.x + - (u16) posX)); - } - - msgCharset = MsgCharsets[msg_drawState->font]; - charPosY = (s8) msgCharset->rasters[msg_drawState->fontVariant].baseHeightOffset + (msg_drawState->nextPos[1] + - (msg_drawState->textStartPos[1] + (printer->windowBasePos.y + posY)) - additionalOffsetY); - - if ((sp8E != 0) && - (charPosX < msg_drawState->clipX[1]) && - (charPosY < msg_drawState->clipY[1]) && - (msg_drawState->clipX[0] < charPosX + (s32)(msg_drawState->msgScale.x * - msgCharset->rasters[msg_drawState->fontVariant].monospaceWidth)) && - (msg_drawState->clipY[0] < charPosY + (s32)(msg_drawState->msgScale.y * msgCharset->newLineY + - MsgStyleVerticalLineOffsets[printer->style]))) { - palette = msg_drawState->textColor; - phi_s2_5 = sp8E; - if (msg_drawState->effectFlags & MSG_FX_FLAG_BLUR) { - phi_s2_5 = (f32) phi_s2_5 * 0.35; - } - if ((printer->windowState == MSG_WINDOW_STATE_WAITING_FOR_CHOICE) && (msg_drawState->printModeFlags & MSG_PRINT_FLAG_20)) { - if (msg_drawState->unk_2D == printer->curOption) { - msg_drawState->effectFlags |= MSG_FX_FLAG_DROP_SHADOW | MSG_FX_FLAG_GLOBAL_RAINBOW | MSG_FX_FLAG_GLOBAL_WAVE; - } else { - msg_drawState->effectFlags &= ~MSG_FX_FLAG_GLOBAL_RAINBOW; - msg_drawState->effectFlags &= ~MSG_FX_FLAG_GLOBAL_WAVE; - msg_drawState->effectFlags &= ~MSG_FX_FLAG_DROP_SHADOW; - palette = msg_drawState->textColor; - msg_drawState->printModeFlags |= MSG_PRINT_FLAG_10; - } - } - if (msg_drawState->effectFlags & MSG_FX_FLAG_SHAKE) { - charPosX += rand_int(10000) % 2; - charPosY += rand_int(10000) % 2; - } - if (msg_drawState->effectFlags & MSG_FX_FLAG_WAVE) { - temp_f2_3 = msg_drawState->msgScale.x - 1.0; - temp_s0_7 = (printer->effectFrameCounter * (s32)(20.0 - (temp_f2_3 * 5.0))) - (msg_drawState->visiblePrintedCount * - (s32)(45.0 - (temp_f2_3 * 15.0))); - charPosX += cosine(temp_s0_7) * ((msg_drawState->msgScale.x - 1.0) + 1.6); - charPosY += cosine((temp_s0_7 + 180.0 + 90.0)) * (msg_drawState->msgScale.y - 1.0 + 1.6); - } - if (msg_drawState->effectFlags & MSG_FX_FLAG_GLOBAL_WAVE) { - temp_s0_8 = (gMsgGlobalWaveCounter * (s32)(20.0 - ((msg_drawState->msgScale.x - 1.0) * 5.0))) - - (msg_drawState->visiblePrintedCount * 45); - charPosX += cosine(temp_s0_8) * ((msg_drawState->msgScale.x - 1.0) + 1.6); - charPosY += cosine((temp_s0_8 + 180.0 + 90.0)) * ((msg_drawState->msgScale.y - 1.0) + 1.6); - } - if (msg_drawState->effectFlags & MSG_FX_FLAG_RAINBOW) { - palette = abs(msg_drawState->visiblePrintedCount - (u16)(printer->effectFrameCounter / 3)) % 10; - } - if (msg_drawState->effectFlags & MSG_FX_FLAG_GLOBAL_RAINBOW) { - palette = abs(msg_drawState->visiblePrintedCount - (u16)(gGameStatusPtr->frameCounter / 3)) % 10; - } - if (msg_drawState->effectFlags & MSG_FX_FLAG_DITHER_FADE) { - gDPSetAlphaDither(gMainGfxPos++, G_AD_NOISE); - gDPSetAlphaCompare(gMainGfxPos++, G_AC_DITHER); - phi_s2_5 = spB6 * (phi_s2_5 / 255.0); - } - if ((msg_drawState->printModeFlags & MSG_PRINT_FLAG_2) || (phi_s2_5 != sp96)) { - if ((sp96 < 0xFF) && (phi_s2_5 < 0xFF)) { - gDPSetPrimColor(gMainGfxPos++, 0, 0, 0, 0, 0, phi_s2_5); - } else if ((sp96 == 0xFF) && (phi_s2_5 < 0xFF)) { - gDPPipeSync(gMainGfxPos++); - if (printer->stateFlags & MSG_STATE_FLAG_4000) { - gDPSetRenderMode(gMainGfxPos++, IM_RD | CVG_DST_CLAMP | ZMODE_XLU | FORCE_BL | GBL_c1(G_BL_CLR_IN, G_BL_A_IN, - G_BL_CLR_MEM, G_BL_1MA), IM_RD | CVG_DST_CLAMP | ZMODE_XLU | FORCE_BL | GBL_c2(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, - G_BL_1MA)); - - } else { - gDPSetRenderMode(gMainGfxPos++, IM_RD | CVG_DST_SAVE | ZMODE_XLU | FORCE_BL | GBL_c1(G_BL_CLR_IN, G_BL_A_IN, - G_BL_CLR_MEM, G_BL_1MA), IM_RD | CVG_DST_SAVE | ZMODE_XLU | FORCE_BL | GBL_c2(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, - G_BL_1MA)); - - } - gDPSetCombineMode(gMainGfxPos++, PM_CC_02, PM_CC_02); - gDPSetPrimColor(gMainGfxPos++, 0, 0, 0, 0, 0, phi_s2_5); - } else if ((sp96 < 0xFF) && (phi_s2_5 == 0xFF)) { - gDPPipeSync(gMainGfxPos++); - gDPSetRenderMode(gMainGfxPos++, G_RM_TEX_EDGE, G_RM_TEX_EDGE2); - gDPSetCombineMode(gMainGfxPos++, G_CC_DECALRGBA, G_CC_DECALRGBA); - } - sp96 = phi_s2_5; - } - if (phi_s2_5 > 0) { - if (msg_drawState->effectFlags & MSG_FX_FLAG_RISE_PRINT) { - if ((msg_drawState->printBuffer[msg_drawState->drawBufferPos + 1] != MSG_CHAR_PRINT_ENDL) && - (msg_drawState->printBuffer[msg_drawState->drawBufferPos + 2] != MSG_CHAR_PRINT_ENDL) && - (msg_drawState->printBuffer[msg_drawState->drawBufferPos + 3] != MSG_CHAR_PRINT_ENDL) && - (msg_drawState->printBuffer[msg_drawState->drawBufferPos + 4] != MSG_CHAR_PRINT_ENDL)) { - if ((msg_drawState->printBuffer[msg_drawState->drawBufferPos + 1] == MSG_CHAR_PRINT_END) && - (printer->windowState == MSG_WINDOW_STATE_PRINTING)) { - msg_drawState->charScale.x = msg_drawState->msgScale.x * 1.7; - msg_drawState->charScale.y = msg_drawState->msgScale.y * 1.7; - temp_f8 = (msg_drawState->charScale.y / 1.7) * 6.0; - charPosX -= temp_f8; - charPosY -= temp_f8; - } else if ((msg_drawState->printBuffer[msg_drawState->drawBufferPos + 2] == MSG_CHAR_PRINT_END) && - (printer->windowState == MSG_WINDOW_STATE_PRINTING)) { - msg_drawState->charScale.x = msg_drawState->msgScale.x * 1.4; - msg_drawState->charScale.y = msg_drawState->msgScale.y * 1.4; - temp_f8 = (msg_drawState->charScale.y / 1.4) * 3.0; - charPosX -= temp_f8; - charPosY -= temp_f8; - } else if ((msg_drawState->printBuffer[msg_drawState->drawBufferPos + 3] == MSG_CHAR_PRINT_END) && - (printer->windowState == MSG_WINDOW_STATE_PRINTING)) { - msg_drawState->charScale.x = msg_drawState->msgScale.x * 1.2; - msg_drawState->charScale.y = msg_drawState->msgScale.y * 1.2; - temp_f8 = (msg_drawState->charScale.y / 1.2) * 2.0; - charPosX -= temp_f8; - charPosY -= temp_f8; - } - } - } else if (msg_drawState->effectFlags & MSG_FX_FLAG_GROW_PRINT) { - if ((msg_drawState->printBuffer[msg_drawState->drawBufferPos + 1] != MSG_CHAR_PRINT_ENDL) && - (msg_drawState->printBuffer[msg_drawState->drawBufferPos + 2] != MSG_CHAR_PRINT_ENDL) && - (msg_drawState->printBuffer[msg_drawState->drawBufferPos + 3] != MSG_CHAR_PRINT_ENDL) && - (msg_drawState->printBuffer[msg_drawState->drawBufferPos + 4] != MSG_CHAR_PRINT_ENDL)) { - if ((msg_drawState->printBuffer[msg_drawState->drawBufferPos + 1] == MSG_CHAR_PRINT_END) && - (printer->windowState == MSG_WINDOW_STATE_PRINTING)) { - msg_drawState->charScale.x = msg_drawState->msgScale.x * 0.3; - msg_drawState->charScale.y = msg_drawState->msgScale.y * 0.3; - charPosX += 5; - charPosY += 5; - } else if ((msg_drawState->printBuffer[msg_drawState->drawBufferPos + 2] == MSG_CHAR_PRINT_END) && - (printer->windowState == MSG_WINDOW_STATE_PRINTING)) { - msg_drawState->charScale.x = msg_drawState->msgScale.x * 0.5; - msg_drawState->charScale.y = msg_drawState->msgScale.y * 0.5; - charPosX += 3; - charPosY += 3; - } else if ((msg_drawState->printBuffer[msg_drawState->drawBufferPos + 3] == MSG_CHAR_PRINT_END) && - (printer->windowState == MSG_WINDOW_STATE_PRINTING)) { - msg_drawState->charScale.x = msg_drawState->msgScale.x * 0.75; - msg_drawState->charScale.y = msg_drawState->msgScale.y * 0.75; - charPosX += 2; - charPosY += 2; - } - } - } else if (msg_drawState->effectFlags & MSG_FX_FLAG_SIZE_JITTER) { - temp_f8_5 = rand_int(10000) % 101; - temp_f8_5 /= 100.0; - temp_f8_5 = ((temp_f8_5 * 0.5) + 1.0) - 0.25; - - if (temp_f8_5 > 1.0) { - msg_drawState->charScale.x = msg_drawState->msgScale.x * temp_f8_5; - msg_drawState->charScale.y = msg_drawState->msgScale.y * temp_f8_5; - charPosX -= (temp_f8_5 * 8.0) - 8.5; - charPosY -= (temp_f8_5 * 8.0) - 8.5; - } else if (temp_f8_5 < 1.0) { - msg_drawState->charScale.x = msg_drawState->msgScale.x * temp_f8_5; - msg_drawState->charScale.y = msg_drawState->msgScale.y * temp_f8_5; - charPosX += 8.0 - (temp_f8_5 * 16.0) * 0.5; - charPosY += 8.0 - (temp_f8_5 * 16.0) * 0.5; - } - } else if (msg_drawState->effectFlags & MSG_FX_FLAG_SIZE_WAVE) { - s32 mod360; - - temp_a0_49 = printer->effectFrameCounter * 15; - temp_a0_49 -= msg_drawState->visiblePrintedCount * 15; - mod360 = temp_a0_49 % 360; - temp_f8_5 = (cosine(mod360) * 0.25) + 1.0; - - if (temp_f8_5 > 1.0) { - msg_drawState->charScale.x = msg_drawState->msgScale.x * temp_f8_5; - msg_drawState->charScale.y = msg_drawState->msgScale.y * temp_f8_5; - charPosX -= (temp_f8_5 * 8.0) - 8.5; - charPosY -= (temp_f8_5 * 8.0) - 8.5; - } else if (temp_f8_5 < 1.0) { - msg_drawState->charScale.x = msg_drawState->msgScale.x * temp_f8_5; - msg_drawState->charScale.y = msg_drawState->msgScale.y * temp_f8_5; - charPosX += 8.0 - (temp_f8_5 * 16.0) * 0.5; - charPosY += 8.0 - (temp_f8_5 * 16.0) * 0.5; - } - } - - if ((printer->windowState == MSG_WINDOW_STATE_B || printer->windowState == MSG_WINDOW_STATE_C) && - (printer->style == MSG_STYLE_RIGHT || - printer->style == MSG_STYLE_LEFT || - printer->style == MSG_STYLE_CENTER || - printer->style == MSG_STYLE_TATTLE)) - { - switch (palette) { - case MSG_PAL_WHITE: - case MSG_PAL_RED: - case MSG_PAL_10: - case MSG_PAL_11: - case MSG_PAL_12: - case MSG_PAL_13: - case MSG_PAL_14: - break; - case MSG_PAL_STANDARD: - palette = MSG_PAL_40; - break; - case MSG_PAL_20: - palette = MSG_PAL_41; - break; - case MSG_PAL_22: - palette = MSG_PAL_42; - break; - case MSG_PAL_23: - palette = MSG_PAL_43; - break; - case MSG_PAL_25: - palette = MSG_PAL_44; - break; - default: - palette = MSG_PAL_40; - break; - } - } - if (palette != sp9E) { - sp9E = palette; - msg_drawState->printModeFlags |= MSG_PRINT_FLAG_10; - } - if ((msg_drawState->effectFlags & MSG_FX_FLAG_DROP_SHADOW) && (phi_s2_5 == 0xFF)) { - gDPPipeSync(gMainGfxPos++); - gDPSetRenderMode(gMainGfxPos++, G_RM_XLU_SURF, G_RM_XLU_SURF2); - gDPSetCombineMode(gMainGfxPos++, PM_CC_07, PM_CC_07); - gDPSetPrimColor(gMainGfxPos++, 0, 0, 40, 40, 40, 72); - msg_draw_char(printer, msg_drawState, - msg_drawState->printBuffer[msg_drawState->drawBufferPos], - palette, charPosX + 2, charPosY + 2); - gDPPipeSync(gMainGfxPos++); - gDPSetRenderMode(gMainGfxPos++, G_RM_TEX_EDGE, G_RM_TEX_EDGE2); - gDPSetCombineMode(gMainGfxPos++, G_CC_DECALRGBA, G_CC_DECALRGBA); - } - - if (msg_drawState->effectFlags & MSG_FX_FLAG_BLUR) { - for (i = 0; i < 5; i++) { - phi_s0_7 = charPosX; - phi_s1_8 = charPosY; - if (spB8 != 2) { - phi_s0_7 += (rand_int(10000) % 3) - 1; - } - if (spB8 != 1) { - phi_s1_8 += (rand_int(10000) % 3) - 1; - } - msg_draw_char(printer, msg_drawState, - msg_drawState->printBuffer[msg_drawState->drawBufferPos], palette, - phi_s0_7, phi_s1_8); - } - } else { - msg_draw_char(printer, msg_drawState, - msg_drawState->printBuffer[msg_drawState->drawBufferPos], palette, charPosX, - charPosY); - } - } - } - if (msg_drawState->printModeFlags & MSG_PRINT_FLAG_2) { - msg_drawState->printModeFlags &= ~MSG_PRINT_FLAG_2; - } - msg_drawState->visiblePrintedCount += 1; - msg_drawState->nextPos[0] += - msg_get_draw_char_width(msg_drawState->printBuffer[msg_drawState->drawBufferPos], - msg_drawState->font, msg_drawState->fontVariant, msg_drawState->msgScale.x, - msg_drawState->curPosX, msg_drawState->printModeFlags); - msg_drawState->drawBufferPos++; - break; - } - } - - varImgHasBorder = FALSE; - if (printer->varImageScreenPos.x != 0) { - s16 varImgFinalAlpha; - - varImgFinalAlpha = printer->varImgFinalAlpha; - msgVarImage = &(*gMsgVarImages)[printer->curImageIndex]; - - switch (printer->varImgHasBorder) { - case 0: - case 1: - if (printer->varImgHasBorder) { - varImgHasBorder = TRUE; - } - switch (printer->varImageDisplayState) { - case 0: - printer->varImageFadeTimer++; - varImgFinalAlpha = printer->varImageFadeTimer * printer->varImgAlphaFadeStep; - if (printer->varImgFinalAlpha <= varImgFinalAlpha) { - varImgFinalAlpha = printer->varImgFinalAlpha; - printer->varImageFadeTimer = 0; - printer->varImageDisplayState = 1; - } - break; - case 1: - varImgFinalAlpha = (u8)(((f32) spAE / 255.0) * (f32) printer->varImgFinalAlpha); - break; - case 2: - printer->varImageFadeTimer++; - varImgFinalAlpha = printer->varImgFinalAlpha - printer->varImgAlphaFadeStep * printer->varImageFadeTimer; - if (varImgFinalAlpha < 1) { - printer->varImageScreenPos.x = 0; - } - break; - } - break; - case 2: - varImgFinalAlpha = (u8)(((f32) spAE / 255.0) * (f32) printer->varImgFinalAlpha); - break; - } - - if (varImgFinalAlpha > 0) { - if (varImgHasBorder) { - draw_box(0, WINDOW_STYLE_15, printer->varImageScreenPos.x - 7, printer->varImageScreenPos.y - 7, 0, - msgVarImage->width + 15, msgVarImage->height + 14, varImgFinalAlpha, 0, 0.0f, 0.0f, 0.0f, 0.0f, - 0.0f, NULL, 0, NULL, SCREEN_WIDTH, SCREEN_HEIGHT, NULL); - } - draw_ci_image_with_clipping(msgVarImage->raster, msgVarImage->width, msgVarImage->height, - msgVarImage->format, msgVarImage->bitDepth, msgVarImage->palette, - printer->varImageScreenPos.x, printer->varImageScreenPos.y, 0, 0, - SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1, varImgFinalAlpha); - } - - } - gDPPipeSync(gMainGfxPos++); - D_80151338 = gMainGfxPos; -} -#endif - -void msg_reset_gfx_state(void) { - gDPPipeSync(gMainGfxPos++); - gSPDisplayList(gMainGfxPos++, D_8014C500); -} - -void msg_draw_char(MessagePrintState* printer, MessageDrawState* drawState, s32 charIndex, s32 palette, s32 posX, s32 posY) { - MessageCharset* messageCharset; - s32 fontVariant; - - s32 clipUly; - s32 clipLry; - s32 clipUlx; - s32 clipLrx; - - s32 rightPosX; - s32 rightPosY; - - f32 clipOffset; - s32 ulx, texOffsetX; - s32 uly, texOffsetY; - s32 lrx, lry; - s32 dsdx, dtdy; - s32 posX2, posY2; - -#if VERSION_IQUE - if (charIndex == MSG_CHAR_ZH_RANK) { - load_font_data(((u8 (*)[128])charset_standard_OFFSET)[charIndex], sizeof(D_801544A0[0]), D_801544A0[0]); - } else if (charIndex == MSG_CHAR_ZH_CHAPTER) { - load_font_data(((u8 (*)[128])charset_standard_OFFSET)[charIndex], sizeof(D_801544A0[0]), D_801544A0[1]); - } else if (charIndex >= MSG_CHAR_ZH_START) { - load_font_data(((u8 (*)[128])charset_standard_OFFSET)[charIndex], sizeof(D_801544A0[0]), D_801544A0[D_8014AD24]); - } -#endif - - messageCharset = MsgCharsets[drawState->font]; - fontVariant = drawState->fontVariant; - - clipUly = drawState->clipY[0]; - clipLry = drawState->clipY[1]; - clipUlx = drawState->clipX[0]; - clipLrx = drawState->clipX[1]; - - posX2 = posX; - posY2 = posY; - - rightPosX = posX2 + (s32)(drawState->charScale.x * messageCharset->texSize.x); - rightPosY = posY2 + (s32)(drawState->charScale.y * messageCharset->texSize.y); - - if (posX2 >= clipLrx || posY2 >= clipLry || rightPosX <= clipUlx || rightPosY <= clipUly) { - return; - } - - if (posX2 < clipUlx) { - clipOffset = abs(posX2 - clipUlx) / drawState->charScale.x; - texOffsetX = (f32)((clipOffset + 0.5) * 32.0); - ulx = clipUlx; - } else { - texOffsetX = 0; - ulx = posX2; - } - - if (posY2 < clipUly) { - if (!(printer->stateFlags & MSG_STATE_FLAG_400) || posY2 < 0) { - clipOffset = abs(posY2 - clipUly) / drawState->charScale.y; - texOffsetY = clipOffset * 32.0f; - uly = clipUly; - } else { - texOffsetY = 0; - uly = posY2; - } - } else { - texOffsetY = 0; - uly = posY2; - } - - lrx = rightPosX; - if (lrx >= clipLrx) { - lrx = clipLrx; - } - - lry = rightPosY; - if (lry >= clipLry) { - lry = clipLry; - } - - dsdx = 1.0f / drawState->charScale.x * 1024.0f; - dtdy = 1.0f / drawState->charScale.y * 1024.0f; - - if (drawState->printModeFlags & (MSG_PRINT_FLAG_10 | MSG_PRINT_FLAG_1)) { - drawState->printModeFlags &= ~(MSG_PRINT_FLAG_10 | MSG_PRINT_FLAG_1); - gDPLoadTLUT_pal16(gMainGfxPos++, 0, D_802F4560[palette]); - } - - if (messageCharset->texSize.x >= 16 && messageCharset->texSize.x % 16 == 0) { -#if VERSION_IQUE - if (charIndex == MSG_CHAR_ZH_RANK || charIndex == MSG_CHAR_ZH_CHAPTER) { - gDPLoadTextureBlock_4b(gMainGfxPos++, D_801544A0[charIndex - MSG_CHAR_ZH_RANK], G_IM_FMT_CI, - messageCharset->texSize.x, messageCharset->texSize.y, 0, - G_TX_WRAP, G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); - } else if (charIndex >= MSG_CHAR_ZH_START) { - gDPLoadTextureBlock_4b(gMainGfxPos++, D_801544A0[D_8014AD24], G_IM_FMT_CI, - messageCharset->texSize.x, messageCharset->texSize.y, 0, - G_TX_WRAP, G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); - } else { -#endif - gDPLoadTextureBlock_4b(gMainGfxPos++, messageCharset->rasters[fontVariant].raster + messageCharset->charRasterSize * charIndex, G_IM_FMT_CI, - messageCharset->texSize.x, messageCharset->texSize.y, 0, - G_TX_WRAP, G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); -#if VERSION_IQUE - } -#endif - } else { -#if VERSION_IQUE - if (charIndex == MSG_CHAR_ZH_RANK || charIndex == MSG_CHAR_ZH_CHAPTER) { - gDPLoadTextureTile_4b(gMainGfxPos++, D_801544A0[charIndex - MSG_CHAR_ZH_RANK], G_IM_FMT_CI, - messageCharset->texSize.x, messageCharset->texSize.y, - 0, 0, messageCharset->texSize.x - 1, messageCharset->texSize.y - 1, 0, - G_TX_WRAP, G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); - } else if (charIndex >= MSG_CHAR_ZH_START) { - gDPLoadTextureTile_4b(gMainGfxPos++, D_801544A0[D_8014AD24], G_IM_FMT_CI, - messageCharset->texSize.x, messageCharset->texSize.y, - 0, 0, messageCharset->texSize.x - 1, messageCharset->texSize.y - 1, 0, - G_TX_WRAP, G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); - } else { -#endif - gDPLoadTextureTile_4b(gMainGfxPos++, messageCharset->rasters[fontVariant].raster + messageCharset->charRasterSize * charIndex, G_IM_FMT_CI, - messageCharset->texSize.x, messageCharset->texSize.y, - 0, 0, messageCharset->texSize.x - 1, messageCharset->texSize.y - 1, 0, - G_TX_WRAP, G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); -#if VERSION_IQUE - } -#endif - } - gSPTextureRectangle(gMainGfxPos++, ulx * 4, uly * 4, lrx * 4, lry * 4, G_TX_RENDERTILE, texOffsetX, texOffsetY, - dsdx, dtdy); - -#if VERSION_IQUE - if (charIndex >= MSG_CHAR_ZH_START) { - D_8014AD24 = (D_8014AD24 + 1) % 120; - if (D_8014AD24 == 0) { - D_8014AD24 = 2; - } - } -#endif -} - -void msg_draw_prim_rect(u8 r, u8 g, u8 b, u8 a, u16 posX, u16 posY, u16 sizeX, u16 sizeY) { - u16 lrX = posX + sizeX; - u16 lrY = posY + sizeY; - - appendGfx_msg_prim_rect(r, g, b, a, posX, posY, lrX, lrY); -} - -void appendGfx_msg_prim_rect(u8 r, u8 g, u8 b, u8 a, u16 ulX, u16 ulY, u16 lrX, u16 lrY) { - gDPPipeSync(gMainGfxPos++); - - if (a == 255) { - gDPSetCombineMode(gMainGfxPos++, PM_CC_PRIM_FULL_ALPHA, PM_CC_PRIM_FULL_ALPHA); - } else { - gDPSetRenderMode(gMainGfxPos++, G_RM_XLU_SURF, G_RM_XLU_SURF2); - gDPSetCombineMode(gMainGfxPos++, G_CC_PRIMITIVE, G_CC_PRIMITIVE); - } - - gDPSetPrimColor(gMainGfxPos++, 0, 0, r, g, b, a); - gDPFillRectangle(gMainGfxPos++, ulX, ulY, lrX, lrY); - gDPPipeSync(gMainGfxPos++); - gDPSetRenderMode(gMainGfxPos++, G_RM_TEX_EDGE, G_RM_TEX_EDGE2); - - switch (msg_drawState->unk_29) { - case 0: - gDPSetCombineMode(gMainGfxPos++, G_CC_DECALRGBA, G_CC_DECALRGBA); - break; - case 1: - gDPSetCombineMode(gMainGfxPos++, G_CC_MODULATEIDECALA_PRIM, G_CC_MODULATEIDECALA_PRIM); - break; - default: - gDPSetCombineMode(gMainGfxPos++, G_CC_DECALRGBA, G_CC_DECALRGBA); - break; - } -} - -void msg_draw_speech_bubble( - MessagePrintState* printer, - s16 posX, s16 posY, s16 straightWidth, s16 curveWidth, s16 height, f32 scaleX, f32 scaleY, u8 opacity, s32 arg9) -{ - Matrix4f sp20, sp60; - s16 temp_v0; - s16 temp_v0_2; - s32 negHeight; - - if (opacity == 255 && scaleX == 1.0 && scaleY == 1.0) { - msg_draw_prim_rect(32, 128, 240, 0, posX - 1, posY + 1, curveWidth + (straightWidth + curveWidth) + 2, height - 2); - } - - negHeight = -height; - - gMsgSpeechBoxLQuad[0].v.ob[0] = 1; - gMsgSpeechBoxLQuad[2].v.ob[0] = 1; - gMsgSpeechBoxLQuad[1].v.ob[0] = curveWidth; - gMsgSpeechBoxLQuad[3].v.ob[0] = curveWidth; - gMsgSpeechBoxLQuad[2].v.ob[1] = negHeight; - gMsgSpeechBoxLQuad[3].v.ob[1] = negHeight; - - temp_v0 = curveWidth + straightWidth; - - gMsgSpeechBoxMQuad[0].v.ob[0] = curveWidth; - gMsgSpeechBoxMQuad[2].v.ob[0] = curveWidth; - gMsgSpeechBoxMQuad[1].v.ob[0] = temp_v0; - gMsgSpeechBoxMQuad[3].v.ob[0] = temp_v0; - gMsgSpeechBoxMQuad[2].v.ob[1] = negHeight; - gMsgSpeechBoxMQuad[3].v.ob[1] = negHeight; - - temp_v0_2 = curveWidth + temp_v0; - - gMsgSpeechBoxRQuad[0].v.ob[0] = temp_v0; - gMsgSpeechBoxRQuad[2].v.ob[0] = temp_v0; - gMsgSpeechBoxRQuad[1].v.ob[0] = temp_v0_2; - gMsgSpeechBoxRQuad[3].v.ob[0] = temp_v0_2; - gMsgSpeechBoxRQuad[2].v.ob[1] = negHeight; - gMsgSpeechBoxRQuad[3].v.ob[1] = negHeight; - - guTranslateF(sp20, posX, -posY, 0.0f); - - if (scaleX != 1.0 || scaleY != 1.0) { - guScaleF(sp60, scaleX, scaleY, 1.0f); - guMtxCatF(sp60, sp20, sp20); - } - - guMtxF2L(sp20, &gDisplayContext->matrixStack[gMatrixListPos]); - - gSPMatrix(gMainGfxPos++, VIRTUAL_TO_PHYSICAL(&gDisplayContext->matrixStack[gMatrixListPos++]), - G_MTX_PUSH | G_MTX_LOAD | G_MTX_MODELVIEW); - - gDPPipeSync(gMainGfxPos++); - gDPSetCycleType(gMainGfxPos++, G_CYC_1CYCLE); - gSPClearGeometryMode(gMainGfxPos++, G_CULL_BOTH | G_LIGHTING); - gSPSetGeometryMode(gMainGfxPos++, G_SHADE | G_SHADING_SMOOTH); - gDPSetColorDither(gMainGfxPos++, G_CD_DISABLE); - gSPTexture(gMainGfxPos++, -1, -1, 0, G_TX_RENDERTILE, G_ON); - gDPSetTexturePersp(gMainGfxPos++, G_TP_PERSP); - - if (printer->maxLinesPerPage == 3) { - gDPSetTextureFilter(gMainGfxPos++, G_TF_POINT); - } else { - gDPSetTextureFilter(gMainGfxPos++, G_TF_BILERP); - } - - if (opacity >= 255) { - gDPSetRenderMode(gMainGfxPos++, AA_EN | CVG_DST_FULL | ZMODE_OPA | CVG_X_ALPHA | - GBL_c1(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_A_MEM), - AA_EN | CVG_DST_FULL | ZMODE_OPA | CVG_X_ALPHA | - GBL_c2(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_A_MEM)); - gDPSetCombineMode(gMainGfxPos++, G_CC_DECALRGBA, G_CC_DECALRGBA); - } else { - gDPSetRenderMode(gMainGfxPos++, IM_RD | CVG_DST_SAVE | ZMODE_XLU | FORCE_BL | - GBL_c1(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_1MA), - IM_RD | CVG_DST_SAVE | ZMODE_XLU | FORCE_BL | - GBL_c2(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_1MA)); - gDPSetCombineMode(gMainGfxPos++, PM_CC_02, PM_CC_02); - gDPSetPrimColor(gMainGfxPos++, 0, 0, 32, 32, 32, opacity); - } - - gDPSetTextureLUT(gMainGfxPos++, G_TT_RGBA16); - gDPSetTextureImage(gMainGfxPos++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, - ui_msg_palettes[msg_drawState->framePalette]); - gDPTileSync(gMainGfxPos++); - gDPSetTile(gMainGfxPos++, G_IM_FMT_RGBA, G_IM_SIZ_4b, 0, 0x0100, G_TX_LOADTILE, 0, - G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD); - gDPLoadSync(gMainGfxPos++); - gDPLoadTLUTCmd(gMainGfxPos++, G_TX_LOADTILE, 15); - gDPPipeSync(gMainGfxPos++); - gDPLoadTextureTile_4b(gMainGfxPos++, ui_msg_bubble_left_png, G_IM_FMT_CI, 32, 0, 0, 0, 31, 63, 0, - G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, 5, 6, G_TX_NOLOD, G_TX_NOLOD); - gSPVertex(gMainGfxPos++, gMsgSpeechBoxLQuad, 4, 0); - gSP2Triangles(gMainGfxPos++, 0, 2, 1, 0, 1, 2, 3, 0); - gDPLoadTextureTile_4b(gMainGfxPos++, ui_msg_bubble_mid_png, G_IM_FMT_CI, 8, 0, 0, 0, 7, 63, 0, - G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, 3, 6, G_TX_NOLOD, G_TX_NOLOD); - gSPVertex(gMainGfxPos++, gMsgSpeechBoxMQuad, 4, 0); - gSP2Triangles(gMainGfxPos++, 0, 2, 1, 0, 1, 2, 3, 0); - gDPLoadTextureTile_4b(gMainGfxPos++, ui_msg_bubble_right_png, G_IM_FMT_CI, 32, 0, 0, 0, 31, 63, 0, - G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, 5, 6, G_TX_NOLOD, G_TX_NOLOD); - gSPVertex(gMainGfxPos++, gMsgSpeechBoxRQuad, 4, 0); - gSP2Triangles(gMainGfxPos++, 0, 2, 1, 0, 1, 2, 3, 0); - gDPPipeSync(gMainGfxPos++); -} - -void msg_draw_speech_arrow(MessagePrintState* printer) { - s16 targetX, targetY; - f32 windowXpart; - s32 arrowLength; - Vtx* quad; - s32 angle; - f32 cosAngle, sinAngle; - Matrix4f sp10; - s16 x1, x2, x3, x4; - s32 y1, y2; - u8 pointRightSide = FALSE; - s16 windowX = printer->windowOffsetPos.x + printer->windowBasePos.x; - s16 windowY = printer->windowOffsetPos.y + printer->windowBasePos.y; - - if (printer->openStartPos.x == 0) { - return; - } - - if (printer->style == MSG_STYLE_RIGHT || - printer->style == MSG_STYLE_LEFT || - printer->style == MSG_STYLE_CENTER || - printer->maxLinesPerPage == 3) { - targetY = windowY + printer->windowSize.y - 4; - } else { - targetY = windowY + printer->windowSize.y - 3; - } - - if (printer->style == MSG_STYLE_LEFT) { - pointRightSide = FALSE; - } else if (printer->style == MSG_STYLE_CENTER || printer->openStartPos.x >= 160) { - pointRightSide = TRUE; - } - - if (pointRightSide) { - targetX = windowX + (f32)printer->windowSize.x * 0.7; - if (printer->openStartPos.x < targetX) { - for (windowXpart = 0.7f; windowXpart >= 0.67; windowXpart -= 0.005) { - targetX = windowX + printer->windowSize.x * windowXpart; - angle = atan2(printer->openStartPos.x, printer->openStartPos.y, targetX, targetY); - if (abs(angle) < 45) { - break; - } - } - } - } else { - targetX = windowX + (f32)printer->windowSize.x * 0.3; - if (printer->openStartPos.x > targetX) { - for (windowXpart = 0.3f; windowXpart <= 0.38; windowXpart += 0.005) { - targetX = windowX + printer->windowSize.x * windowXpart; - angle = atan2(printer->openStartPos.x, printer->openStartPos.y, targetX, targetY); - if (abs(angle) < 45) { - break; - } - } - } - } - - x1 = targetX - 9; - x2 = targetX + 9; - x3 = targetX; - - arrowLength = dist2D(printer->initOpenPos.x, printer->initOpenPos.y, targetX, targetY); - if (arrowLength < 10) { - return; - } - - if (arrowLength > 25) { - arrowLength = 25; - } - - // alternate quads between frames - if (gCurrentDisplayContextIndex != 0) { - quad = gMsgArrowQuad1; - } else { - quad = gMsgArrowQuad2; - } - - angle = atan2(targetX, targetY, printer->initOpenPos.x, printer->initOpenPos.y); - angle -= 180; - if (abs(angle) >= 75) { - return; - } - - cosAngle = cosine(angle); - sinAngle = cosine(angle + 90); - - x3 = x3 - arrowLength * cosAngle; - x4 = x3 + 1; - - y1 = -targetY; - y2 = -(s16)(targetY + arrowLength * sinAngle); - - quad[0].v.ob[0] = x1; - quad[0].v.ob[1] = y1; - quad[1].v.ob[0] = x2; - quad[1].v.ob[1] = y1; - - quad[2].v.ob[0] = x3; - quad[2].v.ob[1] = y2; - quad[3].v.ob[0] = x4; - quad[3].v.ob[1] = y2; - - gDPPipeSync(gMainGfxPos++); - gDPSetRenderMode(gMainGfxPos++, G_RM_OPA_SURF, G_RM_OPA_SURF2); - gDPSetCombineMode(gMainGfxPos++, PM_CC_0F, PM_CC_0F); - gDPSetTextureFilter(gMainGfxPos++, G_TF_BILERP); - gDPSetPrimColor(gMainGfxPos++, 0, 0, 32, 32, 32, 255); - gDPLoadTextureTile_4b(gMainGfxPos++, ui_msg_arrow_png, G_IM_FMT_CI, 16, 0, 0, 0, 15, 15, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, 4, 4, G_TX_NOLOD, G_TX_NOLOD); - guTranslateF(sp10, 0.0f, 0.0f, 0.0f); - guMtxF2L(sp10, &gDisplayContext->matrixStack[gMatrixListPos]); - gSPMatrix(gMainGfxPos++, VIRTUAL_TO_PHYSICAL(&gDisplayContext->matrixStack[gMatrixListPos++]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); - gSPVertex(gMainGfxPos++, quad, 4, 0); - gSP2Triangles(gMainGfxPos++, 0, 2, 1, 0, 1, 2, 3, 0); -} - -void msg_draw_frame(s32 posX, s32 posY, s32 sizeX, s32 sizeY, s32 style, s32 palette, s32 fading, s32 bgAlpha, s32 frameAlpha) { - s32 i; - s32 frameType; - s32 textures[16]; - u8 r, g, b; - Rect quads[16]; - - if (sizeX < 16 || sizeY < 16) { - return; - } - - if (fading != 0 && bgAlpha == 0 && frameAlpha == 0) { - return; - } - - gDPPipeSync(gMainGfxPos++); - gDPSetCycleType(gMainGfxPos++, G_CYC_1CYCLE); - gDPSetTexturePersp(gMainGfxPos++, G_TP_NONE); - gDPSetTextureLOD(gMainGfxPos++, G_TL_TILE); - gDPSetTextureLUT(gMainGfxPos++, G_TT_NONE); - gDPSetColorDither(gMainGfxPos++, G_CD_DISABLE); - gDPSetAlphaDither(gMainGfxPos++, G_AD_DISABLE); - gDPSetTextureFilter(gMainGfxPos++, G_TF_POINT); - - if (fading == 0 || bgAlpha != 0) { - do {} while (0); - switch (style) { - case MSG_STYLE_CHOICE: - r = UNPACK_PAL_R(((u16*)ui_msg_palettes)[4]) * 8; - g = UNPACK_PAL_G(((u16*)ui_msg_palettes)[4]) * 8; - b = UNPACK_PAL_B(((u16*)ui_msg_palettes)[4]) * 8; - gDPPipeSync(gMainGfxPos++); - if (fading != 0 && bgAlpha < 255) { - gDPSetRenderMode(gMainGfxPos++, IM_RD | CVG_DST_SAVE | ZMODE_XLU | FORCE_BL | GBL_c1(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_1MA), IM_RD | CVG_DST_SAVE | ZMODE_XLU | FORCE_BL | GBL_c2(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_1MA)); - } else { - gDPSetRenderMode(gMainGfxPos++, G_RM_OPA_SURF, G_RM_OPA_SURF2); - } - gDPSetCombineMode(gMainGfxPos++, G_CC_PRIMITIVE, G_CC_PRIMITIVE); - gDPSetPrimColor(gMainGfxPos++, 0, 0, r, g, b, bgAlpha); - if (posX + sizeX - 8 > 0) { - gDPScisFillRectangle(gMainGfxPos++, posX + 8, posY + 8, posX + sizeX - 8, posY + sizeY - 8); - } - break; - case MSG_STYLE_INSPECT: - gDPPipeSync(gMainGfxPos++); - gDPSetTextureFilter(gMainGfxPos++, G_TF_AVERAGE); - gDPSetRenderMode(gMainGfxPos++, G_RM_XLU_SURF, G_RM_XLU_SURF2); - gDPSetCombineMode(gMainGfxPos++, PM_CC_10, PM_CC_10); - if (fading == 0 || bgAlpha == 255) { - gDPSetPrimColor(gMainGfxPos++, 0, 0, 0, 0, 0, 216); - } else { - if (bgAlpha > 216) { - bgAlpha = 216; - } - gDPSetPrimColor(gMainGfxPos++, 0, 0, 0, 0, 0, bgAlpha); - } - - gDPLoadTextureBlock_4b(gMainGfxPos++, ui_msg_background_png, G_IM_FMT_I, 64, 64, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, 6, 6, G_TX_NOLOD, G_TX_NOLOD); - if (style == MSG_STYLE_INSPECT) { - gSPScisTextureRectangle(gMainGfxPos++, (posX + 3) * 4, (posY + 3) * 4, (posX + sizeX - 3) * 4, (posY + sizeY - 3) * 4, - G_TX_RENDERTILE, gMsgBGScrollAmtX, gMsgBGScrollAmtY, 0x400, 0x400); - } else { - gSPScisTextureRectangle(gMainGfxPos++, (posX + 5) * 4, (posY + 5) * 4, (posX + sizeX - 5) * 4, (posY + sizeY - 5) * 4, - G_TX_RENDERTILE, gMsgBGScrollAmtX, gMsgBGScrollAmtY, 0x400, 0x400); - } - break; - } - } - - if (sizeX >= 32) { - quads[2].ulx = (posX + 16) * 4; - quads[2].uly = posY * 4; - quads[2].lrx = (posX + sizeX - 16) * 4; - quads[2].lry = (posY + 8) * 4; - - quads[13].ulx = (posX + 16) * 4; - quads[13].uly = (posY + sizeY - 8) * 4; - quads[13].lrx = (posX + sizeX - 16) * 4; - quads[13].lry = (posY + sizeY) * 4; - } else if (sizeX > 16 && sizeX < 24) { - quads[2].ulx = (posX + 8) * 4; - quads[2].uly = posY * 4; - quads[2].lrx = (posX + sizeX - 8) * 4; - quads[2].lry = (posY + 8) * 4; - - quads[13].ulx = (posX + 8) * 4; - quads[13].uly = (posY + sizeY - 8) * 4; - quads[13].lrx = (posX + sizeX - 8) * 4; - quads[13].lry = (posY + sizeY) * 4; - } else { - quads[2].ulx = 10000; - quads[13].ulx = 10000; - } - - if (sizeY >= 32) { - quads[7].ulx = posX * 4; - quads[7].uly = (posY + 16) * 4; - quads[7].lrx = (posX + 8) * 4; - quads[7].lry = (posY + sizeY - 16) * 4; - - quads[8].ulx = (posX + sizeX - 8) * 4; - quads[8].uly = (posY + 16) * 4; - quads[8].lrx = (posX + sizeX) * 4; - quads[8].lry = (posY + sizeY - 16) * 4; - } else if (sizeY > 16 && sizeY < 24) { - quads[7].ulx = posX * 4; - quads[7].uly = (posY + 8) * 4; - quads[7].lrx = (posX + 8) * 4; - quads[7].lry = (posY + sizeY - 8) * 4; - - quads[8].ulx = (posX + sizeX - 8) * 4; - quads[8].uly = (posY + 8) * 4; - quads[8].lrx = (posX + sizeX) * 4; - quads[8].lry = (posY + sizeY - 8) * 4; - } else { - quads[7].ulx = 10000; - quads[8].ulx = 10000; - } - - if (sizeX >= 24) { - quads[1].ulx = (posX + 8) * 4; - quads[1].uly = posY * 4; - quads[1].lrx = (posX + 16) * 4; - quads[1].lry = (posY + 8) * 4; - - quads[3].ulx = (posX + sizeX - 16) * 4; - quads[3].uly = posY * 4; - quads[3].lrx = (posX + sizeX - 8) * 4; - quads[3].lry = (posY + 8) * 4; - - quads[12].ulx = (posX + 8) * 4; - quads[12].uly = (posY + sizeY - 8) * 4; - quads[12].lrx = (posX + 16) * 4; - quads[12].lry = (posY + sizeY) * 4; - - quads[14].ulx = (posX + sizeX - 16) * 4; - quads[14].uly = (posY + sizeY - 8) * 4; - quads[14].lrx = (posX + sizeX - 8) * 4; - quads[14].lry = (posY + sizeY) * 4; - } else { - quads[1].ulx = 10000; - quads[3].ulx = 10000; - quads[12].ulx = 10000; - quads[14].ulx = 10000; - } - - if (sizeY >= 24) { - quads[5].ulx = posX * 4; - quads[5].uly = (posY + 8) * 4; - quads[5].lrx = (posX + 8) * 4; - quads[5].lry = (posY + 16) * 4; - - quads[6].ulx = (posX + sizeX - 8) * 4; - quads[6].uly = (posY + 8) * 4; - quads[6].lrx = (posX + sizeX) * 4; - quads[6].lry = (posY + 16) * 4; - - quads[9].ulx = posX * 4; - quads[9].uly = (posY + sizeY - 16) * 4; - quads[9].lrx = (posX + 8) * 4; - quads[9].lry = (posY + sizeY - 8) * 4; - - quads[10].ulx = (posX + sizeX - 8) * 4; - quads[10].uly = (posY + sizeY - 16) * 4; - quads[10].lrx = (posX + sizeX) * 4; - quads[10].lry = (posY + sizeY - 8) * 4; - } else { - quads[5].ulx = 10000; - quads[6].ulx = 10000; - quads[9].ulx = 10000; - quads[10].ulx = 10000; - } - - quads[0].ulx = posX * 4; - quads[0].uly = posY * 4; - quads[0].lrx = (posX + 8) * 4; - quads[0].lry = (posY + 8) * 4; - - quads[4].ulx = (posX + sizeX - 8) * 4; - quads[4].uly = posY * 4; - quads[4].lrx = (posX + sizeX) * 4; - quads[4].lry = (posY + 8) * 4; - - quads[11].ulx = posX * 4; - quads[11].uly = (posY + sizeY - 8) * 4; - quads[11].lrx = (posX + 8) * 4; - quads[11].lry = (posY + sizeY) * 4; - - quads[15].ulx = (posX + sizeX - 8) * 4; - quads[15].uly = (posY + sizeY - 8) * 4; - quads[15].lrx = (posX + sizeX) * 4; - quads[15].lry = (posY + sizeY) * 4; - - switch (style) { - case MSG_STYLE_CHOICE: - frameType = 0; - break; - case MSG_STYLE_INSPECT: - frameType = 1; - break; - default: - frameType = 0; - break; - } - - for (i = 0; i < ARRAY_COUNT(textures); i++) { - textures[i] = gMessageBoxFrameParts[frameType][i]; - } - - if (fading == 0) { - frameAlpha = 255; - } - - gDPPipeSync(gMainGfxPos++); - gDPSetRenderMode(gMainGfxPos++, G_RM_XLU_SURF, G_RM_XLU_SURF2); - gDPSetCombineMode(gMainGfxPos++, PM_CC_02, PM_CC_02); - gDPSetPrimColor(gMainGfxPos++, 0, 0, 0, 0, 0, frameAlpha); - gDPSetTextureLUT(gMainGfxPos++, G_TT_RGBA16); - gDPLoadTLUT_pal16(gMainGfxPos++, 0, ui_msg_palettes[palette]); - - for (i = 0; i < ARRAY_COUNT(textures); i++) { - if (textures[i] != NULL && quads[i].ulx < 10000) { - gDPLoadTextureTile_4b(gMainGfxPos++, textures[i], G_IM_FMT_CI, 8, 8, 0, 0, 7, 7, 0, G_TX_WRAP, G_TX_WRAP, 3, 3, G_TX_NOLOD, G_TX_NOLOD); - gSPScisTextureRectangle(gMainGfxPos++, quads[i].ulx, quads[i].uly, quads[i].lrx, quads[i].lry, - G_TX_RENDERTILE, 0, 0, 0x400, 0x400); - } - } - - gDPPipeSync(gMainGfxPos++); - gDPSetTextureLUT(gMainGfxPos++, G_TT_NONE); -} - -void msg_get_glyph(s32 font, s32 variation, s32 charIndex, s32 palette, MesasgeFontGlyphData* out) { - out->raster = &MsgCharsets[font]->rasters[variation].raster[(u16)MsgCharsets[font]->charRasterSize * charIndex]; - out->palette = D_802F4560[palette]; - out->texSize.x = MsgCharsets[font]->texSize.x; - out->texSize.y = MsgCharsets[font]->texSize.y; - out->charWidth = msg_get_draw_char_width(charIndex, font, variation, 1.0f, 0, 0); - out->charHeight = out->texSize.y; -} diff --git a/src/msg_draw.c b/src/msg_draw.c new file mode 100644 index 00000000000..d6df1b57f04 --- /dev/null +++ b/src/msg_draw.c @@ -0,0 +1,2158 @@ +#include "common.h" +#include "ld_addrs.h" +#include "message_ids.h" +#include "sprite.h" + +#include "charset/postcard.png.h" +#include "charset/letter_content_1.png.h" + +extern IMG_BIN ui_msg_bubble_left_png[]; +extern IMG_BIN ui_msg_bubble_mid_png[]; +extern IMG_BIN ui_msg_bubble_right_png[]; +extern IMG_BIN ui_msg_arrow_png[]; +extern unsigned char ui_msg_palettes[16][32]; +extern IMG_BIN ui_msg_sign_corner_topleft_png[]; +extern IMG_BIN ui_msg_sign_corner_topright_png[]; +extern IMG_BIN ui_msg_sign_corner_bottomleft_png[]; +extern IMG_BIN ui_msg_sign_corner_bottomright_png[]; +extern IMG_BIN ui_msg_lamppost_corner_bottomright_png[]; +extern IMG_BIN ui_msg_sign_side_top_png[]; +extern IMG_BIN ui_msg_sign_side_left_png[]; +extern IMG_BIN ui_msg_sign_side_right_png[]; +extern IMG_BIN ui_msg_sign_side_bottom_png[]; +extern IMG_BIN ui_msg_sign_fill_png[]; +extern PAL_BIN ui_msg_sign_pal[]; +extern PAL_BIN ui_msg_lamppost_pal[]; +extern IMG_BIN ui_msg_background_png[]; +extern IMG_BIN ui_msg_rewind_arrow_png[]; +extern PAL_BIN ui_msg_rewind_arrow_pal[]; +extern IMG_BIN ui_msg_star_png[]; +extern IMG_BIN ui_msg_star_silhouette_png[]; + +// .bss +typedef MessageImageData* MessageImageDataList[1]; + +extern s32 gMsgBGScrollAmtX; +extern u16 gMsgGlobalWaveCounter; +extern MessageImageDataList gMsgVarImages; +extern s32 gMsgBGScrollAmtY; +extern u8* D_8015131C; +extern Gfx* D_80151338; +extern char gMessageBuffers[2][1024]; +extern u8 gMessageMsgVars[3][32]; +extern s16 D_80155C98; +extern Mtx gMessageWindowProjMatrix[2]; +extern MessageDrawState D_80155D20; +extern MessageDrawState* msg_drawState; +extern IMG_BIN D_80159B50[0x200]; +extern PAL_BIN D_8015C7E0[0x10]; +extern MessagePrintState gMessagePrinters[3]; +#if VERSION_IQUE +extern IMG_BIN D_801544A0[120][128]; +#endif + +extern s16 MsgStyleVerticalLineOffsets[]; + +extern IMG_BIN D_802ED550[]; +extern PAL_BIN D_802ED670[]; +extern IMG_BIN MsgCharImgTitle[]; +extern IMG_BIN MsgCharImgNormal[]; +extern MessageCharset* MsgCharsets[5]; +extern IMG_BIN MsgCharImgSubtitle[]; +extern PAL_BIN D_802F4560[80][8]; +extern s32 gMessageBoxFrameParts[2][16]; + +Vtx gMsgSpeechBoxLQuad[4] = { + { .v = { .ob = {1, 0, 0}, .tc = {0, 0}, .cn = {255, 255, 248, 255} } }, + { .v = { .ob = {0x20, 0, 0}, .tc = {0x400, 0}, .cn = {255, 255, 248, 255} } }, + { .v = { .ob = {0x1, 0xFFC0, 0}, .tc = {0, 0x800}, .cn = {191, 184, 176, 255} } }, + { .v = { .ob = {0x20, 0xFFC0, 0}, .tc = {0x400, 0x800}, .cn = {191, 184, 176, 255} } }, +}; + +Vtx gMsgSpeechBoxMQuad[] = { + { .v = { .ob = {0x20, 0, 0}, .tc = {0, 0}, .cn = {255, 255, 248, 255} } }, + { .v = { .ob = {0xE1, 0, 0}, .tc = {0x100, 0}, .cn = {255, 255, 248, 255} } }, + { .v = { .ob = {0x20, 0xFFC0, 0}, .tc = {0, 0x800}, .cn = {191, 184, 176, 255} } }, + { .v = { .ob = {0xE1, 0xFFC0, 0}, .tc = {0x100, 0x800}, .cn = {191, 184, 176, 255} } }, +}; + +Vtx gMsgSpeechBoxRQuad[] = { + { .v = { .ob = {0xE1, 0, 0}, .tc = {0, 0}, .cn = {255, 255, 248, 255} } }, + { .v = { .ob = {0x100, 0, 0}, .tc = {0x400, 0}, .cn = {255, 255, 248, 255} } }, + { .v = { .ob = {0xE1, 0xFFC0, 0}, .tc = {0, 0x800}, .cn = {191, 184, 176, 255} } }, + { .v = { .ob = {0x100, 0xFFC0, 0}, .tc = {0x400, 0x800}, .cn = {191, 184, 176, 255} } }, +}; + +Vtx gMsgArrowQuad1[] = { + { .v = { .ob = {0xFFF1, 0x001E, 0}, .tc = {0, 0}, .cn = {191, 184, 176, 255} } }, + { .v = { .ob = {0xF, 0x001E, 0}, .tc = {0x1E0, 0}, .cn = {191, 184, 176, 255} } }, + { .v = { .ob = {0xFFFF, 0, 0}, .tc = {0, 0x1E0}, .cn = {191, 184, 176, 255} } }, + { .v = { .ob = {1, 0, 0}, .tc = {0x1E0, 0x1E0}, .cn = {191, 184, 176, 255} } }, +}; + +Vtx gMsgArrowQuad2[] = { + { .v = { .ob = {0xFFF1, 0x001E, 0}, .tc = {0, 0}, .cn = {191, 184, 176, 255} } }, + { .v = { .ob = {0xF, 0x001E, 0}, .tc = {0x1E0, 0}, .cn = {191, 184, 176, 255} } }, + { .v = { .ob = {0xFFFF, 0, 0}, .tc = {0, 0x1E0}, .cn = {191, 184, 176, 255} } }, + { .v = { .ob = {1, 0, 0}, .tc = {0x1E0, 0x1E0}, .cn = {191, 184, 176, 255} } }, +}; + +Gfx D_8014C500[] = { + gsDPSetCycleType(G_CYC_1CYCLE), + gsDPSetRenderMode(G_RM_TEX_EDGE, G_RM_TEX_EDGE2), + gsDPSetCombineMode(G_CC_DECALRGBA, G_CC_DECALRGBA), + gsDPSetTextureFilter(G_TF_AVERAGE), + gsSPTexture(-1, -1, 0, G_TX_RENDERTILE, G_ON), + gsDPSetTexturePersp(G_TP_NONE), + gsDPSetColorDither(G_CD_DISABLE), + gsDPSetAlphaDither(G_AD_DISABLE), + gsDPSetTextureLOD(G_TL_TILE), + gsDPSetTextureLUT(G_TT_RGBA16), + gsDPSetTextureDetail(G_TD_CLAMP), + gsDPSetTextureConvert(G_TC_FILT), + gsDPSetCombineKey(G_CK_NONE), + gsDPSetAlphaCompare(G_AC_NONE), + gsDPNoOp(), + gsSPEndDisplayList(), +}; + +u8 D_8014C580[] = { 50, 80, 100, 105, 100, 0, 0, 0 }; +u8 D_8014C588[] = { 105, 100, 77, 57, 40, 27, 16, 8, 3, 0, 0, 0}; +#if VERSION_IQUE +u32 D_8014AD24 = 2; +#else +u8 D_8014C594[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; +#endif + +s32 draw_image_with_clipping(IMG_PTR raster, s32 width, s32 height, s32 fmt, s32 bitDepth, s16 posX, s16 posY, u16 clipULx, + u16 clipULy, u16 clipLRx, u16 clipRLy); + +s32 _update_message(MessagePrintState* printer); +void msg_copy_to_print_buffer(MessagePrintState* printer, s32 arg1, s32 arg2); +void initialize_printer(MessagePrintState* printer, s32 arg1, s32 arg2); +MessagePrintState* _msg_get_printer_for_msg(s32 msgID, s32* donePrintingWriteback, s32 arg2); +void msg_update_rewind_arrow(s32); +void msg_draw_rewind_arrow(s32); +void msg_draw_choice_pointer(MessagePrintState* printer); +void draw_message_window(MessagePrintState* printer); +void appendGfx_message(MessagePrintState*, s16, s16, u16, u16, u16, u8); +void appendGfx_msg_prim_rect(u8 r, u8 g, u8 b, u8 a, u16 ulX, u16 ulY, u16 lrX, u16 lrY); +void msg_reset_gfx_state(void); +void msg_draw_char(MessagePrintState* printer, MessageDrawState* drawState, s32 charIndex, s32 palette, s32 posX, + s32 posY); +void msg_draw_prim_rect(u8 r, u8 g, u8 b, u8 a, u16 posX, u16 posY, u16 sizeX, u16 sizeY); +void msg_draw_speech_arrow(MessagePrintState* printer); +void msg_draw_frame(s32 posX, s32 posY, s32 sizeX, s32 sizeY, s32 style, s32 palette, s32 fading, s32 bgAlpha, s32 frameAlpha); +void msg_draw_speech_bubble(MessagePrintState* printer, s16 posX, s16 posY, s16 straightWidth, s16 curveWidth, + s16 height, f32 scaleX, f32 scaleY, u8 opacity, s32 arg9); +s32 msg_get_draw_char_width(s32 character, s32 charset, s32 variation, f32 msgScale, s32 overrideCharWidth, u16 flags); + +void drawbox_message_delegate(s32 data, s32 baseX, s32 baseY, s32 width, s32 height, s32 opacity, s32 darkening) { + MessagePrintState* printer = (MessagePrintState*)data; + + appendGfx_message(printer, 0, 0, 0, 0, 4, 0); +} + +void draw_message_window(MessagePrintState* printer) { + f32 scale = 1.0f; + s32 rotZ = 0; + + switch (printer->windowState) { + case MSG_WINDOW_STATE_D: + scale = (f32)D_8014C580[printer->fadeInCounter] / 100.0; + rotZ = (4 - printer->fadeInCounter) * 3; + printer->fadeInCounter++; + if (D_8014C580[printer->fadeInCounter] == 0) { + printer->windowState = MSG_WINDOW_STATE_PRINTING; + } + break; + case MSG_WINDOW_STATE_E: + scale = (f32)D_8014C588[printer->fadeOutCounter] / 100.0; + rotZ = -printer->fadeOutCounter; + printer->fadeOutCounter++; + if (D_8014C588[printer->fadeOutCounter] == 0) { + printer->stateFlags |= MSG_STATE_FLAG_1; + } + break; + } + + switch (printer->windowState) { + case MSG_WINDOW_STATE_D: + case MSG_WINDOW_STATE_E: + printer->windowBasePos.x = 160 - (printer->windowSize.x / 2); + printer->windowBasePos.y = 56; + draw_box(DRAW_FLAG_ROTSCALE, WINDOW_STYLE_0, printer->windowBasePos.x, 56, 0, printer->windowSize.x, printer->windowSize.y, 255, 0, + scale, scale, 0.0f, 0.0f, rotZ, drawbox_message_delegate, printer, NULL, SCREEN_WIDTH, + SCREEN_HEIGHT, NULL); + break; + default: + appendGfx_message(printer, printer->windowOffsetPos.x, printer->windowOffsetPos.y, printer->unk_46C, + printer->curLinePos, 4, 0); + break; + } +} + +#if VERSION_IQUE || VERSION_PAL +INCLUDE_ASM(s32, "msg", appendGfx_message); +#else +void appendGfx_message(MessagePrintState* printer, s16 posX, s16 posY, u16 additionalOffsetX, u16 additionalOffsetY, + u16 flag, u8 alpha) { + SpriteRasterInfo sprRasterInfo; + u16 sp80bool; + s16 sp8E; + s16 sp96; + s16 sp9E; + s16 palette; + s16 spAE; + u16 spB6; + u8 spB8; + f32 windowScaleX; + MessageCharset* msgCharset; + f32 temp_f10; + f32 temp_f20; + f32 temp_f20_3; + f32 temp_f22_2; + f32 temp_f24; + f32 bubbleX; + f32 bubbleY; + f32 temp_f28; + f32 windowScaleY; + f32 temp_f8; + f32 temp_f8_5; + f64 temp_f0; + f32 temp_f0_2; + f32 temp_f2_2; + f64 temp_f20_2; + f64 temp_f22; + f32 temp_f2; + f64 temp_f2_3; + s32 temp_s0_7; + s32 temp_s0_8; + s32 temp_a2; + s32 temp_s1_5; + s32 i; + s16 temp_s3; + s16 temp_s4; + s32 windowSizeX; + s32 windowSizeY; + s16 temp_s5; + s16 temp_s6; + u32 temp_a0_49; + s32 animIdx; + u8 packedScaleX; + u8 packedScaleY; + MessageImageData* msgVarImage; + MessageImageData* msgImageData; + s32 phi_a0; + s32 straightWidth; + s32 curveWidth; + s32 height; + s32 frameX; + s32 frameY; + s32 frameSizeX; + s32 frameSizeY; + s32 frameFading; + u8 frameAlpha; + u16 fading; + u8 phi_s0_5; + IMG_PTR signRaster; + PAL_PTR signPalette; + s8 phi_s2_4; + u8 phi_s3_2; + s32 phi_v0_3; + s32 phi_a0_4; + s16 phi_t5; + s16 phi_s0_6; + s16 phi_t3; + s32 dbPos; + s16 charPosX; + s16 charPosY; + s16 phi_s2_5; + s32 phi_s0_7; + s32 phi_s1_8; + s8 varImgHasBorder; + s16 imgDrawPosX; + s16 imgDrawPosY; + f32 z1; + f32 z2; + f32 temp1; + f32 temp2; + + msg_drawState = &D_80155D20; + msg_drawState->printBuffer = printer->printBuffer; + msg_drawState->printModeFlags = 0; + if (gMainGfxPos != D_80151338) { + msg_reset_gfx_state(); + } + msg_drawState->printModeFlags |= (MSG_PRINT_FLAG_1 | MSG_PRINT_FLAG_100); + sp8E = 255; + if (flag & 1) { + sp8E = alpha; + } + msg_drawState->textStartPos[0] = 0; + msg_drawState->textStartPos[1] = 0; + msg_drawState->clipX[0] = 0; + msg_drawState->clipY[0] = 0; + msg_drawState->clipX[1] = SCREEN_WIDTH - 1; + msg_drawState->clipY[1] = SCREEN_HEIGHT - 1; + msg_drawState->msgScale.x = 1.0f; + msg_drawState->msgScale.y = 1.0f; + msg_drawState->unk_29 = 0; + msg_drawState->framePalette = 0; + msg_drawState->unk_2C = 0; + msg_drawState->visiblePrintedCount = 0; + msg_drawState->centerPos = 0; + msg_drawState->fontVariant = 0; + msg_drawState->curPosX = 0; + msg_drawState->nextPos[0] = 0; + msg_drawState->nextPos[1] = 0; + msg_drawState->font = 0; + msg_drawState->effectFlags = 0; + msg_drawState->nextCounter = 0; + msg_drawState->textColor = MSG_PAL_WHITE; + sp96 = 0xFF; + spAE = 0xFF; + spB6 = 0; + spB8 = 0; + sp9E = -1; + + if (flag & 2) { + msg_drawState->font = 1; + } + + if (flag & 4) { + gDPSetScissor(gMainGfxPos++, G_SC_NON_INTERLACE, 0, 0, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1); + } + + sp80bool = FALSE; + msg_drawState->drawBufferPos = 0; + + while (!sp80bool) { + switch (msg_drawState->printBuffer[msg_drawState->drawBufferPos]) { + case MSG_CHAR_PRINT_ENDL: + msg_drawState->nextPos[0] = 0; + msg_drawState->nextPos[1] += (s32)((msg_drawState->msgScale.y * MsgCharsets[msg_drawState->font]->newLineY) + + MsgStyleVerticalLineOffsets[printer->style]); + if (msg_drawState->printModeFlags & MSG_PRINT_FLAG_40) { + msg_drawState->printModeFlags |= MSG_PRINT_FLAG_80; + } + msg_drawState->drawBufferPos++; + break; + case MSG_CHAR_PRINT_UNK_CHAR_FA: + msg_drawState->drawBufferPos++; + break; + case MSG_CHAR_PRINT_VARIANT0: + case MSG_CHAR_PRINT_VARIANT1: + case MSG_CHAR_PRINT_VARIANT2: + case MSG_CHAR_PRINT_VARIANT3: + msg_drawState->fontVariant = msg_drawState->printBuffer[msg_drawState->drawBufferPos] - MSG_CHAR_PRINT_VARIANT0; + msg_drawState->drawBufferPos++; + break; + case MSG_CHAR_PRINT_SPACE: + case MSG_CHAR_PRINT_FULL_SPACE: + case MSG_CHAR_PRINT_HALF_SPACE: + msg_drawState->nextPos[0] += msg_get_draw_char_width(msg_drawState->printBuffer[msg_drawState->drawBufferPos], + msg_drawState->font, msg_drawState->fontVariant, msg_drawState->msgScale.x, msg_drawState->curPosX, + msg_drawState->printModeFlags); + msg_drawState->drawBufferPos++; + break; + case MSG_CHAR_PRINT_STYLE: + switch (msg_drawState->printBuffer[msg_drawState->drawBufferPos + 1]) { + case MSG_STYLE_RIGHT: + case MSG_STYLE_LEFT: + case MSG_STYLE_CENTER: + case MSG_STYLE_TATTLE: + if (printer->windowState == MSG_WINDOW_STATE_OPENING && printer->fadeInCounter == 0) { + printer->openStartPos.x = printer->initOpenPos.x; + printer->openStartPos.y = printer->initOpenPos.y; + } + temp_s6 = printer->openStartPos.x; + temp_s5 = printer->openStartPos.y; + temp_s4 = printer->windowBasePos.x + (f32) printer->windowSize.x * 0.5; + temp_s3 = printer->windowBasePos.y + (f32) printer->windowSize.y * 0.5; + msg_drawState->textColor = MSG_PAL_STANDARD; + msg_drawState->printModeFlags |= MSG_PRINT_FLAG_10; + + if (printer->style == MSG_STYLE_RIGHT || printer->style == MSG_STYLE_LEFT || printer->style == MSG_STYLE_CENTER) { + straightWidth = 218; + printer->windowBasePos.x = 22; + printer->windowBasePos.y = 13; + printer->windowSize.x = 296; + printer->windowSize.y = 68; + msg_drawState->textStartPos[0] = 26; + msg_drawState->textStartPos[1] = 6; + printer->rewindArrowPos.x = 276; + printer->rewindArrowPos.y = 57; + curveWidth = 32; + height = 68; + } else { + straightWidth = 218; + + switch (printer->maxLinesPerPage) { + case 1: + msg_drawState->textStartPos[0] = 18; + msg_drawState->textStartPos[1] = 10; + curveWidth = 24; + break; + case 2: + msg_drawState->textStartPos[0] = 22; + msg_drawState->textStartPos[1] = 6; + curveWidth = 28; + break; + case 3: + msg_drawState->textStartPos[0] = 26; + msg_drawState->textStartPos[1] = 8; + curveWidth = 32; + break; + default: + msg_drawState->textStartPos[0] = 26; + msg_drawState->textStartPos[1] = 6; + curveWidth = 32; + break; + } + + straightWidth = printer->msgWidth; + if (straightWidth > 256) { + straightWidth = 256; + } + if (straightWidth < 70) { + straightWidth = 70; + } + straightWidth -= 12; + + printer->windowSize.x = straightWidth + (curveWidth * 2); + + height = (printer->maxLinesPerPage * 14) + 16; + if (height > 68) { + height = 68; + } + if (height < 36) { + height = 36; + } + printer->windowSize.y = height; + + temp_a2 = printer->openStartPos.x - printer->windowSize.x / 2; + if (temp_a2 < 18) { + temp_a2 = 18; + } + if (temp_a2 + printer->windowSize.x > SCREEN_WIDTH - 18) { + temp_a2 = SCREEN_WIDTH - 18 - printer->windowSize.x; + } + phi_a0 = printer->openStartPos.y - 38 - printer->windowSize.y; + if (phi_a0 < 20) { + phi_a0 = 20; + } + if (phi_a0 + printer->windowSize.y > 170) { + phi_a0 = 170 - printer->windowSize.y; + } + printer->windowBasePos.x = temp_a2; + printer->windowBasePos.y = phi_a0; + printer->rewindArrowPos.x = (printer->windowSize.x + temp_a2) - 30; + printer->rewindArrowPos.y = (printer->windowSize.y + phi_a0) - 18; + } + + if (printer->windowState == MSG_WINDOW_STATE_B || printer->windowState == MSG_WINDOW_STATE_C) { + msg_drawState->framePalette = 1; + } + + if (printer->windowState == MSG_WINDOW_STATE_OPENING) { + windowScaleX = update_lerp(EASING_LINEAR, 0.07f, 1.0f, printer->fadeInCounter, 7); + windowScaleY = update_lerp(EASING_LINEAR, 0.3f, 1.0f, printer->fadeInCounter, 7); + temp_f28 = update_lerp(EASING_LINEAR, 96.0f, 200.0f, printer->fadeInCounter, 7); + temp_f20 = update_lerp(EASING_SIN_OUT, temp_s5, temp_s3, printer->fadeInCounter, 7); + temp_f24 = update_lerp(EASING_SIN_OUT, temp_s6, temp_s4, printer->fadeInCounter, 7); + temp_f2_2 = printer->windowSize.x * windowScaleX; + temp_f0_2 = printer->windowSize.y * windowScaleY; + bubbleX = (temp_f24 - temp_f2_2 * 0.5) + 0.5; + bubbleY = (temp_f20 - temp_f0_2 * 0.5) + 0.5; + msg_draw_speech_bubble(printer, bubbleX, bubbleY, straightWidth, curveWidth, height, windowScaleX, windowScaleY, temp_f28, 1); + printer->fadeInCounter++; + if (printer->fadeInCounter == 7) { + printer->windowState = MSG_WINDOW_STATE_PRINTING; + } + } else if (printer->windowState == MSG_WINDOW_STATE_CLOSING) { + printer->fadeOutCounter++; + windowScaleX = update_lerp(EASING_LINEAR, 1.0f, 0.6f, printer->fadeOutCounter, 5); + windowScaleY = update_lerp(EASING_LINEAR, 1.0f, 0.8f, printer->fadeOutCounter, 5); + temp_f2 = (printer->windowSize.x * windowScaleX); + temp_f0 = (printer->windowSize.y * windowScaleY); + temp_f24 = temp_s4; + temp_f20 = temp_s3; + bubbleX = (temp_f24 - temp_f2 * 0.5) + 0.5; + bubbleY = (temp_f20 - temp_f0 * 0.5) + 0.5; + temp_f22_2 = (temp_f24 + temp_f2 * 0.5) - 0.5; + temp_f20_3 = (temp_f20 + temp_f0 * 0.5) - 0.5; + temp_f28 = update_lerp(EASING_LINEAR, 255.0f, 64.0f, printer->fadeOutCounter, 5); + sp8E = temp_f28 * 0.35; + spAE = temp_f28; + msg_drawState->clipX[0] = bubbleX + msg_drawState->textStartPos[0]; + msg_drawState->clipY[0] = bubbleY + msg_drawState->textStartPos[1]; + msg_drawState->clipX[1] = temp_f22_2 - msg_drawState->textStartPos[0]; + msg_drawState->clipY[1] = temp_f20_3 - msg_drawState->textStartPos[1]; + msg_draw_speech_bubble(printer, bubbleX, bubbleY, straightWidth, curveWidth, height, windowScaleX, windowScaleY, temp_f28, 1); + if (printer->fadeOutCounter >= 5) { + printer->stateFlags |= MSG_STATE_FLAG_1; + } + } else { + bubbleX = posX + printer->windowBasePos.x; + bubbleY = posY + printer->windowBasePos.y; + + msg_draw_speech_bubble(printer, bubbleX, bubbleY, straightWidth, curveWidth, height, 1.0f, 1.0f, 255, 1); + if (((u32)(printer->openStartPos.x - 20) <= 280) && (printer->openStartPos.y <= 220)) { + msg_draw_speech_arrow(printer); + } + } + + if (printer->windowState != MSG_WINDOW_STATE_CLOSING) { + msg_drawState->clipX[0] = 20; + msg_drawState->clipY[0] = printer->windowOffsetPos.y + printer->windowBasePos.y + + msg_drawState->textStartPos[1]; + msg_drawState->clipX[1] = SCREEN_WIDTH - 20; + msg_drawState->clipY[1] = msg_drawState->clipY[0] + printer->windowSize.y - 16; + } + msg_reset_gfx_state(); + msg_drawState->drawBufferPos += 2; + break; + case MSG_STYLE_CHOICE: + frameFading = 0; + windowSizeX = printer->windowSize.x; + windowSizeY = printer->windowSize.y; + frameSizeX = windowSizeX; + frameSizeY = windowSizeY; + msg_drawState->framePalette = 0; + msg_drawState->textStartPos[0] = 12; + msg_drawState->textStartPos[1] = 6; + frameAlpha = 255; + if (printer->windowState == MSG_WINDOW_STATE_OPENING) { + + printer->fadeInCounter++; + if (printer->fadeInCounter == 6) { + printer->windowState = MSG_WINDOW_STATE_PRINTING; + } + + temp_f10 = ((f32) printer->fadeInCounter * (2.0 / 15.0)) + 0.2; + + z1 = printer->windowBasePos.x + (windowSizeX / 2); + z2 = printer->windowBasePos.y + (windowSizeY / 2); + temp1 = z1 - (windowSizeX * temp_f10 * 0.5); + temp2 = z2 - (windowSizeY * temp_f10 * 0.5); + frameX = temp1 + 0.5; + frameY = temp2 + 0.5; + frameSizeX = windowSizeX * temp_f10 + 0.5; + frameSizeY = windowSizeY * temp_f10 + 0.5; + + if (frameSizeX < 24) { + frameSizeX = 24; + } + if (frameSizeY < 24) { + frameSizeY = 24; + } + + sp8E = (u8)(temp_f10 * 255.0) * 0.6; + } else if (printer->windowState == MSG_WINDOW_STATE_CLOSING) { + printer->fadeOutCounter++; + if (printer->fadeOutCounter >= 5) { + printer->stateFlags |= MSG_STATE_FLAG_1; + } + frameAlpha = ~(printer->fadeOutCounter * 0x2E); + sp8E = ((u8)frameAlpha) * 0.6; + frameFading = 1; + if (sp8E >= 32) { + sp8E -= 32; + } + frameX = printer->windowBasePos.x; + frameY = printer->windowBasePos.y; + } else { + frameX = printer->windowBasePos.x; + frameY = printer->windowBasePos.y; + msg_draw_prim_rect(255, 32, 32, 0, frameX - 1, frameY - 1, windowSizeX + 2, windowSizeY + 2); + } + msg_drawState->clipX[0] = frameX + 2; + msg_drawState->clipY[0] = frameY + 2; + msg_drawState->clipX[1] = frameX + frameSizeX - 2; + msg_drawState->clipY[1] = frameY + frameSizeY - 2; + msg_draw_frame(frameX, frameY, frameSizeX, frameSizeY, MSG_STYLE_CHOICE, msg_drawState->framePalette, frameFading, frameAlpha, + frameAlpha); + msg_reset_gfx_state(); + spAE = frameAlpha & 0xFF; + msg_drawState->textColor = MSG_PAL_STANDARD; + msg_drawState->drawBufferPos += 2; + msg_drawState->printModeFlags |= MSG_PRINT_FLAG_10; + break; + case MSG_STYLE_INSPECT: + case MSG_STYLE_UPGRADE: + case MSG_STYLE_NARRATE: + case MSG_STYLE_F: + fading = 0; + msg_drawState->textStartPos[0] = 16; + msg_drawState->textStartPos[1] = 3; + msg_drawState->clipX[0] = printer->windowBasePos.x + 5; + msg_drawState->clipY[0] = printer->windowBasePos.y + 4; + msg_drawState->clipX[1] = printer->windowBasePos.x + printer->windowSize.x - 8; + msg_drawState->clipY[1] = printer->windowBasePos.y + printer->windowSize.y - 5; + printer->rewindArrowPos.x = msg_drawState->clipX[1] - 17; + printer->rewindArrowPos.y = msg_drawState->clipY[1] - 17; + msg_drawState->textColor = MSG_PAL_WHITE; + phi_s0_5 = 0xFF; + msg_draw_prim_rect(255, 32, 32, 0, printer->windowBasePos.x + 3, printer->windowBasePos.y - 1, + printer->windowSize.x - 6, 1); + msg_draw_prim_rect(32, 255, 32, 0, printer->windowBasePos.x + 3, + printer->windowBasePos.y + printer->windowSize.y, printer->windowSize.x - 6, + 1); + + if (printer->windowState == MSG_WINDOW_STATE_OPENING) { + phi_s0_5 = (printer->fadeInCounter * 0x30) + 0x50; + sp8E = (phi_s0_5 & 0xFF) - 0x30; + printer->fadeInCounter++; + fading = 1; + if ((s16)printer->fadeInCounter == 4) { // TODO why is this cast needed + printer->windowState = MSG_WINDOW_STATE_PRINTING; + } + } else if (printer->windowState == MSG_WINDOW_STATE_CLOSING) { + phi_s0_5 = -0x30 - (printer->fadeOutCounter * 40); + sp8E = (phi_s0_5 & 0xFF) - 0x30; + printer->fadeOutCounter++; + fading = 1; + if (printer->fadeOutCounter == 4) { + printer->stateFlags |= MSG_STATE_FLAG_1; + } + } + + msg_draw_frame(printer->windowBasePos.x, printer->windowBasePos.y, printer->windowSize.x, printer->windowSize.y, MSG_STYLE_INSPECT, + msg_drawState->framePalette, fading, phi_s0_5, phi_s0_5); + msg_reset_gfx_state(); + spAE = phi_s0_5 & 0xFF; + msg_drawState->drawBufferPos += 2; + break; + case MSG_STYLE_SIGN: + case MSG_STYLE_LAMPPOST: + msg_drawState->textStartPos[0] = 18; + msg_drawState->textStartPos[1] = 11; + printer->windowBasePos.x = 20; + printer->windowBasePos.y = 28; + printer->windowSize.x = 280; + msg_drawState->framePalette = 15; + temp_s1_5 = 0xFF; + if (printer->style == MSG_STYLE_SIGN) { + signRaster = ui_msg_sign_corner_bottomright_png; + printer->windowSize.y = 72; + msg_drawState->textColor = MSG_PAL_18; + signPalette = ui_msg_sign_pal; + } else { + signRaster = ui_msg_lamppost_corner_bottomright_png; + msg_drawState->textColor = MSG_PAL_1C; + signPalette = ui_msg_lamppost_pal; + } + msg_drawState->clipX[0] = 34; + msg_drawState->clipY[0] = 40; + msg_drawState->clipX[1] = 283; + msg_drawState->clipY[1] = printer->windowSize.y + 17; + printer->rewindArrowPos.x = msg_drawState->clipX[1] - 16; + printer->rewindArrowPos.y = msg_drawState->clipY[1] - 9; + + if (printer->windowState == MSG_WINDOW_STATE_OPENING) { + temp_s1_5 = (printer->fadeInCounter << 6) + 0x50; + sp8E = (temp_s1_5 & 0xFF) - 0x30; + printer->fadeInCounter++; + if (printer->fadeInCounter == 3) { + printer->windowState = MSG_WINDOW_STATE_PRINTING; + } + } else { + if (printer->windowState == MSG_WINDOW_STATE_CLOSING) { + temp_s1_5 = -0x30 - (printer->fadeOutCounter * 0x30); + sp8E = (temp_s1_5 & 0xFF) - 0x30; + printer->fadeOutCounter++; + if (printer->fadeOutCounter == 3) { + printer->stateFlags |= MSG_STATE_FLAG_1; + } + } + } + spAE = (u8)temp_s1_5; + draw_ci_image_with_clipping(ui_msg_sign_corner_topleft_png, 16, 16, G_IM_FMT_CI, G_IM_SIZ_4b, signPalette, 20, 28, 10, 10, 310, 230, temp_s1_5); + draw_ci_image_with_clipping(ui_msg_sign_corner_topright_png, 16, 16, G_IM_FMT_CI, G_IM_SIZ_4b, signPalette, 284, 28, 10, 10, 310, 230, temp_s1_5); + draw_ci_image_with_clipping(ui_msg_sign_corner_bottomleft_png, 16, 16, G_IM_FMT_CI, G_IM_SIZ_4b, signPalette, 20, printer->windowSize.y + 12, 10, 10, 310, 230, + temp_s1_5); + draw_ci_image_with_clipping(signRaster, 16, 16, G_IM_FMT_CI, G_IM_SIZ_4b, signPalette, 284, printer->windowSize.y + 12, 10, 10, 310, 230, temp_s1_5); + gDPLoadTextureTile_4b(gMainGfxPos++, ui_msg_sign_side_top_png, G_IM_FMT_CI, 32, 0, 0, 0, 31, 15, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, 5, 4, G_TX_NOLOD, G_TX_NOLOD); + gSPTextureRectangle(gMainGfxPos++, 0x0090, 0x0070, 0x0470, 0x00B0, G_TX_RENDERTILE, 0, 0, 0x0400, 0x0400); + gDPLoadTextureTile_4b(gMainGfxPos++, ui_msg_sign_side_left_png, G_IM_FMT_CI, 16, 0, 0, 0, 15, 31, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, 4, 5, G_TX_NOLOD, G_TX_NOLOD); + gSPTextureRectangle(gMainGfxPos++, 0x0050, 0x00B0, 0x0090, (printer->windowSize.y + 12) * 4, G_TX_RENDERTILE, 0, 0, + 0x0400, 0x0400); + gDPLoadTextureTile_4b(gMainGfxPos++, ui_msg_sign_side_right_png, G_IM_FMT_CI, 16, 0, 0, 0, 15, 31, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, 4, 5, G_TX_NOLOD, G_TX_NOLOD); + gSPTextureRectangle(gMainGfxPos++, 0x0470, 0x00B0, 0x04B0, (printer->windowSize.y + 12) * 4, G_TX_RENDERTILE, 0, 0, + 0x0400, 0x0400); + gDPLoadTextureTile_4b(gMainGfxPos++, ui_msg_sign_side_bottom_png, G_IM_FMT_CI, 32, 0, 0, 0, 31, 15, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, 5, 4, G_TX_NOLOD, G_TX_NOLOD); + gSPTextureRectangle(gMainGfxPos++, 0x0090, (printer->windowSize.y + 12) * 4, 0x0470, (printer->windowSize.y + 28) * 4, + G_TX_RENDERTILE, 0, 0, 0x0400, 0x0400); + gDPLoadTextureTile_4b(gMainGfxPos++, ui_msg_sign_fill_png, G_IM_FMT_CI, 8, 0, 0, 0, 7, 7, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, 3, 3, G_TX_NOLOD, G_TX_NOLOD); + gSPTextureRectangle(gMainGfxPos++, 0x0090, 0x00B0, 0x0470, (printer->windowSize.y + 12) * 4, G_TX_RENDERTILE, 0, 0, + 0x0400, 0x0400); + msg_reset_gfx_state(); + msg_drawState->drawBufferPos += 2; + break; + case MSG_STYLE_POSTCARD: + phi_s2_4 = 0; + msg_drawState->textStartPos[0] = 12; + msg_drawState->textStartPos[1] = 5; + printer->windowBasePos.x = 40; + printer->windowBasePos.y = 28; + msg_drawState->clipX[0] = 45; + msg_drawState->clipY[0] = 32; + msg_drawState->clipX[1] = 272; + msg_drawState->clipY[1] = 81; + printer->rewindArrowPos.x = msg_drawState->clipX[1] - 21; + printer->rewindArrowPos.y = msg_drawState->clipY[1] - 20; + msg_drawState->framePalette = 0; + msg_drawState->textColor = MSG_PAL_WHITE; + msg_draw_prim_rect(255, 32, 32, 0, 43, 27, 234, 1); + msg_draw_prim_rect(32, 255, 32, 0, 43, 86, 234, 1); + phi_s3_2 = 0xFF; + if (printer->windowState == MSG_WINDOW_STATE_OPENING) { + phi_s3_2 = (printer->fadeInCounter * 64) + 80; + sp8E = (phi_s3_2 & 0xFF) - 0x30; + printer->fadeInCounter++; + if (printer->fadeInCounter == 3) { + printer->windowState = MSG_WINDOW_STATE_PRINTING; + } + phi_s2_4 = 1; + } else if (printer->windowState == MSG_WINDOW_STATE_CLOSING) { + phi_s3_2 = -0x30 - (printer->fadeOutCounter * 0x30); + sp8E = (phi_s3_2 & 0xFF) - 0x30; + printer->fadeOutCounter++; + if (printer->fadeOutCounter == 3) { + printer->stateFlags |= MSG_STATE_FLAG_1; + } + phi_s2_4 = 1; + } + msg_draw_frame(40, 28, 240, 58, MSG_STYLE_INSPECT, msg_drawState->framePalette, phi_s2_4, phi_s3_2, phi_s3_2); + draw_ci_image_with_clipping(printer->letterBackgroundImg, 150, 105, G_IM_FMT_CI, G_IM_SIZ_4b, + printer->letterBackgroundPal, 85, 97, 10, 10, 300, 220, phi_s3_2); + draw_ci_image_with_clipping(printer->letterContentImg, 70, 95, G_IM_FMT_CI, G_IM_SIZ_8b, + printer->letterContentPal, 160, 102, 10, 10, 300, 220, phi_s3_2); + msg_reset_gfx_state(); + spAE = phi_s3_2 & 0xFF; + msg_drawState->drawBufferPos += 2; + break; + case MSG_STYLE_POPUP: + case MSG_STYLE_B: + msg_drawState->textStartPos[0] = 16; + msg_drawState->textStartPos[1] = 4; + msg_drawState->clipX[0] = 0; + msg_drawState->clipX[1] = SCREEN_WIDTH - 1; + msg_drawState->clipY[0] = 0; + msg_drawState->clipY[1] = SCREEN_HEIGHT - 1; + msg_drawState->textColor = MSG_PAL_WHITE; + msg_drawState->printModeFlags |= MSG_PRINT_FLAG_10; + if (printer->windowState == MSG_WINDOW_STATE_D || printer->windowState == MSG_WINDOW_STATE_E) { + printer->windowBasePos.x = 0; + printer->windowBasePos.y = 0; + } else { + printer->windowBasePos.x = 160 - printer->windowSize.x / 2; + printer->windowBasePos.y = 56; + draw_box(0, WINDOW_STYLE_0, printer->windowBasePos.x, 56, 0, printer->windowSize.x, + printer->windowSize.y, 255, 0, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, NULL, 0, NULL, + SCREEN_WIDTH, SCREEN_HEIGHT, NULL); + } + msg_reset_gfx_state(); + msg_drawState->drawBufferPos += 2; + break; + case MSG_STYLE_EPILOGUE: + printer->windowBasePos.x = 60; + printer->windowBasePos.y = 110; + printer->windowSize.x = 200; + printer->windowSize.y = 50; + msg_drawState->textStartPos[0] = 0; + msg_drawState->textStartPos[1] = -2; + msg_drawState->clipX[0] = printer->windowBasePos.x; + msg_drawState->clipY[0] = printer->windowBasePos.y; + msg_drawState->clipX[1] = printer->windowBasePos.x + printer->windowSize.x; + msg_drawState->clipY[1] = printer->windowBasePos.y + printer->windowSize.y; + printer->rewindArrowPos.x = printer->windowBasePos.x + printer->windowSize.x - 10; + printer->rewindArrowPos.y = printer->windowBasePos.y + printer->windowSize.y - 10; + msg_reset_gfx_state(); + msg_drawState->drawBufferPos += 2; + break; + } + break; + case MSG_CHAR_PRINT_NEXT: + if (printer->windowState == MSG_WINDOW_STATE_C) { + if (msg_drawState->nextCounter >= printer->unkArraySize) { + sp80bool = TRUE; + } + } else if (printer->windowState == MSG_WINDOW_STATE_B) { + if (printer->curLinePos < printer->lineEndPos[printer->unkArraySize]) { + if (msg_drawState->nextCounter >= printer->unkArraySize) { + sp80bool = TRUE; + } + } else { + if (printer->unkArraySize < msg_drawState->nextCounter) { + sp80bool = TRUE; + } else if (msg_drawState->nextCounter >= printer->unkArraySize) { + phi_a0_4 = 36; + if (printer->maxLinesPerPage >= 2) { + phi_v0_3 = 48; + if (printer->maxLinesPerPage == 2) { + phi_v0_3 = 32; + } + if (printer->unk_4C8 < phi_v0_3) { + if (printer->unk_4C8 <= 0x10) { + phi_a0_4 = 56; + } + sp8E = 0xFF - (phi_a0_4 * printer->unk_4CC); + if (sp8E < 0) { + sp8E = 0; + } + } + } + } + } + } + msg_drawState->nextCounter++; + msg_drawState->drawBufferPos++; + break; + case MSG_CHAR_PRINT_END: + sp80bool = TRUE; + break; + case MSG_CHAR_PRINT_FUNCTION: + msg_drawState->drawBufferPos++; + switch (msg_drawState->printBuffer[msg_drawState->drawBufferPos]) { + case MSG_PRINT_FUNC_FONT: + msg_drawState->font = msg_drawState->printBuffer[msg_drawState->drawBufferPos + 1]; + msg_drawState->drawBufferPos += 2; + msg_drawState->printModeFlags |= MSG_PRINT_FLAG_10; + break; + case MSG_PRINT_FUNC_VARIANT: + msg_drawState->fontVariant = msg_drawState->printBuffer[msg_drawState->drawBufferPos + 1]; + msg_drawState->drawBufferPos += 2; + break; + case MSG_PRINT_FUNC_COLOR: + msg_drawState->textColor = msg_drawState->printBuffer[msg_drawState->drawBufferPos + 1]; + msg_drawState->printModeFlags |= MSG_PRINT_FLAG_10; + msg_drawState->drawBufferPos += 2; + break; + case MSG_PRINT_FUNC_SPACING: + msg_drawState->curPosX = msg_drawState->printBuffer[msg_drawState->drawBufferPos + 1]; + msg_drawState->drawBufferPos += 2; + break; + case MSG_PRINT_FUNC_SIZE: + packedScaleX = msg_drawState->printBuffer[msg_drawState->drawBufferPos + 1]; + msg_drawState->msgScale.x = (f32)(packedScaleX >> 4) + ((packedScaleX & 0xF) * 0.0625f); + packedScaleY = msg_drawState->printBuffer[msg_drawState->drawBufferPos + 2]; + msg_drawState->msgScale.y = (f32)(packedScaleY >> 4) + ((packedScaleY & 0xF) * 0.0625f); + msg_drawState->drawBufferPos += 3; + if (msg_drawState->msgScale.x > 1.0 || msg_drawState->msgScale.y > 1.0) { + gDPSetTextureFilter(gMainGfxPos++, G_TF_POINT); + } else if (msg_drawState->msgScale.x < 1.0 || msg_drawState->msgScale.y < 1.0) { + gDPSetTextureFilter(gMainGfxPos++, G_TF_AVERAGE); + } + break; + case MSG_PRINT_FUNC_SIZE_RESET: + msg_drawState->msgScale.x = 1.0f; + msg_drawState->msgScale.y = 1.0f; + msg_drawState->drawBufferPos++; + gDPSetTextureFilter(gMainGfxPos++, G_TF_AVERAGE); + break; + case MSG_PRINT_FUNC_SET_X: + msg_drawState->nextPos[0] = msg_drawState->printBuffer[msg_drawState->drawBufferPos + 1] * 256 + + (msg_drawState->printBuffer[msg_drawState->drawBufferPos + 2]); + msg_drawState->drawBufferPos += 3; + break; + case MSG_PRINT_FUNC_SET_Y: + msg_drawState->nextPos[1] = msg_drawState->printBuffer[msg_drawState->drawBufferPos + 1]; + msg_drawState->drawBufferPos += 2; + break; + case MSG_PRINT_FUNC_RIGHT: + msg_drawState->nextPos[0] += msg_drawState->printBuffer[msg_drawState->drawBufferPos + 1]; + msg_drawState->drawBufferPos += 2; + break; + case MSG_PRINT_FUNC_DOWN: + msg_drawState->nextPos[1] += msg_drawState->printBuffer[msg_drawState->drawBufferPos + 1]; + msg_drawState->drawBufferPos += 2; + break; + case MSG_PRINT_FUNC_UP: + msg_drawState->nextPos[1] -= msg_drawState->printBuffer[msg_drawState->drawBufferPos + 1]; + msg_drawState->drawBufferPos += 2; + break; + case MSG_PRINT_FUNC_INLINE_IMAGE: + msgImageData = &(*gMsgVarImages)[msg_drawState->printBuffer[msg_drawState->drawBufferPos + 1]]; + phi_t5 = sp8E; + if (sp8E < 0xFF) { + phi_t5 = (s32)(sp8E * 0.7); + } + imgDrawPosX = (s16)((msg_drawState->nextPos[0] + (msg_drawState->textStartPos[0] + (printer->windowBasePos.x + posX))) - + additionalOffsetX); + imgDrawPosY = (s16)((msg_drawState->nextPos[1] + (msg_drawState->textStartPos[1] + (printer->windowBasePos.y + posY))) - + additionalOffsetY); + + draw_ci_image_with_clipping(msgImageData->raster, msgImageData->width, msgImageData->height, msgImageData->format, msgImageData->bitDepth, + msgImageData->palette, imgDrawPosX, imgDrawPosY, (s32) msg_drawState->clipX[0], (s32) msg_drawState->clipY[0], + msg_drawState->clipX[1] - msg_drawState->clipX[0], msg_drawState->clipY[1] - msg_drawState->clipY[0], phi_t5); + msg_drawState->printModeFlags |= (MSG_PRINT_FLAG_2 | MSG_PRINT_FLAG_10); + msg_drawState->drawBufferPos += 2; + break; + case MSG_PRINT_FUNC_ANIM_SPRITE: + phi_s0_6 = sp8E; + if (sp8E < 0xFF) { + phi_s0_6 = (s32)(sp8E * 0.7); + } + + if (spr_get_npc_raster_info(&sprRasterInfo, (msg_drawState->printBuffer[msg_drawState->drawBufferPos + 1] << 8) | + msg_drawState->printBuffer[msg_drawState->drawBufferPos + 2], + msg_drawState->printBuffer[msg_drawState->drawBufferPos + 3]) != 0) { + imgDrawPosX = (s16)((msg_drawState->nextPos[0] + (msg_drawState->textStartPos[0] + (printer->windowBasePos.x + posX))) - + additionalOffsetX); + imgDrawPosY = (s16)((msg_drawState->nextPos[1] + (msg_drawState->textStartPos[1] + (printer->windowBasePos.y + posY))) - + additionalOffsetY); + + draw_ci_image_with_clipping(sprRasterInfo.raster, sprRasterInfo.width, sprRasterInfo.height, G_IM_FMT_CI, G_IM_SIZ_4b, sprRasterInfo.defaultPal, imgDrawPosX, imgDrawPosY, + msg_drawState->clipX[0], msg_drawState->clipY[0], msg_drawState->clipX[1] - msg_drawState->clipX[0], + msg_drawState->clipY[1] - msg_drawState->clipY[0], phi_s0_6); + msg_drawState->printModeFlags |= MSG_PRINT_FLAG_10; + } + msg_drawState->drawBufferPos += 4; + break; + case MSG_PRINT_FUNC_ITEM_ICON: + if (D_8015131C != 0) { + phi_t3 = sp8E; + if (sp8E < 0xFF) { + phi_t3 = (s32)(sp8E * 0.7); + } + imgDrawPosX = (s16)((msg_drawState->nextPos[0] + (msg_drawState->textStartPos[0] + (printer->windowBasePos.x + posX))) - + additionalOffsetX); + imgDrawPosY = (s16)((msg_drawState->nextPos[1] + (msg_drawState->textStartPos[1] + (printer->windowBasePos.y + posY))) - + additionalOffsetY); + + draw_ci_image_with_clipping(D_80159B50, 32, 32, G_IM_FMT_CI, G_IM_SIZ_4b, D_8015C7E0, imgDrawPosX, imgDrawPosY, msg_drawState->clipX[0], + msg_drawState->clipY[0], msg_drawState->clipX[1] - msg_drawState->clipX[0], + msg_drawState->clipY[1] - msg_drawState->clipY[0], phi_t3); + msg_drawState->printModeFlags |= MSG_PRINT_FLAG_10; + } + msg_drawState->drawBufferPos++; + break; + case MSG_PRINT_FUNC_ANIM_DELAY: + animIdx = msg_drawState->printBuffer[msg_drawState->drawBufferPos + 1]; + if (printer->animTimers[animIdx] == -1) { + printer->animTimers[animIdx] = msg_drawState->printBuffer[msg_drawState->drawBufferPos + 3]; + } + if (printer->animTimers[animIdx] == 0) { + printer->curAnimFrame[animIdx]++; + } + + dbPos = msg_drawState->drawBufferPos; + while (TRUE) { + if ((msg_drawState->printBuffer[dbPos - 1] == MSG_CHAR_PRINT_FUNCTION) && + (msg_drawState->printBuffer[dbPos] == MSG_PRINT_FUNC_ANIM_DELAY) && + (msg_drawState->printBuffer[dbPos + 1] == animIdx)) { + if (msg_drawState->printBuffer[dbPos + 2] != printer->curAnimFrame[animIdx]) { + dbPos += 4; + } else { + break; + } + } else { + if ((msg_drawState->printBuffer[dbPos] == MSG_CHAR_PRINT_FUNCTION) && + (msg_drawState->printBuffer[dbPos + 1] == MSG_PRINT_FUNC_ANIM_LOOP) && + (msg_drawState->printBuffer[dbPos + 2] == animIdx)) { + + if (printer->animTimers[animIdx] == 0) { + printer->curAnimFrame[animIdx] = msg_drawState->printBuffer[dbPos + 3]; + dbPos = msg_drawState->drawBufferPos; + continue; + } else { + dbPos++; + break; + } + } else { + if (msg_drawState->printBuffer[dbPos] == MSG_CHAR_PRINT_FUNCTION && + msg_drawState->printBuffer[dbPos + 1] == MSG_PRINT_FUNC_ANIM_DONE) { + if (msg_drawState->printBuffer[dbPos + 2] == animIdx) { + dbPos++; + break; + } + } + } + } + dbPos++; + } + msg_drawState->drawBufferPos = dbPos; + + switch (msg_drawState->printBuffer[msg_drawState->drawBufferPos]) { + case MSG_PRINT_FUNC_ANIM_DELAY: + if (printer->animTimers[animIdx] == 0) { + if (msg_drawState->printBuffer[msg_drawState->drawBufferPos + 3] == 0) { + printer->animTimers[animIdx] = -2; + } else { + printer->animTimers[animIdx] = msg_drawState->printBuffer[msg_drawState->drawBufferPos + 3]; + } + } + msg_drawState->drawBufferPos += 4; + break; + case MSG_PRINT_FUNC_ANIM_LOOP: + msg_drawState->drawBufferPos += 3; + break; + case MSG_PRINT_FUNC_ANIM_DONE: + msg_drawState->drawBufferPos += 2; + break; + } + break; + case MSG_PRINT_FUNC_ANIM_LOOP: + msg_drawState->drawBufferPos += 3; + break; + case MSG_PRINT_FUNC_ANIM_DONE: + msg_drawState->drawBufferPos += 2; + break; + case MSG_PRINT_FUNC_CURSOR: + printer->cursorPosX[msg_drawState->printBuffer[msg_drawState->drawBufferPos + 1]] = msg_drawState->textStartPos[0] + + msg_drawState->nextPos[0] - additionalOffsetX - 6; + printer->cursorPosY[msg_drawState->printBuffer[msg_drawState->drawBufferPos + 1]] = msg_drawState->textStartPos[1] + + msg_drawState->nextPos[1] - additionalOffsetY - 1; + msg_drawState->drawBufferPos += 2; + break; + case MSG_PRINT_FUNC_OPTION: + if (msg_drawState->printBuffer[msg_drawState->drawBufferPos + 1] == 0xFF) { + msg_drawState->printModeFlags &= ~MSG_PRINT_FLAG_20; + } else { + msg_drawState->unk_2D = msg_drawState->printBuffer[msg_drawState->drawBufferPos + 1]; + msg_drawState->printModeFlags |= MSG_PRINT_FLAG_20; + msg_drawState->nextPos[0] += 14; + } + msg_drawState->drawBufferPos += 2; + break; + case MSG_PRINT_FUNC_SET_FRAME_PALETTE: + msg_drawState->framePalette = msg_drawState->printBuffer[msg_drawState->drawBufferPos + 1]; + msg_drawState->drawBufferPos += 2; + break; + case MSG_PRINT_RESET_GFX: + msg_reset_gfx_state(); + msg_drawState->drawBufferPos++; + break; + case MSG_PRINT_FUNC_SAVE_POS: + msg_drawState->savedPos[0] = msg_drawState->nextPos[0]; + msg_drawState->savedPos[1] = msg_drawState->nextPos[1]; + msg_drawState->drawBufferPos++; + break; + case MSG_PRINT_FUNC_RESTORE_POS: + msg_drawState->nextPos[0] = msg_drawState->savedPos[0]; + msg_drawState->nextPos[1] = msg_drawState->savedPos[1]; + msg_drawState->drawBufferPos++; + break; + case MSG_PRINT_FUNC_SAVE_COLOR: + msg_drawState->savedColor = msg_drawState->textColor; + msg_drawState->drawBufferPos++; + break; + case MSG_PRINT_FUNC_RESTORE_COLOR: + msg_drawState->textColor = msg_drawState->savedColor; + msg_drawState->drawBufferPos++; + break; + case MSG_PRINT_FUNC_START_FX: + switch (msg_drawState->printBuffer[msg_drawState->drawBufferPos + 1]) { + case MSG_FX_SHAKE: + msg_drawState->effectFlags |= MSG_FX_FLAG_SHAKE; + msg_drawState->drawBufferPos += 2; + break; + case MSG_FX_WAVE: + msg_drawState->effectFlags |= MSG_FX_FLAG_WAVE; + msg_drawState->drawBufferPos += 2; + break; + case MSG_FX_NOISE_OUTLINE: + msg_drawState->effectFlags |= MSG_FX_FLAG_NOISE_OUTLINE; + gDPSetCombineMode(gMainGfxPos++, PM_CC_MSG_NOISE_OUTLINE, PM_CC_MSG_NOISE_OUTLINE); + msg_drawState->drawBufferPos += 2; + break; + case MSG_FX_STATIC: + msg_drawState->effectFlags |= MSG_FX_FLAG_STATIC; + gDPSetEnvColor(gMainGfxPos++, + msg_drawState->printBuffer[msg_drawState->drawBufferPos + 2], + msg_drawState->printBuffer[msg_drawState->drawBufferPos + 2], + msg_drawState->printBuffer[msg_drawState->drawBufferPos + 2], + 0); + gDPSetCombineMode(gMainGfxPos++, PM_CC_MSG_STATIC, PM_CC_MSG_STATIC); + msg_drawState->drawBufferPos += 3; + break; + case MSG_FX_BLUR: + msg_drawState->effectFlags |= MSG_FX_FLAG_BLUR; + spB8 = msg_drawState->printBuffer[msg_drawState->drawBufferPos + 2]; + msg_drawState->drawBufferPos += 3; + break; + case MSG_FX_RAINBOW: + msg_drawState->effectFlags |= MSG_FX_FLAG_RAINBOW; + msg_drawState->drawBufferPos += 2; + break; + case MSG_FX_DITHER_FADE: + msg_drawState->effectFlags |= MSG_FX_FLAG_DITHER_FADE; + spB6 = msg_drawState->printBuffer[msg_drawState->drawBufferPos + 2]; + msg_drawState->drawBufferPos += 3; + break; + case MSG_FX_GLOBAL_WAVE: + msg_drawState->effectFlags |= MSG_FX_FLAG_GLOBAL_WAVE; + msg_drawState->drawBufferPos += 2; + break; + case MSG_FX_GLOBAL_RAINBOW: + msg_drawState->effectFlags |= MSG_FX_FLAG_GLOBAL_RAINBOW; + msg_drawState->drawBufferPos += 2; + break; + case MSG_FX_RISE_PRINT: + msg_drawState->effectFlags |= MSG_FX_FLAG_RISE_PRINT; + msg_drawState->drawBufferPos += 2; + break; + case MSG_FX_GROW_PRINT: + msg_drawState->effectFlags |= MSG_FX_FLAG_GROW_PRINT; + msg_drawState->drawBufferPos += 2; + break; + case MSG_FX_SIZE_JITTER: + msg_drawState->effectFlags |= MSG_FX_FLAG_SIZE_JITTER; + msg_drawState->drawBufferPos += 2; + break; + case MSG_FX_SIZE_WAVE: + msg_drawState->effectFlags |= MSG_FX_FLAG_SIZE_WAVE; + msg_drawState->drawBufferPos += 2; + break; + case MSG_FX_DROP_SHADOW: + msg_drawState->effectFlags |= MSG_FX_FLAG_DROP_SHADOW; + msg_drawState->drawBufferPos += 2; + break; + } + break; + case MSG_PRINT_FUNC_END_FX: + switch (msg_drawState->printBuffer[msg_drawState->drawBufferPos + 1]) { + case MSG_FX_SHAKE: + msg_drawState->effectFlags &= ~MSG_FX_FLAG_SHAKE; + break; + case MSG_FX_WAVE: + msg_drawState->effectFlags &= ~MSG_FX_FLAG_WAVE; + break; + case MSG_FX_NOISE_OUTLINE: + msg_drawState->effectFlags &= ~MSG_FX_FLAG_NOISE_OUTLINE; + break; + case MSG_FX_STATIC: + msg_drawState->effectFlags &= ~MSG_FX_FLAG_STATIC; + break; + case MSG_FX_BLUR: + msg_drawState->effectFlags &= ~MSG_FX_FLAG_BLUR; + break; + case MSG_FX_RAINBOW: + msg_drawState->effectFlags &= ~MSG_FX_FLAG_RAINBOW; + msg_drawState->printModeFlags |= MSG_PRINT_FLAG_10; + break; + case MSG_FX_DITHER_FADE: + msg_drawState->effectFlags &= ~MSG_FX_FLAG_DITHER_FADE; + break; + case MSG_FX_GLOBAL_WAVE: + msg_drawState->effectFlags &= ~MSG_FX_FLAG_GLOBAL_WAVE; + break; + case MSG_FX_GLOBAL_RAINBOW: + msg_drawState->effectFlags &= ~MSG_FX_FLAG_GLOBAL_RAINBOW; + msg_drawState->printModeFlags |= MSG_PRINT_FLAG_10; + break; + case MSG_FX_RISE_PRINT: + msg_drawState->effectFlags &= ~MSG_FX_FLAG_RISE_PRINT; + break; + case MSG_FX_GROW_PRINT: + msg_drawState->effectFlags &= ~MSG_FX_FLAG_GROW_PRINT; + break; + case MSG_FX_SIZE_JITTER: + msg_drawState->effectFlags &= ~MSG_FX_FLAG_SIZE_JITTER; + break; + case MSG_FX_SIZE_WAVE: + msg_drawState->effectFlags &= ~MSG_FX_FLAG_SIZE_WAVE; + break; + case MSG_FX_DROP_SHADOW: + msg_drawState->effectFlags &= ~MSG_FX_FLAG_DROP_SHADOW; + break; + } + msg_drawState->drawBufferPos += 2; + break; + case MSG_PRINT_FUNC_CENTER_X: + if (msg_drawState->printBuffer[msg_drawState->drawBufferPos + 1] != 0) { + msg_drawState->centerPos = msg_drawState->printBuffer[msg_drawState->drawBufferPos + 1]; + if (msg_drawState->centerPos == 0xFF) { + msg_drawState->centerPos = printer->windowSize.x / 2; + } + msg_drawState->printModeFlags |= (MSG_PRINT_FLAG_40 | MSG_PRINT_FLAG_80); + } else { + msg_drawState->nextPos[0] = 0; + msg_drawState->printModeFlags &= ~(MSG_PRINT_FLAG_40 | MSG_PRINT_FLAG_80); + } + msg_drawState->drawBufferPos += 2; + break; + } + break; + default: + if (msg_drawState->printModeFlags & MSG_PRINT_FLAG_2) { + sp96 = 0xFF; + gDPPipeSync(gMainGfxPos++); + gSPDisplayList(gMainGfxPos++, D_8014C500); + } + msg_drawState->charScale.x = msg_drawState->msgScale.x; + msg_drawState->charScale.y = msg_drawState->msgScale.y; + if (msg_drawState->printModeFlags & MSG_PRINT_FLAG_80) { + msg_drawState->nextPos[0] += msg_drawState->centerPos - printer->msgWidth / 2; + msg_drawState->printModeFlags &= ~MSG_PRINT_FLAG_80; + } + if (msg_drawState->printModeFlags & MSG_PRINT_FLAG_40) { + charPosX = (u16) msg_drawState->nextPos[0] + ((u16) printer->windowBasePos.x + (u16) posX); + } else { + charPosX = (u16) msg_drawState->nextPos[0] + ((u16) msg_drawState->textStartPos[0] + ((u16) printer->windowBasePos.x + + (u16) posX)); + } + + msgCharset = MsgCharsets[msg_drawState->font]; + charPosY = (s8) msgCharset->rasters[msg_drawState->fontVariant].baseHeightOffset + (msg_drawState->nextPos[1] + + (msg_drawState->textStartPos[1] + (printer->windowBasePos.y + posY)) - additionalOffsetY); + + if ((sp8E != 0) && + (charPosX < msg_drawState->clipX[1]) && + (charPosY < msg_drawState->clipY[1]) && + (msg_drawState->clipX[0] < charPosX + (s32)(msg_drawState->msgScale.x * + msgCharset->rasters[msg_drawState->fontVariant].monospaceWidth)) && + (msg_drawState->clipY[0] < charPosY + (s32)(msg_drawState->msgScale.y * msgCharset->newLineY + + MsgStyleVerticalLineOffsets[printer->style]))) { + palette = msg_drawState->textColor; + phi_s2_5 = sp8E; + if (msg_drawState->effectFlags & MSG_FX_FLAG_BLUR) { + phi_s2_5 = (f32) phi_s2_5 * 0.35; + } + if ((printer->windowState == MSG_WINDOW_STATE_WAITING_FOR_CHOICE) && (msg_drawState->printModeFlags & MSG_PRINT_FLAG_20)) { + if (msg_drawState->unk_2D == printer->curOption) { + msg_drawState->effectFlags |= MSG_FX_FLAG_DROP_SHADOW | MSG_FX_FLAG_GLOBAL_RAINBOW | MSG_FX_FLAG_GLOBAL_WAVE; + } else { + msg_drawState->effectFlags &= ~MSG_FX_FLAG_GLOBAL_RAINBOW; + msg_drawState->effectFlags &= ~MSG_FX_FLAG_GLOBAL_WAVE; + msg_drawState->effectFlags &= ~MSG_FX_FLAG_DROP_SHADOW; + palette = msg_drawState->textColor; + msg_drawState->printModeFlags |= MSG_PRINT_FLAG_10; + } + } + if (msg_drawState->effectFlags & MSG_FX_FLAG_SHAKE) { + charPosX += rand_int(10000) % 2; + charPosY += rand_int(10000) % 2; + } + if (msg_drawState->effectFlags & MSG_FX_FLAG_WAVE) { + temp_f2_3 = msg_drawState->msgScale.x - 1.0; + temp_s0_7 = (printer->effectFrameCounter * (s32)(20.0 - (temp_f2_3 * 5.0))) - (msg_drawState->visiblePrintedCount * + (s32)(45.0 - (temp_f2_3 * 15.0))); + charPosX += cosine(temp_s0_7) * ((msg_drawState->msgScale.x - 1.0) + 1.6); + charPosY += cosine((temp_s0_7 + 180.0 + 90.0)) * (msg_drawState->msgScale.y - 1.0 + 1.6); + } + if (msg_drawState->effectFlags & MSG_FX_FLAG_GLOBAL_WAVE) { + temp_s0_8 = (gMsgGlobalWaveCounter * (s32)(20.0 - ((msg_drawState->msgScale.x - 1.0) * 5.0))) - + (msg_drawState->visiblePrintedCount * 45); + charPosX += cosine(temp_s0_8) * ((msg_drawState->msgScale.x - 1.0) + 1.6); + charPosY += cosine((temp_s0_8 + 180.0 + 90.0)) * ((msg_drawState->msgScale.y - 1.0) + 1.6); + } + if (msg_drawState->effectFlags & MSG_FX_FLAG_RAINBOW) { + palette = abs(msg_drawState->visiblePrintedCount - (u16)(printer->effectFrameCounter / 3)) % 10; + } + if (msg_drawState->effectFlags & MSG_FX_FLAG_GLOBAL_RAINBOW) { + palette = abs(msg_drawState->visiblePrintedCount - (u16)(gGameStatusPtr->frameCounter / 3)) % 10; + } + if (msg_drawState->effectFlags & MSG_FX_FLAG_DITHER_FADE) { + gDPSetAlphaDither(gMainGfxPos++, G_AD_NOISE); + gDPSetAlphaCompare(gMainGfxPos++, G_AC_DITHER); + phi_s2_5 = spB6 * (phi_s2_5 / 255.0); + } + if ((msg_drawState->printModeFlags & MSG_PRINT_FLAG_2) || (phi_s2_5 != sp96)) { + if ((sp96 < 0xFF) && (phi_s2_5 < 0xFF)) { + gDPSetPrimColor(gMainGfxPos++, 0, 0, 0, 0, 0, phi_s2_5); + } else if ((sp96 == 0xFF) && (phi_s2_5 < 0xFF)) { + gDPPipeSync(gMainGfxPos++); + if (printer->stateFlags & MSG_STATE_FLAG_4000) { + gDPSetRenderMode(gMainGfxPos++, IM_RD | CVG_DST_CLAMP | ZMODE_XLU | FORCE_BL | GBL_c1(G_BL_CLR_IN, G_BL_A_IN, + G_BL_CLR_MEM, G_BL_1MA), IM_RD | CVG_DST_CLAMP | ZMODE_XLU | FORCE_BL | GBL_c2(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, + G_BL_1MA)); + + } else { + gDPSetRenderMode(gMainGfxPos++, IM_RD | CVG_DST_SAVE | ZMODE_XLU | FORCE_BL | GBL_c1(G_BL_CLR_IN, G_BL_A_IN, + G_BL_CLR_MEM, G_BL_1MA), IM_RD | CVG_DST_SAVE | ZMODE_XLU | FORCE_BL | GBL_c2(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, + G_BL_1MA)); + + } + gDPSetCombineMode(gMainGfxPos++, PM_CC_02, PM_CC_02); + gDPSetPrimColor(gMainGfxPos++, 0, 0, 0, 0, 0, phi_s2_5); + } else if ((sp96 < 0xFF) && (phi_s2_5 == 0xFF)) { + gDPPipeSync(gMainGfxPos++); + gDPSetRenderMode(gMainGfxPos++, G_RM_TEX_EDGE, G_RM_TEX_EDGE2); + gDPSetCombineMode(gMainGfxPos++, G_CC_DECALRGBA, G_CC_DECALRGBA); + } + sp96 = phi_s2_5; + } + if (phi_s2_5 > 0) { + if (msg_drawState->effectFlags & MSG_FX_FLAG_RISE_PRINT) { + if ((msg_drawState->printBuffer[msg_drawState->drawBufferPos + 1] != MSG_CHAR_PRINT_ENDL) && + (msg_drawState->printBuffer[msg_drawState->drawBufferPos + 2] != MSG_CHAR_PRINT_ENDL) && + (msg_drawState->printBuffer[msg_drawState->drawBufferPos + 3] != MSG_CHAR_PRINT_ENDL) && + (msg_drawState->printBuffer[msg_drawState->drawBufferPos + 4] != MSG_CHAR_PRINT_ENDL)) { + if ((msg_drawState->printBuffer[msg_drawState->drawBufferPos + 1] == MSG_CHAR_PRINT_END) && + (printer->windowState == MSG_WINDOW_STATE_PRINTING)) { + msg_drawState->charScale.x = msg_drawState->msgScale.x * 1.7; + msg_drawState->charScale.y = msg_drawState->msgScale.y * 1.7; + temp_f8 = (msg_drawState->charScale.y / 1.7) * 6.0; + charPosX -= temp_f8; + charPosY -= temp_f8; + } else if ((msg_drawState->printBuffer[msg_drawState->drawBufferPos + 2] == MSG_CHAR_PRINT_END) && + (printer->windowState == MSG_WINDOW_STATE_PRINTING)) { + msg_drawState->charScale.x = msg_drawState->msgScale.x * 1.4; + msg_drawState->charScale.y = msg_drawState->msgScale.y * 1.4; + temp_f8 = (msg_drawState->charScale.y / 1.4) * 3.0; + charPosX -= temp_f8; + charPosY -= temp_f8; + } else if ((msg_drawState->printBuffer[msg_drawState->drawBufferPos + 3] == MSG_CHAR_PRINT_END) && + (printer->windowState == MSG_WINDOW_STATE_PRINTING)) { + msg_drawState->charScale.x = msg_drawState->msgScale.x * 1.2; + msg_drawState->charScale.y = msg_drawState->msgScale.y * 1.2; + temp_f8 = (msg_drawState->charScale.y / 1.2) * 2.0; + charPosX -= temp_f8; + charPosY -= temp_f8; + } + } + } else if (msg_drawState->effectFlags & MSG_FX_FLAG_GROW_PRINT) { + if ((msg_drawState->printBuffer[msg_drawState->drawBufferPos + 1] != MSG_CHAR_PRINT_ENDL) && + (msg_drawState->printBuffer[msg_drawState->drawBufferPos + 2] != MSG_CHAR_PRINT_ENDL) && + (msg_drawState->printBuffer[msg_drawState->drawBufferPos + 3] != MSG_CHAR_PRINT_ENDL) && + (msg_drawState->printBuffer[msg_drawState->drawBufferPos + 4] != MSG_CHAR_PRINT_ENDL)) { + if ((msg_drawState->printBuffer[msg_drawState->drawBufferPos + 1] == MSG_CHAR_PRINT_END) && + (printer->windowState == MSG_WINDOW_STATE_PRINTING)) { + msg_drawState->charScale.x = msg_drawState->msgScale.x * 0.3; + msg_drawState->charScale.y = msg_drawState->msgScale.y * 0.3; + charPosX += 5; + charPosY += 5; + } else if ((msg_drawState->printBuffer[msg_drawState->drawBufferPos + 2] == MSG_CHAR_PRINT_END) && + (printer->windowState == MSG_WINDOW_STATE_PRINTING)) { + msg_drawState->charScale.x = msg_drawState->msgScale.x * 0.5; + msg_drawState->charScale.y = msg_drawState->msgScale.y * 0.5; + charPosX += 3; + charPosY += 3; + } else if ((msg_drawState->printBuffer[msg_drawState->drawBufferPos + 3] == MSG_CHAR_PRINT_END) && + (printer->windowState == MSG_WINDOW_STATE_PRINTING)) { + msg_drawState->charScale.x = msg_drawState->msgScale.x * 0.75; + msg_drawState->charScale.y = msg_drawState->msgScale.y * 0.75; + charPosX += 2; + charPosY += 2; + } + } + } else if (msg_drawState->effectFlags & MSG_FX_FLAG_SIZE_JITTER) { + temp_f8_5 = rand_int(10000) % 101; + temp_f8_5 /= 100.0; + temp_f8_5 = ((temp_f8_5 * 0.5) + 1.0) - 0.25; + + if (temp_f8_5 > 1.0) { + msg_drawState->charScale.x = msg_drawState->msgScale.x * temp_f8_5; + msg_drawState->charScale.y = msg_drawState->msgScale.y * temp_f8_5; + charPosX -= (temp_f8_5 * 8.0) - 8.5; + charPosY -= (temp_f8_5 * 8.0) - 8.5; + } else if (temp_f8_5 < 1.0) { + msg_drawState->charScale.x = msg_drawState->msgScale.x * temp_f8_5; + msg_drawState->charScale.y = msg_drawState->msgScale.y * temp_f8_5; + charPosX += 8.0 - (temp_f8_5 * 16.0) * 0.5; + charPosY += 8.0 - (temp_f8_5 * 16.0) * 0.5; + } + } else if (msg_drawState->effectFlags & MSG_FX_FLAG_SIZE_WAVE) { + s32 mod360; + + temp_a0_49 = printer->effectFrameCounter * 15; + temp_a0_49 -= msg_drawState->visiblePrintedCount * 15; + mod360 = temp_a0_49 % 360; + temp_f8_5 = (cosine(mod360) * 0.25) + 1.0; + + if (temp_f8_5 > 1.0) { + msg_drawState->charScale.x = msg_drawState->msgScale.x * temp_f8_5; + msg_drawState->charScale.y = msg_drawState->msgScale.y * temp_f8_5; + charPosX -= (temp_f8_5 * 8.0) - 8.5; + charPosY -= (temp_f8_5 * 8.0) - 8.5; + } else if (temp_f8_5 < 1.0) { + msg_drawState->charScale.x = msg_drawState->msgScale.x * temp_f8_5; + msg_drawState->charScale.y = msg_drawState->msgScale.y * temp_f8_5; + charPosX += 8.0 - (temp_f8_5 * 16.0) * 0.5; + charPosY += 8.0 - (temp_f8_5 * 16.0) * 0.5; + } + } + + if ((printer->windowState == MSG_WINDOW_STATE_B || printer->windowState == MSG_WINDOW_STATE_C) && + (printer->style == MSG_STYLE_RIGHT || + printer->style == MSG_STYLE_LEFT || + printer->style == MSG_STYLE_CENTER || + printer->style == MSG_STYLE_TATTLE)) + { + switch (palette) { + case MSG_PAL_WHITE: + case MSG_PAL_RED: + case MSG_PAL_10: + case MSG_PAL_11: + case MSG_PAL_12: + case MSG_PAL_13: + case MSG_PAL_14: + break; + case MSG_PAL_STANDARD: + palette = MSG_PAL_40; + break; + case MSG_PAL_20: + palette = MSG_PAL_41; + break; + case MSG_PAL_22: + palette = MSG_PAL_42; + break; + case MSG_PAL_23: + palette = MSG_PAL_43; + break; + case MSG_PAL_25: + palette = MSG_PAL_44; + break; + default: + palette = MSG_PAL_40; + break; + } + } + if (palette != sp9E) { + sp9E = palette; + msg_drawState->printModeFlags |= MSG_PRINT_FLAG_10; + } + if ((msg_drawState->effectFlags & MSG_FX_FLAG_DROP_SHADOW) && (phi_s2_5 == 0xFF)) { + gDPPipeSync(gMainGfxPos++); + gDPSetRenderMode(gMainGfxPos++, G_RM_XLU_SURF, G_RM_XLU_SURF2); + gDPSetCombineMode(gMainGfxPos++, PM_CC_07, PM_CC_07); + gDPSetPrimColor(gMainGfxPos++, 0, 0, 40, 40, 40, 72); + msg_draw_char(printer, msg_drawState, + msg_drawState->printBuffer[msg_drawState->drawBufferPos], + palette, charPosX + 2, charPosY + 2); + gDPPipeSync(gMainGfxPos++); + gDPSetRenderMode(gMainGfxPos++, G_RM_TEX_EDGE, G_RM_TEX_EDGE2); + gDPSetCombineMode(gMainGfxPos++, G_CC_DECALRGBA, G_CC_DECALRGBA); + } + + if (msg_drawState->effectFlags & MSG_FX_FLAG_BLUR) { + for (i = 0; i < 5; i++) { + phi_s0_7 = charPosX; + phi_s1_8 = charPosY; + if (spB8 != 2) { + phi_s0_7 += (rand_int(10000) % 3) - 1; + } + if (spB8 != 1) { + phi_s1_8 += (rand_int(10000) % 3) - 1; + } + msg_draw_char(printer, msg_drawState, + msg_drawState->printBuffer[msg_drawState->drawBufferPos], palette, + phi_s0_7, phi_s1_8); + } + } else { + msg_draw_char(printer, msg_drawState, + msg_drawState->printBuffer[msg_drawState->drawBufferPos], palette, charPosX, + charPosY); + } + } + } + if (msg_drawState->printModeFlags & MSG_PRINT_FLAG_2) { + msg_drawState->printModeFlags &= ~MSG_PRINT_FLAG_2; + } + msg_drawState->visiblePrintedCount += 1; + msg_drawState->nextPos[0] += + msg_get_draw_char_width(msg_drawState->printBuffer[msg_drawState->drawBufferPos], + msg_drawState->font, msg_drawState->fontVariant, msg_drawState->msgScale.x, + msg_drawState->curPosX, msg_drawState->printModeFlags); + msg_drawState->drawBufferPos++; + break; + } + } + + varImgHasBorder = FALSE; + if (printer->varImageScreenPos.x != 0) { + s16 varImgFinalAlpha; + + varImgFinalAlpha = printer->varImgFinalAlpha; + msgVarImage = &(*gMsgVarImages)[printer->curImageIndex]; + + switch (printer->varImgHasBorder) { + case 0: + case 1: + if (printer->varImgHasBorder) { + varImgHasBorder = TRUE; + } + switch (printer->varImageDisplayState) { + case 0: + printer->varImageFadeTimer++; + varImgFinalAlpha = printer->varImageFadeTimer * printer->varImgAlphaFadeStep; + if (printer->varImgFinalAlpha <= varImgFinalAlpha) { + varImgFinalAlpha = printer->varImgFinalAlpha; + printer->varImageFadeTimer = 0; + printer->varImageDisplayState = 1; + } + break; + case 1: + varImgFinalAlpha = (u8)(((f32) spAE / 255.0) * (f32) printer->varImgFinalAlpha); + break; + case 2: + printer->varImageFadeTimer++; + varImgFinalAlpha = printer->varImgFinalAlpha - printer->varImgAlphaFadeStep * printer->varImageFadeTimer; + if (varImgFinalAlpha < 1) { + printer->varImageScreenPos.x = 0; + } + break; + } + break; + case 2: + varImgFinalAlpha = (u8)(((f32) spAE / 255.0) * (f32) printer->varImgFinalAlpha); + break; + } + + if (varImgFinalAlpha > 0) { + if (varImgHasBorder) { + draw_box(0, WINDOW_STYLE_15, printer->varImageScreenPos.x - 7, printer->varImageScreenPos.y - 7, 0, + msgVarImage->width + 15, msgVarImage->height + 14, varImgFinalAlpha, 0, 0.0f, 0.0f, 0.0f, 0.0f, + 0.0f, NULL, 0, NULL, SCREEN_WIDTH, SCREEN_HEIGHT, NULL); + } + draw_ci_image_with_clipping(msgVarImage->raster, msgVarImage->width, msgVarImage->height, + msgVarImage->format, msgVarImage->bitDepth, msgVarImage->palette, + printer->varImageScreenPos.x, printer->varImageScreenPos.y, 0, 0, + SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1, varImgFinalAlpha); + } + + } + gDPPipeSync(gMainGfxPos++); + D_80151338 = gMainGfxPos; +} +#endif + +void msg_reset_gfx_state(void) { + gDPPipeSync(gMainGfxPos++); + gSPDisplayList(gMainGfxPos++, D_8014C500); +} + +void msg_draw_char(MessagePrintState* printer, MessageDrawState* drawState, s32 charIndex, s32 palette, s32 posX, s32 posY) { + MessageCharset* messageCharset; + s32 fontVariant; + + s32 clipUly; + s32 clipLry; + s32 clipUlx; + s32 clipLrx; + + s32 rightPosX; + s32 rightPosY; + + f32 clipOffset; + s32 ulx, texOffsetX; + s32 uly, texOffsetY; + s32 lrx, lry; + s32 dsdx, dtdy; + s32 posX2, posY2; + +#if VERSION_IQUE + if (charIndex == MSG_CHAR_ZH_RANK) { + load_font_data(((u8 (*)[128])charset_standard_OFFSET)[charIndex], sizeof(D_801544A0[0]), D_801544A0[0]); + } else if (charIndex == MSG_CHAR_ZH_CHAPTER) { + load_font_data(((u8 (*)[128])charset_standard_OFFSET)[charIndex], sizeof(D_801544A0[0]), D_801544A0[1]); + } else if (charIndex >= MSG_CHAR_ZH_START) { + load_font_data(((u8 (*)[128])charset_standard_OFFSET)[charIndex], sizeof(D_801544A0[0]), D_801544A0[D_8014AD24]); + } +#endif + + messageCharset = MsgCharsets[drawState->font]; + fontVariant = drawState->fontVariant; + + clipUly = drawState->clipY[0]; + clipLry = drawState->clipY[1]; + clipUlx = drawState->clipX[0]; + clipLrx = drawState->clipX[1]; + + posX2 = posX; + posY2 = posY; + + rightPosX = posX2 + (s32)(drawState->charScale.x * messageCharset->texSize.x); + rightPosY = posY2 + (s32)(drawState->charScale.y * messageCharset->texSize.y); + + if (posX2 >= clipLrx || posY2 >= clipLry || rightPosX <= clipUlx || rightPosY <= clipUly) { + return; + } + + if (posX2 < clipUlx) { + clipOffset = abs(posX2 - clipUlx) / drawState->charScale.x; + texOffsetX = (f32)((clipOffset + 0.5) * 32.0); + ulx = clipUlx; + } else { + texOffsetX = 0; + ulx = posX2; + } + + if (posY2 < clipUly) { + if (!(printer->stateFlags & MSG_STATE_FLAG_400) || posY2 < 0) { + clipOffset = abs(posY2 - clipUly) / drawState->charScale.y; + texOffsetY = clipOffset * 32.0f; + uly = clipUly; + } else { + texOffsetY = 0; + uly = posY2; + } + } else { + texOffsetY = 0; + uly = posY2; + } + + lrx = rightPosX; + if (lrx >= clipLrx) { + lrx = clipLrx; + } + + lry = rightPosY; + if (lry >= clipLry) { + lry = clipLry; + } + + dsdx = 1.0f / drawState->charScale.x * 1024.0f; + dtdy = 1.0f / drawState->charScale.y * 1024.0f; + + if (drawState->printModeFlags & (MSG_PRINT_FLAG_10 | MSG_PRINT_FLAG_1)) { + drawState->printModeFlags &= ~(MSG_PRINT_FLAG_10 | MSG_PRINT_FLAG_1); + gDPLoadTLUT_pal16(gMainGfxPos++, 0, D_802F4560[palette]); + } + + if (messageCharset->texSize.x >= 16 && messageCharset->texSize.x % 16 == 0) { +#if VERSION_IQUE + if (charIndex == MSG_CHAR_ZH_RANK || charIndex == MSG_CHAR_ZH_CHAPTER) { + gDPLoadTextureBlock_4b(gMainGfxPos++, D_801544A0[charIndex - MSG_CHAR_ZH_RANK], G_IM_FMT_CI, + messageCharset->texSize.x, messageCharset->texSize.y, 0, + G_TX_WRAP, G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); + } else if (charIndex >= MSG_CHAR_ZH_START) { + gDPLoadTextureBlock_4b(gMainGfxPos++, D_801544A0[D_8014AD24], G_IM_FMT_CI, + messageCharset->texSize.x, messageCharset->texSize.y, 0, + G_TX_WRAP, G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); + } else { +#endif + gDPLoadTextureBlock_4b(gMainGfxPos++, messageCharset->rasters[fontVariant].raster + messageCharset->charRasterSize * charIndex, G_IM_FMT_CI, + messageCharset->texSize.x, messageCharset->texSize.y, 0, + G_TX_WRAP, G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); +#if VERSION_IQUE + } +#endif + } else { +#if VERSION_IQUE + if (charIndex == MSG_CHAR_ZH_RANK || charIndex == MSG_CHAR_ZH_CHAPTER) { + gDPLoadTextureTile_4b(gMainGfxPos++, D_801544A0[charIndex - MSG_CHAR_ZH_RANK], G_IM_FMT_CI, + messageCharset->texSize.x, messageCharset->texSize.y, + 0, 0, messageCharset->texSize.x - 1, messageCharset->texSize.y - 1, 0, + G_TX_WRAP, G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); + } else if (charIndex >= MSG_CHAR_ZH_START) { + gDPLoadTextureTile_4b(gMainGfxPos++, D_801544A0[D_8014AD24], G_IM_FMT_CI, + messageCharset->texSize.x, messageCharset->texSize.y, + 0, 0, messageCharset->texSize.x - 1, messageCharset->texSize.y - 1, 0, + G_TX_WRAP, G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); + } else { +#endif + gDPLoadTextureTile_4b(gMainGfxPos++, messageCharset->rasters[fontVariant].raster + messageCharset->charRasterSize * charIndex, G_IM_FMT_CI, + messageCharset->texSize.x, messageCharset->texSize.y, + 0, 0, messageCharset->texSize.x - 1, messageCharset->texSize.y - 1, 0, + G_TX_WRAP, G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); +#if VERSION_IQUE + } +#endif + } + gSPTextureRectangle(gMainGfxPos++, ulx * 4, uly * 4, lrx * 4, lry * 4, G_TX_RENDERTILE, texOffsetX, texOffsetY, + dsdx, dtdy); + +#if VERSION_IQUE + if (charIndex >= MSG_CHAR_ZH_START) { + D_8014AD24 = (D_8014AD24 + 1) % 120; + if (D_8014AD24 == 0) { + D_8014AD24 = 2; + } + } +#endif +} + +void msg_draw_prim_rect(u8 r, u8 g, u8 b, u8 a, u16 posX, u16 posY, u16 sizeX, u16 sizeY) { + u16 lrX = posX + sizeX; + u16 lrY = posY + sizeY; + + appendGfx_msg_prim_rect(r, g, b, a, posX, posY, lrX, lrY); +} + +void appendGfx_msg_prim_rect(u8 r, u8 g, u8 b, u8 a, u16 ulX, u16 ulY, u16 lrX, u16 lrY) { + gDPPipeSync(gMainGfxPos++); + + if (a == 255) { + gDPSetCombineMode(gMainGfxPos++, PM_CC_PRIM_FULL_ALPHA, PM_CC_PRIM_FULL_ALPHA); + } else { + gDPSetRenderMode(gMainGfxPos++, G_RM_XLU_SURF, G_RM_XLU_SURF2); + gDPSetCombineMode(gMainGfxPos++, G_CC_PRIMITIVE, G_CC_PRIMITIVE); + } + + gDPSetPrimColor(gMainGfxPos++, 0, 0, r, g, b, a); + gDPFillRectangle(gMainGfxPos++, ulX, ulY, lrX, lrY); + gDPPipeSync(gMainGfxPos++); + gDPSetRenderMode(gMainGfxPos++, G_RM_TEX_EDGE, G_RM_TEX_EDGE2); + + switch (msg_drawState->unk_29) { + case 0: + gDPSetCombineMode(gMainGfxPos++, G_CC_DECALRGBA, G_CC_DECALRGBA); + break; + case 1: + gDPSetCombineMode(gMainGfxPos++, G_CC_MODULATEIDECALA_PRIM, G_CC_MODULATEIDECALA_PRIM); + break; + default: + gDPSetCombineMode(gMainGfxPos++, G_CC_DECALRGBA, G_CC_DECALRGBA); + break; + } +} + +void msg_draw_speech_bubble( + MessagePrintState* printer, + s16 posX, s16 posY, s16 straightWidth, s16 curveWidth, s16 height, f32 scaleX, f32 scaleY, u8 opacity, s32 arg9) +{ + Matrix4f sp20, sp60; + s16 temp_v0; + s16 temp_v0_2; + s32 negHeight; + + if (opacity == 255 && scaleX == 1.0 && scaleY == 1.0) { + msg_draw_prim_rect(32, 128, 240, 0, posX - 1, posY + 1, curveWidth + (straightWidth + curveWidth) + 2, height - 2); + } + + negHeight = -height; + + gMsgSpeechBoxLQuad[0].v.ob[0] = 1; + gMsgSpeechBoxLQuad[2].v.ob[0] = 1; + gMsgSpeechBoxLQuad[1].v.ob[0] = curveWidth; + gMsgSpeechBoxLQuad[3].v.ob[0] = curveWidth; + gMsgSpeechBoxLQuad[2].v.ob[1] = negHeight; + gMsgSpeechBoxLQuad[3].v.ob[1] = negHeight; + + temp_v0 = curveWidth + straightWidth; + + gMsgSpeechBoxMQuad[0].v.ob[0] = curveWidth; + gMsgSpeechBoxMQuad[2].v.ob[0] = curveWidth; + gMsgSpeechBoxMQuad[1].v.ob[0] = temp_v0; + gMsgSpeechBoxMQuad[3].v.ob[0] = temp_v0; + gMsgSpeechBoxMQuad[2].v.ob[1] = negHeight; + gMsgSpeechBoxMQuad[3].v.ob[1] = negHeight; + + temp_v0_2 = curveWidth + temp_v0; + + gMsgSpeechBoxRQuad[0].v.ob[0] = temp_v0; + gMsgSpeechBoxRQuad[2].v.ob[0] = temp_v0; + gMsgSpeechBoxRQuad[1].v.ob[0] = temp_v0_2; + gMsgSpeechBoxRQuad[3].v.ob[0] = temp_v0_2; + gMsgSpeechBoxRQuad[2].v.ob[1] = negHeight; + gMsgSpeechBoxRQuad[3].v.ob[1] = negHeight; + + guTranslateF(sp20, posX, -posY, 0.0f); + + if (scaleX != 1.0 || scaleY != 1.0) { + guScaleF(sp60, scaleX, scaleY, 1.0f); + guMtxCatF(sp60, sp20, sp20); + } + + guMtxF2L(sp20, &gDisplayContext->matrixStack[gMatrixListPos]); + + gSPMatrix(gMainGfxPos++, VIRTUAL_TO_PHYSICAL(&gDisplayContext->matrixStack[gMatrixListPos++]), + G_MTX_PUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + + gDPPipeSync(gMainGfxPos++); + gDPSetCycleType(gMainGfxPos++, G_CYC_1CYCLE); + gSPClearGeometryMode(gMainGfxPos++, G_CULL_BOTH | G_LIGHTING); + gSPSetGeometryMode(gMainGfxPos++, G_SHADE | G_SHADING_SMOOTH); + gDPSetColorDither(gMainGfxPos++, G_CD_DISABLE); + gSPTexture(gMainGfxPos++, -1, -1, 0, G_TX_RENDERTILE, G_ON); + gDPSetTexturePersp(gMainGfxPos++, G_TP_PERSP); + + if (printer->maxLinesPerPage == 3) { + gDPSetTextureFilter(gMainGfxPos++, G_TF_POINT); + } else { + gDPSetTextureFilter(gMainGfxPos++, G_TF_BILERP); + } + + if (opacity >= 255) { + gDPSetRenderMode(gMainGfxPos++, AA_EN | CVG_DST_FULL | ZMODE_OPA | CVG_X_ALPHA | + GBL_c1(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_A_MEM), + AA_EN | CVG_DST_FULL | ZMODE_OPA | CVG_X_ALPHA | + GBL_c2(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_A_MEM)); + gDPSetCombineMode(gMainGfxPos++, G_CC_DECALRGBA, G_CC_DECALRGBA); + } else { + gDPSetRenderMode(gMainGfxPos++, IM_RD | CVG_DST_SAVE | ZMODE_XLU | FORCE_BL | + GBL_c1(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_1MA), + IM_RD | CVG_DST_SAVE | ZMODE_XLU | FORCE_BL | + GBL_c2(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_1MA)); + gDPSetCombineMode(gMainGfxPos++, PM_CC_02, PM_CC_02); + gDPSetPrimColor(gMainGfxPos++, 0, 0, 32, 32, 32, opacity); + } + + gDPSetTextureLUT(gMainGfxPos++, G_TT_RGBA16); + gDPSetTextureImage(gMainGfxPos++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, + ui_msg_palettes[msg_drawState->framePalette]); + gDPTileSync(gMainGfxPos++); + gDPSetTile(gMainGfxPos++, G_IM_FMT_RGBA, G_IM_SIZ_4b, 0, 0x0100, G_TX_LOADTILE, 0, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD); + gDPLoadSync(gMainGfxPos++); + gDPLoadTLUTCmd(gMainGfxPos++, G_TX_LOADTILE, 15); + gDPPipeSync(gMainGfxPos++); + gDPLoadTextureTile_4b(gMainGfxPos++, ui_msg_bubble_left_png, G_IM_FMT_CI, 32, 0, 0, 0, 31, 63, 0, + G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, 5, 6, G_TX_NOLOD, G_TX_NOLOD); + gSPVertex(gMainGfxPos++, gMsgSpeechBoxLQuad, 4, 0); + gSP2Triangles(gMainGfxPos++, 0, 2, 1, 0, 1, 2, 3, 0); + gDPLoadTextureTile_4b(gMainGfxPos++, ui_msg_bubble_mid_png, G_IM_FMT_CI, 8, 0, 0, 0, 7, 63, 0, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, 3, 6, G_TX_NOLOD, G_TX_NOLOD); + gSPVertex(gMainGfxPos++, gMsgSpeechBoxMQuad, 4, 0); + gSP2Triangles(gMainGfxPos++, 0, 2, 1, 0, 1, 2, 3, 0); + gDPLoadTextureTile_4b(gMainGfxPos++, ui_msg_bubble_right_png, G_IM_FMT_CI, 32, 0, 0, 0, 31, 63, 0, + G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, 5, 6, G_TX_NOLOD, G_TX_NOLOD); + gSPVertex(gMainGfxPos++, gMsgSpeechBoxRQuad, 4, 0); + gSP2Triangles(gMainGfxPos++, 0, 2, 1, 0, 1, 2, 3, 0); + gDPPipeSync(gMainGfxPos++); +} + +void msg_draw_speech_arrow(MessagePrintState* printer) { + s16 targetX, targetY; + f32 windowXpart; + s32 arrowLength; + Vtx* quad; + s32 angle; + f32 cosAngle, sinAngle; + Matrix4f sp10; + s16 x1, x2, x3, x4; + s32 y1, y2; + u8 pointRightSide = FALSE; + s16 windowX = printer->windowOffsetPos.x + printer->windowBasePos.x; + s16 windowY = printer->windowOffsetPos.y + printer->windowBasePos.y; + + if (printer->openStartPos.x == 0) { + return; + } + + if (printer->style == MSG_STYLE_RIGHT || + printer->style == MSG_STYLE_LEFT || + printer->style == MSG_STYLE_CENTER || + printer->maxLinesPerPage == 3) { + targetY = windowY + printer->windowSize.y - 4; + } else { + targetY = windowY + printer->windowSize.y - 3; + } + + if (printer->style == MSG_STYLE_LEFT) { + pointRightSide = FALSE; + } else if (printer->style == MSG_STYLE_CENTER || printer->openStartPos.x >= 160) { + pointRightSide = TRUE; + } + + if (pointRightSide) { + targetX = windowX + (f32)printer->windowSize.x * 0.7; + if (printer->openStartPos.x < targetX) { + for (windowXpart = 0.7f; windowXpart >= 0.67; windowXpart -= 0.005) { + targetX = windowX + printer->windowSize.x * windowXpart; + angle = atan2(printer->openStartPos.x, printer->openStartPos.y, targetX, targetY); + if (abs(angle) < 45) { + break; + } + } + } + } else { + targetX = windowX + (f32)printer->windowSize.x * 0.3; + if (printer->openStartPos.x > targetX) { + for (windowXpart = 0.3f; windowXpart <= 0.38; windowXpart += 0.005) { + targetX = windowX + printer->windowSize.x * windowXpart; + angle = atan2(printer->openStartPos.x, printer->openStartPos.y, targetX, targetY); + if (abs(angle) < 45) { + break; + } + } + } + } + + x1 = targetX - 9; + x2 = targetX + 9; + x3 = targetX; + + arrowLength = dist2D(printer->initOpenPos.x, printer->initOpenPos.y, targetX, targetY); + if (arrowLength < 10) { + return; + } + + if (arrowLength > 25) { + arrowLength = 25; + } + + // alternate quads between frames + if (gCurrentDisplayContextIndex != 0) { + quad = gMsgArrowQuad1; + } else { + quad = gMsgArrowQuad2; + } + + angle = atan2(targetX, targetY, printer->initOpenPos.x, printer->initOpenPos.y); + angle -= 180; + if (abs(angle) >= 75) { + return; + } + + cosAngle = cosine(angle); + sinAngle = cosine(angle + 90); + + x3 = x3 - arrowLength * cosAngle; + x4 = x3 + 1; + + y1 = -targetY; + y2 = -(s16)(targetY + arrowLength * sinAngle); + + quad[0].v.ob[0] = x1; + quad[0].v.ob[1] = y1; + quad[1].v.ob[0] = x2; + quad[1].v.ob[1] = y1; + + quad[2].v.ob[0] = x3; + quad[2].v.ob[1] = y2; + quad[3].v.ob[0] = x4; + quad[3].v.ob[1] = y2; + + gDPPipeSync(gMainGfxPos++); + gDPSetRenderMode(gMainGfxPos++, G_RM_OPA_SURF, G_RM_OPA_SURF2); + gDPSetCombineMode(gMainGfxPos++, PM_CC_0F, PM_CC_0F); + gDPSetTextureFilter(gMainGfxPos++, G_TF_BILERP); + gDPSetPrimColor(gMainGfxPos++, 0, 0, 32, 32, 32, 255); + gDPLoadTextureTile_4b(gMainGfxPos++, ui_msg_arrow_png, G_IM_FMT_CI, 16, 0, 0, 0, 15, 15, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, 4, 4, G_TX_NOLOD, G_TX_NOLOD); + guTranslateF(sp10, 0.0f, 0.0f, 0.0f); + guMtxF2L(sp10, &gDisplayContext->matrixStack[gMatrixListPos]); + gSPMatrix(gMainGfxPos++, VIRTUAL_TO_PHYSICAL(&gDisplayContext->matrixStack[gMatrixListPos++]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPVertex(gMainGfxPos++, quad, 4, 0); + gSP2Triangles(gMainGfxPos++, 0, 2, 1, 0, 1, 2, 3, 0); +} + +void msg_draw_frame(s32 posX, s32 posY, s32 sizeX, s32 sizeY, s32 style, s32 palette, s32 fading, s32 bgAlpha, s32 frameAlpha) { + s32 i; + s32 frameType; + s32 textures[16]; + u8 r, g, b; + Rect quads[16]; + + if (sizeX < 16 || sizeY < 16) { + return; + } + + if (fading != 0 && bgAlpha == 0 && frameAlpha == 0) { + return; + } + + gDPPipeSync(gMainGfxPos++); + gDPSetCycleType(gMainGfxPos++, G_CYC_1CYCLE); + gDPSetTexturePersp(gMainGfxPos++, G_TP_NONE); + gDPSetTextureLOD(gMainGfxPos++, G_TL_TILE); + gDPSetTextureLUT(gMainGfxPos++, G_TT_NONE); + gDPSetColorDither(gMainGfxPos++, G_CD_DISABLE); + gDPSetAlphaDither(gMainGfxPos++, G_AD_DISABLE); + gDPSetTextureFilter(gMainGfxPos++, G_TF_POINT); + + if (fading == 0 || bgAlpha != 0) { + do {} while (0); + switch (style) { + case MSG_STYLE_CHOICE: + r = UNPACK_PAL_R(((u16*)ui_msg_palettes)[4]) * 8; + g = UNPACK_PAL_G(((u16*)ui_msg_palettes)[4]) * 8; + b = UNPACK_PAL_B(((u16*)ui_msg_palettes)[4]) * 8; + gDPPipeSync(gMainGfxPos++); + if (fading != 0 && bgAlpha < 255) { + gDPSetRenderMode(gMainGfxPos++, IM_RD | CVG_DST_SAVE | ZMODE_XLU | FORCE_BL | GBL_c1(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_1MA), IM_RD | CVG_DST_SAVE | ZMODE_XLU | FORCE_BL | GBL_c2(G_BL_CLR_IN, G_BL_A_IN, G_BL_CLR_MEM, G_BL_1MA)); + } else { + gDPSetRenderMode(gMainGfxPos++, G_RM_OPA_SURF, G_RM_OPA_SURF2); + } + gDPSetCombineMode(gMainGfxPos++, G_CC_PRIMITIVE, G_CC_PRIMITIVE); + gDPSetPrimColor(gMainGfxPos++, 0, 0, r, g, b, bgAlpha); + if (posX + sizeX - 8 > 0) { + gDPScisFillRectangle(gMainGfxPos++, posX + 8, posY + 8, posX + sizeX - 8, posY + sizeY - 8); + } + break; + case MSG_STYLE_INSPECT: + gDPPipeSync(gMainGfxPos++); + gDPSetTextureFilter(gMainGfxPos++, G_TF_AVERAGE); + gDPSetRenderMode(gMainGfxPos++, G_RM_XLU_SURF, G_RM_XLU_SURF2); + gDPSetCombineMode(gMainGfxPos++, PM_CC_10, PM_CC_10); + if (fading == 0 || bgAlpha == 255) { + gDPSetPrimColor(gMainGfxPos++, 0, 0, 0, 0, 0, 216); + } else { + if (bgAlpha > 216) { + bgAlpha = 216; + } + gDPSetPrimColor(gMainGfxPos++, 0, 0, 0, 0, 0, bgAlpha); + } + + gDPLoadTextureBlock_4b(gMainGfxPos++, ui_msg_background_png, G_IM_FMT_I, 64, 64, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, 6, 6, G_TX_NOLOD, G_TX_NOLOD); + if (style == MSG_STYLE_INSPECT) { + gSPScisTextureRectangle(gMainGfxPos++, (posX + 3) * 4, (posY + 3) * 4, (posX + sizeX - 3) * 4, (posY + sizeY - 3) * 4, + G_TX_RENDERTILE, gMsgBGScrollAmtX, gMsgBGScrollAmtY, 0x400, 0x400); + } else { + gSPScisTextureRectangle(gMainGfxPos++, (posX + 5) * 4, (posY + 5) * 4, (posX + sizeX - 5) * 4, (posY + sizeY - 5) * 4, + G_TX_RENDERTILE, gMsgBGScrollAmtX, gMsgBGScrollAmtY, 0x400, 0x400); + } + break; + } + } + + if (sizeX >= 32) { + quads[2].ulx = (posX + 16) * 4; + quads[2].uly = posY * 4; + quads[2].lrx = (posX + sizeX - 16) * 4; + quads[2].lry = (posY + 8) * 4; + + quads[13].ulx = (posX + 16) * 4; + quads[13].uly = (posY + sizeY - 8) * 4; + quads[13].lrx = (posX + sizeX - 16) * 4; + quads[13].lry = (posY + sizeY) * 4; + } else if (sizeX > 16 && sizeX < 24) { + quads[2].ulx = (posX + 8) * 4; + quads[2].uly = posY * 4; + quads[2].lrx = (posX + sizeX - 8) * 4; + quads[2].lry = (posY + 8) * 4; + + quads[13].ulx = (posX + 8) * 4; + quads[13].uly = (posY + sizeY - 8) * 4; + quads[13].lrx = (posX + sizeX - 8) * 4; + quads[13].lry = (posY + sizeY) * 4; + } else { + quads[2].ulx = 10000; + quads[13].ulx = 10000; + } + + if (sizeY >= 32) { + quads[7].ulx = posX * 4; + quads[7].uly = (posY + 16) * 4; + quads[7].lrx = (posX + 8) * 4; + quads[7].lry = (posY + sizeY - 16) * 4; + + quads[8].ulx = (posX + sizeX - 8) * 4; + quads[8].uly = (posY + 16) * 4; + quads[8].lrx = (posX + sizeX) * 4; + quads[8].lry = (posY + sizeY - 16) * 4; + } else if (sizeY > 16 && sizeY < 24) { + quads[7].ulx = posX * 4; + quads[7].uly = (posY + 8) * 4; + quads[7].lrx = (posX + 8) * 4; + quads[7].lry = (posY + sizeY - 8) * 4; + + quads[8].ulx = (posX + sizeX - 8) * 4; + quads[8].uly = (posY + 8) * 4; + quads[8].lrx = (posX + sizeX) * 4; + quads[8].lry = (posY + sizeY - 8) * 4; + } else { + quads[7].ulx = 10000; + quads[8].ulx = 10000; + } + + if (sizeX >= 24) { + quads[1].ulx = (posX + 8) * 4; + quads[1].uly = posY * 4; + quads[1].lrx = (posX + 16) * 4; + quads[1].lry = (posY + 8) * 4; + + quads[3].ulx = (posX + sizeX - 16) * 4; + quads[3].uly = posY * 4; + quads[3].lrx = (posX + sizeX - 8) * 4; + quads[3].lry = (posY + 8) * 4; + + quads[12].ulx = (posX + 8) * 4; + quads[12].uly = (posY + sizeY - 8) * 4; + quads[12].lrx = (posX + 16) * 4; + quads[12].lry = (posY + sizeY) * 4; + + quads[14].ulx = (posX + sizeX - 16) * 4; + quads[14].uly = (posY + sizeY - 8) * 4; + quads[14].lrx = (posX + sizeX - 8) * 4; + quads[14].lry = (posY + sizeY) * 4; + } else { + quads[1].ulx = 10000; + quads[3].ulx = 10000; + quads[12].ulx = 10000; + quads[14].ulx = 10000; + } + + if (sizeY >= 24) { + quads[5].ulx = posX * 4; + quads[5].uly = (posY + 8) * 4; + quads[5].lrx = (posX + 8) * 4; + quads[5].lry = (posY + 16) * 4; + + quads[6].ulx = (posX + sizeX - 8) * 4; + quads[6].uly = (posY + 8) * 4; + quads[6].lrx = (posX + sizeX) * 4; + quads[6].lry = (posY + 16) * 4; + + quads[9].ulx = posX * 4; + quads[9].uly = (posY + sizeY - 16) * 4; + quads[9].lrx = (posX + 8) * 4; + quads[9].lry = (posY + sizeY - 8) * 4; + + quads[10].ulx = (posX + sizeX - 8) * 4; + quads[10].uly = (posY + sizeY - 16) * 4; + quads[10].lrx = (posX + sizeX) * 4; + quads[10].lry = (posY + sizeY - 8) * 4; + } else { + quads[5].ulx = 10000; + quads[6].ulx = 10000; + quads[9].ulx = 10000; + quads[10].ulx = 10000; + } + + quads[0].ulx = posX * 4; + quads[0].uly = posY * 4; + quads[0].lrx = (posX + 8) * 4; + quads[0].lry = (posY + 8) * 4; + + quads[4].ulx = (posX + sizeX - 8) * 4; + quads[4].uly = posY * 4; + quads[4].lrx = (posX + sizeX) * 4; + quads[4].lry = (posY + 8) * 4; + + quads[11].ulx = posX * 4; + quads[11].uly = (posY + sizeY - 8) * 4; + quads[11].lrx = (posX + 8) * 4; + quads[11].lry = (posY + sizeY) * 4; + + quads[15].ulx = (posX + sizeX - 8) * 4; + quads[15].uly = (posY + sizeY - 8) * 4; + quads[15].lrx = (posX + sizeX) * 4; + quads[15].lry = (posY + sizeY) * 4; + + switch (style) { + case MSG_STYLE_CHOICE: + frameType = 0; + break; + case MSG_STYLE_INSPECT: + frameType = 1; + break; + default: + frameType = 0; + break; + } + + for (i = 0; i < ARRAY_COUNT(textures); i++) { + textures[i] = gMessageBoxFrameParts[frameType][i]; + } + + if (fading == 0) { + frameAlpha = 255; + } + + gDPPipeSync(gMainGfxPos++); + gDPSetRenderMode(gMainGfxPos++, G_RM_XLU_SURF, G_RM_XLU_SURF2); + gDPSetCombineMode(gMainGfxPos++, PM_CC_02, PM_CC_02); + gDPSetPrimColor(gMainGfxPos++, 0, 0, 0, 0, 0, frameAlpha); + gDPSetTextureLUT(gMainGfxPos++, G_TT_RGBA16); + gDPLoadTLUT_pal16(gMainGfxPos++, 0, ui_msg_palettes[palette]); + + for (i = 0; i < ARRAY_COUNT(textures); i++) { + if (textures[i] != NULL && quads[i].ulx < 10000) { + gDPLoadTextureTile_4b(gMainGfxPos++, textures[i], G_IM_FMT_CI, 8, 8, 0, 0, 7, 7, 0, G_TX_WRAP, G_TX_WRAP, 3, 3, G_TX_NOLOD, G_TX_NOLOD); + gSPScisTextureRectangle(gMainGfxPos++, quads[i].ulx, quads[i].uly, quads[i].lrx, quads[i].lry, + G_TX_RENDERTILE, 0, 0, 0x400, 0x400); + } + } + + gDPPipeSync(gMainGfxPos++); + gDPSetTextureLUT(gMainGfxPos++, G_TT_NONE); +} + +void msg_get_glyph(s32 font, s32 variation, s32 charIndex, s32 palette, MesasgeFontGlyphData* out) { + out->raster = &MsgCharsets[font]->rasters[variation].raster[(u16)MsgCharsets[font]->charRasterSize * charIndex]; + out->palette = D_802F4560[palette]; + out->texSize.x = MsgCharsets[font]->texSize.x; + out->texSize.y = MsgCharsets[font]->texSize.y; + out->charWidth = msg_get_draw_char_width(charIndex, font, variation, 1.0f, 0, 0); + out->charHeight = out->texSize.y; +} diff --git a/ver/ique/splat.yaml b/ver/ique/splat.yaml index 2a84fe628a4..94b223d2a80 100644 --- a/ver/ique/splat.yaml +++ b/ver/ique/splat.yaml @@ -843,6 +843,7 @@ segments: - [auto, c, entity_model] - [auto, c, worker] - [auto, c, msg] + - [auto, c, msg_draw] - [auto, c, draw_img_util] - [auto, c, item_entity] - [auto, c, screen_overlays] @@ -863,6 +864,7 @@ segments: - [auto, .data, animator] - [auto, .data, entity_model] - [auto, .data, msg] + - [auto, .data, msg_draw] - [auto, .data, draw_img_util] - [auto, .data, item_entity] - start: 0xE1D60 diff --git a/ver/pal/splat.yaml b/ver/pal/splat.yaml index 4c659d4f375..f9f1c45a53a 100644 --- a/ver/pal/splat.yaml +++ b/ver/pal/splat.yaml @@ -557,6 +557,7 @@ segments: - [auto, c, entity_model] - [auto, c, worker] - [auto, c, msg] + - [auto, c, msg_draw] - [auto, c, draw_img_util] - [auto, c, item_entity] - [auto, c, screen_overlays] @@ -577,6 +578,7 @@ segments: - [auto, .data, animator] - [auto, .data, entity_model] - [auto, .data, msg] + - [auto, .data, msg_draw] - [auto, .data, draw_img_util] - [auto, .data, item_entity] - start: 0xE1610 diff --git a/ver/us/splat.yaml b/ver/us/splat.yaml index be632d7a056..29fd87cd8e1 100644 --- a/ver/us/splat.yaml +++ b/ver/us/splat.yaml @@ -888,6 +888,7 @@ segments: - [auto, c, entity_model] - [auto, c, worker] - [auto, c, msg] + - [auto, c, msg_draw] - [auto, c, draw_img_util] - [auto, c, item_entity] - [auto, c, screen_overlays] @@ -908,6 +909,7 @@ segments: - [auto, .data, animator] - [auto, .data, entity_model] - [auto, .data, msg] + - [auto, .data, msg_draw] - [auto, .data, draw_img_util] - [auto, .data, item_entity] - start: 0xE2DF0 From 354e2c9a6e8bed295094e0933307e879fe259fb5 Mon Sep 17 00:00:00 2001 From: AltoXorg <56553686+Alto1772@users.noreply.github.com> Date: Sun, 17 Dec 2023 17:10:44 +0800 Subject: [PATCH 07/18] engine2 draft --- include/common_structs.h | 25 +- src/entity.c | 9 + src/imgfx.c | 5 + src/item_entity.c | 87 +- src/msg.c | 115 +- src/msg_draw.c | 16 +- .../{msg => msg_draw}/appendGfx_message.s | 0 ver/jp/asm/bss3.s | 679 +++ ver/jp/asm/nonmatchings/msg/dma_load_msg.s | 38 + .../msg/msg_copy_to_print_buffer.s | 1324 +++++ .../nonmatchings/msg_draw/appendGfx_message.s | 4885 +++++++++++++++++ ver/jp/splat.yaml | 54 +- ver/jp/symbol_addrs.txt | 929 +++- ver/jp/undefined_syms.txt | 333 +- .../{msg => msg_draw}/appendGfx_message.s | 0 15 files changed, 8213 insertions(+), 286 deletions(-) rename ver/ique/asm/nonmatchings/{msg => msg_draw}/appendGfx_message.s (100%) create mode 100644 ver/jp/asm/bss3.s create mode 100644 ver/jp/asm/nonmatchings/msg/dma_load_msg.s create mode 100644 ver/jp/asm/nonmatchings/msg/msg_copy_to_print_buffer.s create mode 100644 ver/jp/asm/nonmatchings/msg_draw/appendGfx_message.s rename ver/pal/asm/nonmatchings/{msg => msg_draw}/appendGfx_message.s (100%) diff --git a/include/common_structs.h b/include/common_structs.h index 8ccc4241812..285d022748b 100644 --- a/include/common_structs.h +++ b/include/common_structs.h @@ -1168,22 +1168,12 @@ typedef struct ItemEntity { /* 0x58 */ s32 sparkleHeight; } ItemEntity; // size = 0x5C -#if VERSION_JP // mergetodo -typedef struct MessagePrintState { - /* 0x000 */ char unk_00[0x4A8]; - /* 0x4A8 */ u8 curOption; - /* 0x4A9 */ s8 madeChoice; - /* 0x4AA */ u8 cancelOption; - /* 0x4AB */ char unk_4EB[0x1]; - /* 0x4AC */ u8 targetOption; - /* 0x4AD */ u8 scrollingTime; - /* 0x4AE */ u8 selectedOption; - /* 0x4AF */ char unk_4EF[0x9]; - /* 0x4B8 */ u8 windowState; - /* 0x4B9 */ char unk_4F9[0x3]; - /* 0x4BC */ s32 stateFlags; -} MessagePrintState; +#if VERSION_JP +#define MESSAGEPRINTSTATE_BUFFER_SIZE 1024 #else +#define MESSAGEPRINTSTATE_BUFFER_SIZE 1088 // slightly larger than source buffer +#endif + typedef struct MessagePrintState { /* 0x000 */ u8* srcBuffer; /* 0x004 */ u16 printBufferPos; @@ -1191,7 +1181,7 @@ typedef struct MessagePrintState { /* 0x008 */ s32 msgID; /* 0x00C */ u16 srcBufferPos; /* 0x00E */ u16 curPrintDelay; - /* 0x010 */ u8 printBuffer[1088]; // slightly larger than source buffer + /* 0x010 */ u8 printBuffer[MESSAGEPRINTSTATE_BUFFER_SIZE]; /* 0x450 */ s16 printBufferSize; /* 0x452 */ u16 effectFrameCounter; /* 0x454 */ u8 font; @@ -1274,9 +1264,10 @@ typedef struct MessagePrintState { /* 0x548 */ PAL_PTR letterBackgroundPal; /* 0x54C */ IMG_PTR letterContentImg; /* 0x550 */ PAL_PTR letterContentPal; +#if !VERSION_JP /* 0x554 */ char unk_554[0x4]; -} MessagePrintState; // size = 0x558 #endif +} MessagePrintState; // size = 0x558, JP size = 0x514 typedef struct MessageDrawState { /* 0x00 */ s32 clipX[2]; // characters beyond this pos get skipped diff --git a/src/entity.c b/src/entity.c index a3b9ec2cc2f..2f118377d75 100644 --- a/src/entity.c +++ b/src/entity.c @@ -20,6 +20,15 @@ extern Addr WorldEntityHeapBase; #define entity_default_VRAM (void*) 0x802BAE00 #endif +#if VERSION_JP // TODO remove once segments are split +extern Addr entity_default_ROM_END; +extern Addr entity_default_ROM_START; +extern Addr entity_jan_iwa_ROM_END; +extern Addr entity_jan_iwa_ROM_START; +extern Addr entity_sbk_omo_ROM_END; +extern Addr entity_sbk_omo_ROM_START; +#endif + s32 D_8014AFB0 = 255; SHIFT_BSS s32 CreateEntityVarArgBuffer[4]; diff --git a/src/imgfx.c b/src/imgfx.c index 68762ba753b..dcd923e9e44 100644 --- a/src/imgfx.c +++ b/src/imgfx.c @@ -3,6 +3,11 @@ #include "sprite.h" #include "imgfx.h" + +#if VERSION_JP // TODO remove once segments are split +extern Addr imgfx_data_ROM_START; +#endif + typedef union ImgFXIntVars { s32 raw[2][4]; struct { diff --git a/src/item_entity.c b/src/item_entity.c index 8807e2675d5..d23731a06c5 100644 --- a/src/item_entity.c +++ b/src/item_entity.c @@ -37,7 +37,9 @@ SHIFT_BSS ItemEntity* BattleItemEntities[MAX_ITEM_ENTITIES]; SHIFT_BSS ItemEntity** gCurrentItemEntities; SHIFT_BSS s16 isPickingUpItem; SHIFT_BSS s16 ItemSpawnWithinPlayerPickupDelay; +#if !VERSION_JP SHIFT_BSS s16 D_801565A8; +#endif SHIFT_BSS PopupMenu ItemPickupMenu; SHIFT_BSS s32 ItemPickupIconID; SHIFT_BSS s32 ItemPickupStateDelay; @@ -47,6 +49,10 @@ SHIFT_BSS EffectInstance* ItemPickupGotOutline; SHIFT_BSS MessagePrintState* GotItemTutorialPrinter; SHIFT_BSS b32 GotItemTutorialClosed; +#if VERSION_JP +extern s32 D_8015B864; // TODO find out what is this +#endif + void item_entity_update(ItemEntity*); void appendGfx_item_entity(void*); void draw_item_entities(void); @@ -110,8 +116,10 @@ Gfx D_8014C6A0[] = { Lights1 ItemEntityLights = gdSPDefLights1(255, 255, 255, 0, 0, 0, 0, 0, 0); +#if !VERSION_JP s16 PickupHeaderWindowHeight[] = { 32, 40 }; s16 PickupMessageWindowYOffsets[] = { 8, 4 }; +#endif void sparkle_script_init(ItemEntity* item, SparkleScript* script) { item->sparkleReadPos = (s32*)script; @@ -258,7 +266,9 @@ void clear_item_entity_data(void) { create_worker_world(NULL, draw_item_entities); create_worker_frontUI(NULL, draw_ui_item_entities); isPickingUpItem = FALSE; +#if !VERSION_JP D_801565A8 = FALSE; +#endif } void init_item_entity_list(void) { @@ -269,7 +279,9 @@ void init_item_entity_list(void) { } isPickingUpItem = FALSE; +#if !VERSION_JP D_801565A8 = FALSE; +#endif ItemEntitiesCreated = 0; ItemEntityAlternatingSpawn = 0; } @@ -1526,9 +1538,11 @@ void set_item_entity_flags(s32 index, s32 flags) { ItemEntity* item = gCurrentItemEntities[index]; item->flags |= flags; +#if !VERSION_JP if (item->flags & ITEM_ENTITY_FLAG_CANT_COLLECT) { D_801565A8 = TRUE; } +#endif } void clear_item_entity_flags(s32 index, s32 flags) { @@ -1545,12 +1559,16 @@ void auto_collect_item_entity(s32 index) { /// @returns TRUE when "you got X" popup is on-screen b32 is_picking_up_item(void) { +#if VERSION_JP + return isPickingUpItem; +#else b32 ret = D_801565A8 != FALSE; if (isPickingUpItem) { ret = TRUE; } return ret; +#endif } void set_item_entity_position(s32 itemEntityIndex, f32 x, f32 y, f32 z) { @@ -2003,7 +2021,9 @@ void update_item_entity_collectable(ItemEntity* item) { sfx_play_sound_at_position(SOUND_HEART_PICKUP, SOUND_SPACE_DEFAULT, item->pos.x, item->pos.y, item->pos.z); break; } +#if !VERSION_JP D_801565A8 = FALSE; +#endif gOverrideFlags &= ~GLOBAL_OVERRIDES_40; remove_item_entity_by_reference(item); } @@ -2013,7 +2033,9 @@ void update_item_entity_collectable(ItemEntity* item) { // when the script is done executing, destroy these items if (item->state == ITEM_PHYSICS_STATE_04) { if (!does_script_exist(UnusedItemPhysicsScriptID)) { +#if !VERSION_JP D_801565A8 = FALSE; +#endif remove_item_entity_by_reference(item); resume_all_group(EVT_GROUP_02); } @@ -2023,7 +2045,9 @@ void update_item_entity_collectable(ItemEntity* item) { isPickingUpItem = TRUE; item->spawnType = ITEM_SPAWN_AT_PLAYER; item->state = ITEM_PICKUP_STATE_INIT; +#if !VERSION_JP D_801565A8 = FALSE; +#endif gOverrideFlags |= GLOBAL_OVERRIDES_40; } } @@ -2059,7 +2083,9 @@ void update_item_entity_stationary(ItemEntity* item) { isPickingUpItem = TRUE; item->spawnType = ITEM_SPAWN_AT_PLAYER; item->state = ITEM_PICKUP_STATE_INIT; +#if !VERSION_JP D_801565A8 = FALSE; +#endif gOverrideFlags |= GLOBAL_OVERRIDES_40; } } @@ -2458,6 +2484,22 @@ void update_item_entity_pickup(ItemEntity* item) { } } +#if VERSION_JP +#define WD_VAR1 44 +#define WD_VAR2 25 +#define WD_VAR3 20 +#define X_VAR1 32 +#define HT_VAR1 40 +#define WD_VAR4 242 +#else +#define WD_VAR1 54 +#define WD_VAR2 30 +#define WD_VAR3 30 +#define X_VAR1 20 +#define HT_VAR1 height +#define WD_VAR4 280 +#endif + void func_801363A0(ItemEntity* item) { ItemData* itemData = &gItemTable[item->itemID]; s32 itemMsg; @@ -2494,9 +2536,9 @@ void func_801363A0(ItemEntity* item) { item->itemID != ITEM_STAR_PIECE && !(gItemTable[item->itemID].typeFlags & ITEM_TYPE_FLAG_GEAR) && !(item->pickupMsgFlags & (ITEM_PICKUP_FLAG_1_COIN | ITEM_PICKUP_FLAG_3_STAR_PIECES))) { - width = get_msg_width(itemMsg, 0) + 54; + width = get_msg_width(itemMsg, 0) + WD_VAR1; } else { - width = get_msg_width(itemMsg, 0) + 30; + width = get_msg_width(itemMsg, 0) + WD_VAR2; } posX = 160 - width / 2; posY = 76; @@ -2518,11 +2560,13 @@ void func_801363A0(ItemEntity* item) { } set_message_text_var(itemData->nameMsg, 0); - width = get_msg_width(itemMsg, 0) + 30; + width = get_msg_width(itemMsg, 0) + WD_VAR3; posX = 160 - width / 2; posY = 76; } +#if !VERSION_JP height = PickupHeaderWindowHeight[get_msg_lines(itemMsg) - 1]; +#endif if (item->state != ITEM_PICKUP_STATE_SHOW_GOT_ITEM) { offsetY = 28; } else { @@ -2534,16 +2578,17 @@ void func_801363A0(ItemEntity* item) { && item->itemID != ITEM_STAR_PIECE) ) { set_window_properties(WINDOW_ID_12, posX, posY - 24 + offsetY, width, - height, WINDOW_PRIORITY_0, draw_content_pickup_item_header, item, -1); + HT_VAR1, WINDOW_PRIORITY_0, draw_content_pickup_item_header, item, -1); } else if (gItemTable[item->itemID].typeFlags & ITEM_TYPE_FLAG_WORLD_USABLE){ set_window_properties(WINDOW_ID_12, posX, posY - 24 + offsetY, width, - height, WINDOW_PRIORITY_0, draw_content_pickup_item_header, item, -1); + HT_VAR1, WINDOW_PRIORITY_0, draw_content_pickup_item_header, item, -1); } else { set_window_properties(WINDOW_ID_12, posX, posY - 24 + offsetY, width, - height, WINDOW_PRIORITY_0, draw_content_pickup_item_header, item, -1); + HT_VAR1, WINDOW_PRIORITY_0, draw_content_pickup_item_header, item, -1); } if (item->itemID != ITEM_STAR_PIECE && item->itemID != ITEM_COIN) { - set_window_properties(WINDOW_ID_19, 20, 186, 280, 32, WINDOW_PRIORITY_0, draw_content_pickup_item_desc, item, -1); + posX = X_VAR1; + set_window_properties(WINDOW_ID_19, posX, 186, WD_VAR4, 32, WINDOW_PRIORITY_0, draw_content_pickup_item_desc, item, -1); } if (item->state != ITEM_PICKUP_STATE_SHOW_GOT_ITEM) { width = get_msg_width(MSG_Menus_0060, 0) + 24; @@ -2553,13 +2598,33 @@ void func_801363A0(ItemEntity* item) { break; case ITEM_PICKUP_STATE_AWAIT_THROW_AWAY: set_message_text_var(itemData->nameMsg, 0); +#if VERSION_JP + width = get_msg_width(gItemTable[D_8015B864].nameMsg, 0) + 104; +#else width = get_msg_width(MSG_Menus_005F, 0) + 54; +#endif posX = 160 - width / 2; set_window_properties(WINDOW_ID_12, 160 - width / 2, 76, width, 40, WINDOW_PRIORITY_0, draw_content_pickup_item_header, item, -1); break; } } +#if VERSION_JP +#define X_PICKUP_ITEM_1 12 +#define X_PICKUP_ITEM_2 36 +#define X_PICKUP_THREW 36 +#define Y_PICKUP_ITEM_1 12 +#define Y_PICKUP_ITEM_2 12 +#define Y_PICKUP_THREW 12 +#else +#define X_PICKUP_ITEM_1 15 +#define X_PICKUP_ITEM_2 40 +#define X_PICKUP_THREW 40 +#define Y_PICKUP_ITEM_1 offsetY +#define Y_PICKUP_ITEM_2 offsetY +#define Y_PICKUP_THREW 4 +#endif + void draw_content_pickup_item_header(ItemEntity* item, s32 posX, s32 posY) { ItemData* itemData = &gItemTable[item->itemID]; s32 itemMsg; @@ -2607,7 +2672,9 @@ void draw_content_pickup_item_header(ItemEntity* item, s32 posX, s32 posY) { set_message_text_var(itemData->nameMsg, 0); } +#if !VERSION_JP offsetY = PickupMessageWindowYOffsets[get_msg_lines(itemMsg) - 1]; +#endif if ((gItemTable[item->itemID].typeFlags & ITEM_TYPE_FLAG_BADGE) || (gItemTable[item->itemID].typeFlags & ITEM_TYPE_FLAG_KEY) @@ -2615,9 +2682,9 @@ void draw_content_pickup_item_header(ItemEntity* item, s32 posX, s32 posY) { || (gItemTable[item->itemID].typeFlags & ITEM_TYPE_FLAG_GEAR) || (item->pickupMsgFlags & (ITEM_PICKUP_FLAG_1_COIN | ITEM_PICKUP_FLAG_3_STAR_PIECES)) ) { - draw_msg(itemMsg, posX + 15, posY + offsetY, 255, MSG_PAL_2F, 0); + draw_msg(itemMsg, posX + X_PICKUP_ITEM_1, posY + Y_PICKUP_ITEM_1, 255, MSG_PAL_2F, 0); } else { - draw_msg(itemMsg, posX + 40, posY + offsetY, 255, MSG_PAL_2F, 0); + draw_msg(itemMsg, posX + X_PICKUP_ITEM_2, posY + Y_PICKUP_ITEM_2, 255, MSG_PAL_2F, 0); if (!(item->pickupMsgFlags & (ITEM_PICKUP_FLAG_1_COIN | ITEM_PICKUP_FLAG_3_STAR_PIECES))) { hud_element_set_render_pos(ItemPickupIconID, posX + 20, posY + 20); hud_element_draw_next(ItemPickupIconID); @@ -2627,7 +2694,7 @@ void draw_content_pickup_item_header(ItemEntity* item, s32 posX, s32 posY) { case ITEM_PICKUP_STATE_SHOW_THREW_AWAY: case ITEM_PICKUP_STATE_HIDE_THREW_AWAY: set_message_text_var(gItemTable[ThrowAwayItemID].nameMsg, 0); - draw_msg(MSG_Menus_005F, posX + 40, posY + 4, 255, MSG_PAL_2F, 0); + draw_msg(MSG_Menus_005F, posX + X_PICKUP_THREW, posY + Y_PICKUP_THREW, 255, MSG_PAL_2F, 0); hud_element_set_render_pos(ItemPickupIconID, posX + 20, posY + 20); hud_element_draw_next(ItemPickupIconID); break; diff --git a/src/msg.c b/src/msg.c index 23f4c7d2cd9..cc74480f789 100644 --- a/src/msg.c +++ b/src/msg.c @@ -3,8 +3,32 @@ #include "message_ids.h" #include "sprite.h" +#if !VERSION_JP // TODO remove when charset data is split #include "charset/postcard.png.h" #include "charset/letter_content_1.png.h" +#endif + +#if VERSION_JP // TODO remove when charset data is split +extern Addr charset_ROM_START; +extern Addr charset_standard_pal_OFFSET; +extern Addr charset_credits_pal_OFFSET; +extern Addr charset_standard_OFFSET; +extern Addr charset_title_OFFSET; +extern Addr charset_subtitle_OFFSET; +extern Addr charset_JP_5710_OFFSET; +extern Addr charset_JP_62E0_OFFSET; +extern Addr charset_JP_97D0_OFFSET; +extern Addr charset_JP_9C30_OFFSET; +extern Addr charset_JP_D470_OFFSET; +extern Addr charset_postcard_pal_OFFSET; +extern Addr charset_postcard_OFFSET; +extern Addr msg_ROM_START; + +#define charset_postcard_png_width 150 +#define charset_postcard_png_height 105 +#define charset_letter_content_1_png_width 70 +#define charset_letter_content_1_png_height 95 +#endif enum RewindArrowStates { REWIND_ARROW_STATE_INIT = 0, @@ -16,6 +40,8 @@ enum RewindArrowStates { #ifdef SHIFT #define MSG_ROM_START (s32)msg_ROM_START +#elif VERSION_JP +#define MSG_ROM_START 0x1D40000 #else #define MSG_ROM_START 0x1B83000 #endif @@ -30,6 +56,7 @@ typedef MessageImageData* MessageImageDataList[1]; s32 D_8014C280[] = { 0x028001E0, 0x01FF0000, 0x028001E0, 0x01FF0000 }; +#if !VERSION_JP u8 MessagePlural[] = { MSG_CHAR_LOWER_S, MSG_CHAR_READ_END }; #if VERSION_PAL @@ -37,6 +64,7 @@ u8 MessagePlural_de[] = { MSG_CHAR_LOWER_N, MSG_CHAR_READ_END }; #endif u8 MessageSingular[] = { MSG_CHAR_READ_ENDL, MSG_CHAR_READ_END }; +#endif #if VERSION_PAL s32 gCurrentLanguage = 0; @@ -128,11 +156,40 @@ extern MessageCharset* MsgCharsets[5]; extern IMG_BIN MsgCharImgSubtitle[]; extern PAL_BIN D_802F4560[80][8]; +#if VERSION_JP +// TODO rename these into something we can understand +// in the meantime split font_width to find out where they belong... +extern IMG_BIN D_JP_802EB928[]; +extern IMG_BIN D_JP_802F0FA0[]; +extern IMG_BIN MsgCharImgJP_5710[]; +extern IMG_BIN MsgCharImgJP_9C30[]; +extern IMG_BIN MsgCharImgJP_D470[]; +#endif + extern s32 gMessageBoxFrameParts[2][16]; extern IMG_BIN ui_point_right_png[]; extern PAL_BIN ui_point_right_pal[]; +#if VERSION_JP +MessageNumber gMsgNumbers[] = { + { + .rasters = &D_JP_802F0FA0[0x800], // huh? + .texSize = 112, + .texWidth = 16, + .texHeight = 14, + .digitWidth = {11, 8, 11, 11, 11, 11, 11, 11, 11, 11}, + .fixedWidth = 11 + }, { + .rasters = &D_JP_802EB928[0x800], // what? + .texSize = 72, + .texWidth = 12, + .texHeight = 12, + .digitWidth = {9, 8, 9, 9, 9, 9, 9, 9, 9, 9}, + .fixedWidth = 9 + } +}; +#else MessageNumber gMsgNumbers[] = { { .rasters = &MsgCharImgNormal[0x800], @@ -150,6 +207,7 @@ MessageNumber gMsgNumbers[] = { .fixedWidth = 9 } }; +#endif Gfx gMsgDlistInitDrawNumber[] = { gsDPPipeSync(), @@ -223,7 +281,16 @@ void load_font_data(Addr offset, u16 size, void* dest) { void load_font(s32 font) { if (font != D_80155C98) { if (font == 0) { +#if VERSION_JP + load_font_data(charset_standard_OFFSET, 0x5710, MsgCharImgNormal); + load_font_data(charset_JP_5710_OFFSET, 0xBD0, MsgCharImgJP_5710); + load_font_data(charset_JP_62E0_OFFSET, 0x34F0, MsgCharImgTitle); // huh + load_font_data(charset_JP_97D0_OFFSET, 0x460, MsgCharImgSubtitle); // what + load_font_data(charset_JP_9C30_OFFSET, 0x37F8, MsgCharImgJP_9C30); + load_font_data(charset_JP_D470_OFFSET, 0x798, MsgCharImgJP_D470); +#else load_font_data(charset_standard_OFFSET, 0x5100, MsgCharImgNormal); +#endif load_font_data(charset_standard_pal_OFFSET, 0x500, D_802F4560); } else if (font == 1) { load_font_data(charset_title_OFFSET, 0xF60, MsgCharImgTitle); @@ -625,7 +692,7 @@ extern s32 MsgLetterRasterOffsets[]; extern s32 MsgLetterPaletteOffsets[]; extern MsgVoice MsgVoices[]; -#if VERSION_PAL +#if VERSION_PAL || VERSION_JP INCLUDE_ASM(s32, "msg", msg_copy_to_print_buffer); #else void msg_copy_to_print_buffer(MessagePrintState* printer, s32 arg1, s32 arg2) { @@ -695,7 +762,11 @@ void msg_copy_to_print_buffer(MessagePrintState* printer, s32 arg1, s32 arg2) { printer->lineEndPos[printer->curLine] = printer->curLinePos; printer->curLine++; *printBuf++ = MSG_CHAR_PRINT_NEXT; - printer->nextLinePos = printer->curLinePos + (MsgCharsets[printer->font]->newLineY + MsgStyleVerticalLineOffsets[printer->style]) * printer->lineCount; + printer->nextLinePos = printer->curLinePos + (MsgCharsets[printer->font]->newLineY +#if !VERSION_JP + + MsgStyleVerticalLineOffsets[printer->style] +#endif + ) * printer->lineCount; printer->windowState = MSG_WINDOW_STATE_SCROLLING; printer->delayFlags |= MSG_DELAY_FLAG_1; } @@ -738,10 +809,18 @@ void msg_copy_to_print_buffer(MessagePrintState* printer, s32 arg1, s32 arg2) { case MSG_STYLE_NARRATE: case MSG_STYLE_F: if (!s8) { +#if VERSION_JP + printer->windowBasePos.x = 40; +#else printer->windowBasePos.x = 20; +#endif printer->windowBasePos.y = 28; printer->windowSize.y = 58; +#if VERSION_JP + printer->windowSize.x = 240; +#else printer->windowSize.x = 280; +#endif printer->windowState = MSG_WINDOW_STATE_OPENING; printer->stateFlags |= MSG_STATE_FLAG_800; printer->delayFlags |= MSG_DELAY_FLAG_1; @@ -793,7 +872,11 @@ void msg_copy_to_print_buffer(MessagePrintState* printer, s32 arg1, s32 arg2) { case MSG_STYLE_POPUP: case MSG_STYLE_B: printer->windowSize.x = printer->msgWidth + 32; +#if VERSION_JP + printer->windowSize.y = 32; +#else printer->windowSize.y = 40; +#endif printer->stateFlags |= MSG_STATE_FLAG_8000; do { if (!s8) { @@ -875,7 +958,11 @@ void msg_copy_to_print_buffer(MessagePrintState* printer, s32 arg1, s32 arg2) { printer->curLine++; *printBuf++ = MSG_CHAR_PRINT_NEXT; arg = *srcBuf++; - printer->nextLinePos = printer->curLinePos + (MsgCharsets[printer->font]->newLineY + MsgStyleVerticalLineOffsets[printer->style]) * arg; + printer->nextLinePos = printer->curLinePos + (MsgCharsets[printer->font]->newLineY +#if !VERSION_JP + + MsgStyleVerticalLineOffsets[printer->style] +#endif + ) * arg; printer->windowState = MSG_WINDOW_STATE_SCROLLING; printer->delayFlags |= MSG_DELAY_FLAG_1; printer->lineCount = 0; @@ -1143,9 +1230,11 @@ void msg_copy_to_print_buffer(MessagePrintState* printer, s32 arg1, s32 arg2) { temp = argQ - MSG_CHAR_READ_VARIANT0 + 0x200; printer->fontVariant = temp; break; +#if !VERSION_JP case MSG_CHAR_READ_SPACE: sp10[0] = MSG_CHAR_PRINT_SPACE; break; +#endif case MSG_CHAR_READ_FUNCTION: sp10[0] = MSG_CHAR_PRINT_FUNCTION; switch (gMessageMsgVars[arg][printer->varBufferReadPos++]) { @@ -1520,7 +1609,11 @@ void set_message_int_var(s32 value, s32 index) { if (thisChar == 0) { break; } +#if VERSION_JP + gMessageMsgVars[index][i] = thisChar + 0x77; // TODO +#else gMessageMsgVars[index][i] = thisChar - '0' + MSG_CHAR_DIGIT_0; +#endif } gMessageMsgVars[index][i] = MSG_CHAR_READ_END; } @@ -1529,6 +1622,12 @@ void close_message(MessagePrintState* msgPrintState) { msgPrintState->stateFlags &= ~MSG_STATE_FLAG_40; } +#if VERSION_JP +#define CHAR_SPACE_MULTIPLIER 0.7 +#else +#define CHAR_SPACE_MULTIPLIER 0.6 +#endif + s32 msg_get_print_char_width(s32 character, s32 charset, s32 variation, f32 msgScale, s32 overrideCharWidth, u8 flags) { f32 charWidth; @@ -1564,7 +1663,7 @@ s32 msg_get_print_char_width(s32 character, s32 charset, s32 variation, f32 msgS } if (character == MSG_CHAR_READ_SPACE) { - return charWidth * msgScale * 0.6; + return charWidth * msgScale * CHAR_SPACE_MULTIPLIER; } if (character == MSG_CHAR_READ_FULL_SPACE) { f64 retWidth = charWidth * msgScale; @@ -1607,7 +1706,7 @@ s32 msg_get_draw_char_width(s32 character, s32 charset, s32 variation, f32 msgSc } if (character == MSG_CHAR_PRINT_SPACE) { - return baseWidth * msgScale * 0.6; + return baseWidth * msgScale * CHAR_SPACE_MULTIPLIER; } if (character == MSG_CHAR_PRINT_FULL_SPACE) { f64 charWidth = baseWidth * msgScale; @@ -1922,7 +2021,9 @@ void get_msg_properties(s32 msgID, s32* height, s32* width, s32* maxLineChars, s } } +#if !VERSION_JP static const f32 padding = 0.0f; +#endif s32 get_msg_width(s32 msgID, u16 charset) { s32 width; @@ -1931,12 +2032,14 @@ s32 get_msg_width(s32 msgID, u16 charset) { return width; } +#if !VERSION_JP s32 get_msg_lines(s32 msgID) { s32 numLines; get_msg_properties(msgID, NULL, NULL, NULL, &numLines, NULL, NULL, 0); return numLines; } +#endif void draw_msg(s32 msgID, s32 posX, s32 posY, s32 opacity, s32 palette, u8 style) { MessagePrintState stackPrinter; @@ -2184,7 +2287,9 @@ void draw_number(s32 value, s32 x, s32 y, s32 charset, s32 palette, s32 opacity, IMG_PTR raster = gMsgNumbers[charset].rasters; s32 texSize = gMsgNumbers[charset].texSize; +#if !VERSION_JP y -= 2; +#endif if (y < 0 || y > 240) { return; } diff --git a/src/msg_draw.c b/src/msg_draw.c index d6df1b57f04..467db999d21 100644 --- a/src/msg_draw.c +++ b/src/msg_draw.c @@ -3,8 +3,20 @@ #include "message_ids.h" #include "sprite.h" +#if !VERSION_JP // TODO remove when charset data is split #include "charset/postcard.png.h" #include "charset/letter_content_1.png.h" +#endif + +#if VERSION_JP // TODO remove when charset data is split +extern Addr charset_postcard_pal_OFFSET; +extern Addr charset_postcard_OFFSET; + +#define charset_postcard_png_width 150 +#define charset_postcard_png_height 105 +#define charset_letter_content_1_png_width 70 +#define charset_letter_content_1_png_height 95 +#endif extern IMG_BIN ui_msg_bubble_left_png[]; extern IMG_BIN ui_msg_bubble_mid_png[]; @@ -192,8 +204,8 @@ void draw_message_window(MessagePrintState* printer) { } } -#if VERSION_IQUE || VERSION_PAL -INCLUDE_ASM(s32, "msg", appendGfx_message); +#if VERSION_IQUE || VERSION_PAL || VERSION_JP +INCLUDE_ASM(s32, "msg_draw", appendGfx_message); #else void appendGfx_message(MessagePrintState* printer, s16 posX, s16 posY, u16 additionalOffsetX, u16 additionalOffsetY, u16 flag, u8 alpha) { diff --git a/ver/ique/asm/nonmatchings/msg/appendGfx_message.s b/ver/ique/asm/nonmatchings/msg_draw/appendGfx_message.s similarity index 100% rename from ver/ique/asm/nonmatchings/msg/appendGfx_message.s rename to ver/ique/asm/nonmatchings/msg_draw/appendGfx_message.s diff --git a/ver/jp/asm/bss3.s b/ver/jp/asm/bss3.s new file mode 100644 index 00000000000..30de974f3f8 --- /dev/null +++ b/ver/jp/asm/bss3.s @@ -0,0 +1,679 @@ +.include "macro.inc" + +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 # allow use of 64-bit general purpose registers + +#ifndef SHIFT + +.section .bss + +dlabel gAuxSpriteShadingProfile +.space 4 + +dlabel gHudElementsNumber +.space 4 + +dlabel gCurrentCustomModelGfxBuildersPtr +.space 4 + +dlabel D_801512BC +.space 4 + +dlabel entity_numEntities +.space 4 + +dlabel gEntityHeapBase +.space 4 + +dlabel gHudElementCacheTableRaster +.space 4 + +dlabel gCurrentModels +.space 4 + +dlabel gHudElementCacheTablePalette +.space 4 + +dlabel gAnimCount +.space 4 + +dlabel gMsgBGScrollAmtX +.space 4 + +dlabel D_801512DC +.space 4 + +dlabel gCurrentTransformGroups +.space 4 + +dlabel gMsgGlobalWaveCounter +.space 4 + +dlabel gCurrentCustomModelGfxPtr +.space 4 + +dlabel gLastCreatedEntityIndex +.space 4 + +dlabel gBackgroundTintModePtr +.space 4 + +dlabel gMsgVarImages +.space 4 + +dlabel ItemEntitiesCreated +.space 4 + +dlabel gCurrentModelTreeRoot +.space 4 + +dlabel gEntityHeapBottom +.space 4 + +dlabel D_80151304 +.space 4 + +dlabel gCurrentRoomDoorSounds +.space 4 + +dlabel gMsgBGScrollAmtY +.space 2 + +dlabel D_8015130E +.space 2 + +dlabel gEntityHideMode +.space 4 + +dlabel gHudElementCacheBuffer +.space 4 + +dlabel gEntityModelCount +.space 4 + +dlabel D_8015131C +.space 4 + +dlabel D_80151320 +.space 4 + +dlabel entity_numShadows +.space 4 + +dlabel gSpriteShadingProfile +.space 4 + +dlabel isAreaSpecificEntityDataLoaded +.space 4 + +dlabel entity_updateCounter +.space 4 + +dlabel gTriggerCount +.space 4 + +dlabel D_80151338 +.space 4 + +dlabel gHudElementCacheSize +.space 4 + +dlabel gCurrentDoorSounds +.space 4 + +dlabel D_80151344 +.space 4 + +dlabel D_80151348 +.space 0x00000018 + +dlabel gWorldEntityList +.space 0x00000078 + +dlabel gBattleEntityList +.space 0x00000078 + +dlabel gCurrentEntityListPtr +.space 4 + +dlabel D_80151474 +.space 4 + +dlabel gWorldShadowList +.space 0x000000f0 + +dlabel gBattleShadowList +.space 0x000000f0 + +dlabel gCurrentShadowListPtr +.space 4 + +dlabel wEntityDataLoadedSize +.space 4 + +dlabel bEntityDataLoadedSize +.space 4 + +dlabel D_80151664 +.space 4 + +dlabel wEntityBlueprint +.space 0x00000078 + +.space 8 + +dlabel bEntityBlueprint +.space 0x00000014 + +dlabel D_801516FC +.space 4 + +dlabel gMainGameMode +.space 0x00000040 + +dlabel gCurrentTextureHeader +.space 0x00000030 + +dlabel wModelList +.space 0x00000400 + +dlabel bModelList +.space 0x00000400 + +dlabel wTransformGroups +.space 0x00000010 + +dlabel bTransformGroups +.space 0x00000010 + +dlabel wCustomModelGfx +.space 0x00000080 + +dlabel bCustomModelGfx +.space 0x00000080 + +dlabel wCustomModelGfxBuilders +.space 0x00000080 + +dlabel bCustomModelGfxBuilders +.space 0x00000080 + +dlabel wModelLocalVtxBuffers +.space 0x00000040 + +dlabel bModelLocalVtxBuffers +.space 0x00000040 + +dlabel gCurrentModelLocalVtxBuffers +.space 4 + +dlabel wModelTreeRoot +.space 4 + +dlabel bModelTreeRoot +.space 4 + +dlabel D_8015221C +.space 4 + +dlabel wModelTreeNodeInfo +.space 0x00000800 + +dlabel bModelTreeNodeInfo +.space 0x00000800 + +dlabel wBackgroundTintMode +.space 1 + +dlabel bBackgroundTintMode +.space 1 + +dlabel D_80153222 +.space 1 + +dlabel D_80153223 +.space 1 + +dlabel TreeIterPos +.space 4 + +dlabel wFogSettings +.space 0x00000020 + +dlabel bFogSettings +.space 0x0000001c + +dlabel gFogSettings +.space 4 + +dlabel texPannerMainU +.space 0x00000040 + +dlabel texPannerMainV +.space 0x00000040 + +dlabel texPannerAuxU +.space 0x00000040 + +dlabel texPannerAuxV +.space 0x00000040 + +dlabel TextureHeapPos +.space 4 + +dlabel mtg_IterIdx +.space 2 + +dlabel mtg_SearchModelID +.space 2 + +dlabel mtg_FoundModelNode +.space 4 + +dlabel mtg_MinChild +.space 2 + +dlabel mtg_MaxChild +.space 2 + +dlabel D_80153378 +.space 8 + +dlabel DepthCopyBuffer +.space 0x00000020 + +dlabel RenderTaskLists +.space 0x0000000c + +dlabel RenderTaskListIdx +.space 4 + +dlabel RenderTaskCount +.space 0x00000010 + +dlabel D_801533C0 +.space 0x00000300 + +dlabel D_801536C0 +.space 0x00000300 + +dlabel D_801539C0 +.space 0x00000040 + +dlabel D_80153A00 +.space 0x00000040 + +dlabel gCurrentAnimMeshListPtr +.space 4 + +dlabel gAnimModelFogEnabled +.space 4 + +dlabel gAnimModelFogR +.space 4 + +dlabel gAnimModelFogG +.space 4 + +dlabel gAnimModelFogB +.space 4 + +dlabel gAnimModelFogA +.space 4 + +dlabel gAnimModelFogStart +.space 4 + +dlabel gAnimModelFogEnd +.space 4 + +dlabel gAnimVtxSegment +.space 4 + +dlabel D_80153A64 +.space 4 + +dlabel gAnimRotMtx +.space 0x00000040 + +dlabel gAnimScaleMtx +.space 0x00000040 + +dlabel gAnimTranslateMtx +.space 0x00000040 + +dlabel gAnimRotScaleMtx +.space 0x00000040 + +dlabel gAnimTreeRoot +.space 8 + +dlabel gWorldEntityModelList +.space 0x00000400 + +dlabel gBattleEntityModelList +.space 0x00000400 + +dlabel gCurrentEntityModelList +.space 4 + +dlabel D_80154374 +.space 4 + +dlabel entity_fog_enabled +.space 4 + +dlabel entity_fog_red +.space 4 + +dlabel entity_fog_green +.space 4 + +dlabel entity_fog_blue +.space 4 + +dlabel entity_fog_alpha +.space 4 + +dlabel entity_fog_dist_min +.space 4 + +dlabel entity_fog_dist_max +.space 4 + +dlabel D_80154394 +.space 0x0000000c + +dlabel gWorldWorkerList +.space 0x00000040 + +dlabel gBattleWorkerList +.space 0x00000040 + +dlabel gCurrentWorkerListPtr +.space 4 + +dlabel D_80154424 +.space 0x0000000c + +dlabel gMessageBuffers +.space 0x00000800 + +dlabel gMessagePrinters +.space 0x00000F40 + +dlabel gMessageMsgVars +.space 0x00000060 + +dlabel D_80155C98 +.space 8 + +dlabel gMessageWindowProjMatrix +.space 0x00000080 + +dlabel D_80155D20 +.space 4 + +dlabel D_8015DD24 +.space 0x00000058 + +dlabel msg_drawState +.space 4 + +dlabel D_8015DD78 +.space 8 + +dlabel UnusedItemPhysicsScriptID +.space 4 + +dlabel ItemEntityAlternatingSpawn +.space 4 + +dlabel ItemEntityRenderGroup +.space 4 + +dlabel CoinSparkleCenterX +.space 2 + +dlabel CoinSparkleCenterY +.space 2 + +dlabel CoinSparkleCenterZ +.space 2 + +dlabel pad_ItemEntity +.space 0x000000E + +dlabel WorldItemEntities +.space 0x00000400 + +dlabel BattleItemEntities +.space 0x00000400 + +dlabel gCurrentItemEntities +.space 4 + +dlabel isPickingUpItem +.space 2 + +dlabel ItemSpawnWithinPlayerPickupDelay +.space 2 + +dlabel ItemPickupMenu +.space 0x00000330 + +dlabel ItemPickupIconID +.space 4 + +dlabel ItemPickupStateDelay +.space 4 + +dlabel ThrowAwayMenuIdx +.space 4 + +dlabel ThrowAwayItemID +.space 4 + +dlabel ItemPickupGotOutline +.space 4 + +dlabel GotItemTutorialPrinter +.space 4 + +dlabel GotItemTutorialClosed +.space 4 + +dlabel D_801568FC +.space 0xC + +dlabel screen_overlay_frontType +.space 4 + +dlabel screen_overlay_frontZoom +.space 4 + +dlabel screen_overlay_backType +.space 4 + +dlabel screen_overlay_backZoom +.space 4 + +dlabel D_80156910 +.space 0x00000010 + +dlabel ImgFXCurrentTexture +.space 0x00000028 + +dlabel ImgFXVtxBuffers +.space 8 + +dlabel imgfx_vtxBuf +.space 4 + +dlabel ImgFXInstances +.space 4 + +dlabel D_80156958 +.space 8 + +dlabel D_80156960 +.space 8 + +dlabel D_80156968 +.space 8 + +dlabel D_80156970 +.space 0x00000010 + +dlabel ImgFXAnimHeaders +.space 0x000005a0 + +dlabel ImgFXDataCache +.space 0x00000040 + +dlabel gHudElementsWorld +.space 0x00000500 + +dlabel gHudElementsBattle +.space 0x00000500 + +dlabel gHudElements +.space 4 + +dlabel gHudElementCacheBufferWorld +.space 4 + +dlabel gHudElementCacheSizeWorld +.space 4 + +dlabel D_8015796C +.space 4 + +dlabel gHudElementCacheTableRasterWorld +.space 0x00000600 + +dlabel gHudElementCacheTablePaletteWorld +.space 0x00000600 + +dlabel gHudElementCacheBufferBattle +.space 4 + +dlabel gHudElementCacheSizeBattle +.space 4 + +dlabel D_80158578 +.space 8 + +dlabel gHudElementCacheTableRasterBattle +.space 0x00000600 + +dlabel gHudElementCacheTablePaletteBattle +.space 0x00000600 + +dlabel D_80159180 +.space 0x00000010 + +dlabel wTriggerList +.space 0x00000100 + +dlabel bTriggerList +.space 0x00000100 + +dlabel gCurrentTriggerListPtr +.space 4 + +dlabel D_80159394 +.space 0x0000000c + +dlabel gBackgroundPalette +.space 0x00000200 + +dlabel gBackroundLastScrollValue +.space 0x00000020 + +dlabel wSpriteShadingProfile +.space 0x000000b0 + +dlabel bSpriteShadingProfile +.space 0x000000b0 + +dlabel wSpriteShadingProfileAux +.space 0x000000b0 + +dlabel bSpriteShadingProfileAux +.space 0x000000b0 + +dlabel SpriteShadingPalette +.space 0x00000020 + +dlabel wEnvSounds +.space 0x00000118 + +dlabel bEnvSounds +.space 0x00000118 + +dlabel gCurrentEnvSounds +.space 4 + +dlabel SfxReverbMode +.space 4 + +dlabel D_80159AD8 +.space 8 + +dlabel MusicDefaultVolume +.space 2 + +dlabel MusicTargetVolume +.space 2 + +dlabel MusicMaxVolume +.space 2 + +dlabel MusicCurrentVolume +.space 2 + +dlabel D_80159AE8 +.space 8 + +dlabel gMusicSettings +.space 0x00000060 + +dlabel D_80159B50 +.space 0x00000200 + +dlabel gWindows +.space 0x00000800 + +dlabel gCollisionStatus +.space 0x00000028 + +dlabel gCurrentHiddenPanels +.space 0x10 + +.space 8 + +dlabel TextureHandles +.space 0x00002200 + +dlabel ScreenOverlays +.space 0x00000030 + +dlabel AmbientSoundData +.space 0x00000010 + +dlabel CreateEntityVarArgBuffer +.space 0x00000010 + +dlabel D_8015C7E0 +.space 0x20 + +dlabel D_8015C800 +.space 0x2880 + +dlabel D_80164000 +.space 0x32C60 + +#endif diff --git a/ver/jp/asm/nonmatchings/msg/dma_load_msg.s b/ver/jp/asm/nonmatchings/msg/dma_load_msg.s new file mode 100644 index 00000000000..9f74542ff00 --- /dev/null +++ b/ver/jp/asm/nonmatchings/msg/dma_load_msg.s @@ -0,0 +1,38 @@ +.set noat /* allow manual use of $at */ +.set noreorder /* don't insert nops after branches */ + +glabel dma_load_msg +/* BF8F8 8012AA68 27BDFFD8 */ addiu $sp, $sp, -0x28 +/* BF8FC 8012AA6C AFB00018 */ sw $s0, 0x18($sp) +/* BF900 8012AA70 0080802D */ daddu $s0, $a0, $zero +/* BF904 8012AA74 AFB20020 */ sw $s2, 0x20($sp) +/* BF908 8012AA78 00A0902D */ daddu $s2, $a1, $zero +/* BF90C 8012AA7C 00101382 */ srl $v0, $s0, 14 +/* BF910 8012AA80 AFB1001C */ sw $s1, 0x1C($sp) +/* BF914 8012AA84 3C1101D4 */ lui $s1, %hi(D_1D40004) +/* BF918 8012AA88 00512021 */ addu $a0, $v0, $s1 +/* BF91C 8012AA8C 24850004 */ addiu $a1, $a0, %lo(D_1D40004) +/* BF920 8012AA90 AFBF0024 */ sw $ra, 0x24($sp) +/* BF924 8012AA94 0C00A5BF */ jal dma_copy +/* BF928 8012AA98 27A60010 */ addiu $a2, $sp, 0x10 +/* BF92C 8012AA9C 27A60010 */ addiu $a2, $sp, 0x10 +/* BF930 8012AAA0 3210FFFF */ andi $s0, $s0, 0xFFFF +/* BF934 8012AAA4 00108080 */ sll $s0, $s0, 2 +/* BF938 8012AAA8 8FA20010 */ lw $v0, 0x10($sp) +/* BF93C 8012AAAC 02118021 */ addu $s0, $s0, $s1 +/* BF940 8012AAB0 00502021 */ addu $a0, $v0, $s0 +/* BF944 8012AAB4 0C00A5BF */ jal dma_copy +/* BF948 8012AAB8 24850008 */ addiu $a1, $a0, %lo(D_1D40008) +/* BF94C 8012AABC 0240302D */ daddu $a2, $s2, $zero +/* BF950 8012AAC0 8FA40010 */ lw $a0, 0x10($sp) +/* BF954 8012AAC4 8FA50014 */ lw $a1, 0x14($sp) +/* BF958 8012AAC8 00912021 */ addu $a0, $a0, $s1 +/* BF95C 8012AACC 0C00A5BF */ jal dma_copy +/* BF960 8012AAD0 00B12821 */ addu $a1, $a1, $s1 +/* BF964 8012AAD4 8FBF0024 */ lw $ra, 0x24($sp) +/* BF968 8012AAD8 8FB20020 */ lw $s2, 0x20($sp) +/* BF96C 8012AADC 8FB1001C */ lw $s1, 0x1C($sp) +/* BF970 8012AAE0 8FB00018 */ lw $s0, 0x18($sp) +/* BF974 8012AAE4 03E00008 */ jr $ra +/* BF978 8012AAE8 27BD0028 */ addiu $sp, $sp, 0x28 +.size dma_load_msg, . - dma_load_msg diff --git a/ver/jp/asm/nonmatchings/msg/msg_copy_to_print_buffer.s b/ver/jp/asm/nonmatchings/msg/msg_copy_to_print_buffer.s new file mode 100644 index 00000000000..53c15aae988 --- /dev/null +++ b/ver/jp/asm/nonmatchings/msg/msg_copy_to_print_buffer.s @@ -0,0 +1,1324 @@ +.set noat /* allow manual use of $at */ +.set noreorder /* don't insert nops after branches */ + +.section .rodata +.align 3 +dlabel jtbl_JP_80155458 +/* EA2E8 80155458 801298A0 */ .word .LJP_801298A0 +/* EA2EC 8015545C 80129904 */ .word .LJP_80129904 +/* EA2F0 80155460 80129964 */ .word .LJP_80129964 +/* EA2F4 80155464 8012998C */ .word .LJP_8012998C +/* EA2F8 80155468 8012998C */ .word .LJP_8012998C +/* EA2FC 8015546C 8012998C */ .word .LJP_8012998C +/* EA300 80155470 8012998C */ .word .LJP_8012998C +/* EA304 80155474 801299A4 */ .word .LJP_801299A4 +/* EA308 80155478 801299AC */ .word .LJP_801299AC +/* EA30C 8015547C 801299B4 */ .word .LJP_801299B4 +/* EA310 80155480 801299BC */ .word .LJP_801299BC +/* EA314 80155484 801299D0 */ .word .LJP_801299D0 +/* EA318 80155488 80129A54 */ .word .LJP_80129A54 +/* EA31C 8015548C 80129D90 */ .word .LJP_80129D90 +/* EA320 80155490 8012A808 */ .word .LJP_8012A808 +/* EA324 80155494 80129E04 */ .word .LJP_80129E04 +.size jtbl_JP_80155458, . - jtbl_JP_80155458 + +.align 3 +dlabel jtbl_JP_80155498 +/* EA328 80155498 80129AA0 */ .word .LJP_80129AA0 +/* EA32C 8015549C 80129AA0 */ .word .LJP_80129AA0 +/* EA330 801554A0 80129AA0 */ .word .LJP_80129AA0 +/* EA334 801554A4 80129AA0 */ .word .LJP_80129AA0 +/* EA338 801554A8 80129B00 */ .word .LJP_80129B00 +/* EA33C 801554AC 80129B44 */ .word .LJP_80129B44 +/* EA340 801554B0 80129C18 */ .word .LJP_80129C18 +/* EA344 801554B4 80129C0C */ .word .LJP_80129C0C +/* EA348 801554B8 80129C40 */ .word .LJP_80129C40 +/* EA34C 801554BC 80129D2C */ .word .LJP_80129D2C +/* EA350 801554C0 80129D2C */ .word .LJP_80129D2C +/* EA354 801554C4 80129BA8 */ .word .LJP_80129BA8 +/* EA358 801554C8 80129B44 */ .word .LJP_80129B44 +/* EA35C 801554CC 80129D70 */ .word .LJP_80129D70 +/* EA360 801554D0 80129B44 */ .word .LJP_80129B44 +/* EA364 801554D4 00000000 */ .word 0x00000000 +.size jtbl_JP_80155498, . - jtbl_JP_80155498 + +.align 3 +dlabel jtbl_JP_801554D8 +/* EA368 801554D8 80129E2C */ .word .LJP_80129E2C +/* EA36C 801554DC 80129E4C */ .word .LJP_80129E4C +/* EA370 801554E0 8012A864 */ .word .LJP_8012A864 +/* EA374 801554E4 8012A3A8 */ .word .LJP_8012A3A8 +/* EA378 801554E8 8012A3B8 */ .word .LJP_8012A3B8 +/* EA37C 801554EC 80129E70 */ .word .LJP_80129E70 +/* EA380 801554F0 80129E80 */ .word .LJP_80129E80 +/* EA384 801554F4 80129E8C */ .word .LJP_80129E8C +/* EA388 801554F8 80129EA0 */ .word .LJP_80129EA0 +/* EA38C 801554FC 80129EC0 */ .word .LJP_80129EC0 +/* EA390 80155500 80129ED0 */ .word .LJP_80129ED0 +/* EA394 80155504 80129EB0 */ .word .LJP_80129EB0 +/* EA398 80155508 80129EDC */ .word .LJP_80129EDC +/* EA39C 8015550C 80129F58 */ .word .LJP_80129F58 +/* EA3A0 80155510 80129FC4 */ .word .LJP_80129FC4 +/* EA3A4 80155514 80129FE8 */ .word .LJP_80129FE8 +/* EA3A8 80155518 8012A004 */ .word .LJP_8012A004 +/* EA3AC 8015551C 8012A024 */ .word .LJP_8012A024 +/* EA3B0 80155520 8012A034 */ .word .LJP_8012A034 +/* EA3B4 80155524 8012A044 */ .word .LJP_8012A044 +/* EA3B8 80155528 8012A054 */ .word .LJP_8012A054 +/* EA3BC 8015552C 8012A064 */ .word .LJP_8012A064 +/* EA3C0 80155530 8012A098 */ .word .LJP_8012A098 +/* EA3C4 80155534 8012A0EC */ .word .LJP_8012A0EC +/* EA3C8 80155538 8012A188 */ .word .LJP_8012A188 +/* EA3CC 8015553C 8012A218 */ .word .LJP_8012A218 +/* EA3D0 80155540 8012A23C */ .word .LJP_8012A23C +/* EA3D4 80155544 8012A290 */ .word .LJP_8012A290 +/* EA3D8 80155548 8012A2B0 */ .word .LJP_8012A2B0 +/* EA3DC 8015554C 8012A2F4 */ .word .LJP_8012A2F4 +/* EA3E0 80155550 8012A334 */ .word .LJP_8012A334 +/* EA3E4 80155554 8012A344 */ .word .LJP_8012A344 +/* EA3E8 80155558 8012A388 */ .word .LJP_8012A388 +/* EA3EC 8015555C 8012A398 */ .word .LJP_8012A398 +/* EA3F0 80155560 8012A3F4 */ .word .LJP_8012A3F4 +/* EA3F4 80155564 8012A404 */ .word .LJP_8012A404 +/* EA3F8 80155568 8012A414 */ .word .LJP_8012A414 +/* EA3FC 8015556C 8012A424 */ .word .LJP_8012A424 +/* EA400 80155570 8012A434 */ .word .LJP_8012A434 +/* EA404 80155574 8012A488 */ .word .LJP_8012A488 +/* EA408 80155578 8012A4B4 */ .word .LJP_8012A4B4 +/* EA40C 8015557C 8012A7A0 */ .word .LJP_8012A7A0 +/* EA410 80155580 8012A7C8 */ .word .LJP_8012A7C8 +/* EA414 80155584 8012A7F8 */ .word .LJP_8012A7F8 +/* EA418 80155588 8012A724 */ .word .LJP_8012A724 +/* EA41C 8015558C 8012A864 */ .word .LJP_8012A864 +/* EA420 80155590 8012A714 */ .word .LJP_8012A714 +/* EA424 80155594 8012A6D0 */ .word .LJP_8012A6D0 +.size jtbl_JP_801554D8, . - jtbl_JP_801554D8 + +.align 3 +dlabel jtbl_JP_80155598 +/* EA428 80155598 8012A474 */ .word .LJP_8012A474 +/* EA42C 8015559C 8012A474 */ .word .LJP_8012A474 +/* EA430 801555A0 8012A474 */ .word .LJP_8012A474 +/* EA434 801555A4 8012A480 */ .word .LJP_8012A480 +/* EA438 801555A8 8012A864 */ .word .LJP_8012A864 +/* EA43C 801555AC 8012A480 */ .word .LJP_8012A480 +/* EA440 801555B0 8012A474 */ .word .LJP_8012A474 +/* EA444 801555B4 8012A480 */ .word .LJP_8012A480 +/* EA448 801555B8 8012A474 */ .word .LJP_8012A474 +/* EA44C 801555BC 8012A474 */ .word .LJP_8012A474 +/* EA450 801555C0 8012A474 */ .word .LJP_8012A474 +/* EA454 801555C4 8012A474 */ .word .LJP_8012A474 +/* EA458 801555C8 8012A474 */ .word .LJP_8012A474 +/* EA45C 801555CC 8012A474 */ .word .LJP_8012A474 +/* EA460 801555D0 8012A474 */ .word .LJP_8012A474 +/* EA464 801555D4 00000000 */ .word 0x00000000 +.size jtbl_JP_80155598, . - jtbl_JP_80155598 + + +.section .text +/* Generated by spimdisasm 1.19.0 */ + +glabel msg_copy_to_print_buffer +/* BE6A0 80129810 27BDFFB8 */ addiu $sp, $sp, -0x48 +/* BE6A4 80129814 AFB40030 */ sw $s4, 0x30($sp) +/* BE6A8 80129818 0080A02D */ daddu $s4, $a0, $zero +/* BE6AC 8012981C AFB50034 */ sw $s5, 0x34($sp) +/* BE6B0 80129820 00A0A82D */ daddu $s5, $a1, $zero +/* BE6B4 80129824 26890428 */ addiu $t1, $s4, 0x428 +/* BE6B8 80129828 AFB7003C */ sw $s7, 0x3C($sp) +/* BE6BC 8012982C 24170002 */ addiu $s7, $zero, 0x2 +/* BE6C0 80129830 AFBE0040 */ sw $fp, 0x40($sp) +/* BE6C4 80129834 30DE0001 */ andi $fp, $a2, 0x1 +/* BE6C8 80129838 AFB60038 */ sw $s6, 0x38($sp) +/* BE6CC 8012983C 241600FF */ addiu $s6, $zero, 0xFF +/* BE6D0 80129840 AFBF0044 */ sw $ra, 0x44($sp) +/* BE6D4 80129844 AFB3002C */ sw $s3, 0x2C($sp) +/* BE6D8 80129848 AFB20028 */ sw $s2, 0x28($sp) +/* BE6DC 8012984C AFB10024 */ sw $s1, 0x24($sp) +/* BE6E0 80129850 AFB00020 */ sw $s0, 0x20($sp) +/* BE6E4 80129854 AFA90018 */ sw $t1, 0x18($sp) +/* BE6E8 80129858 96820004 */ lhu $v0, 0x4($s4) +/* BE6EC 8012985C 9684000C */ lhu $a0, 0xC($s4) +/* BE6F0 80129860 8E830000 */ lw $v1, 0x0($s4) +/* BE6F4 80129864 24420010 */ addiu $v0, $v0, 0x10 +/* BE6F8 80129868 02829021 */ addu $s2, $s4, $v0 +/* BE6FC 8012986C 00649821 */ addu $s3, $v1, $a0 +.LJP_80129870: +/* BE700 80129870 92650000 */ lbu $a1, 0x0($s3) +/* BE704 80129874 26730001 */ addiu $s3, $s3, 0x1 +/* BE708 80129878 92660000 */ lbu $a2, 0x0($s3) +/* BE70C 8012987C 24A3FF10 */ addiu $v1, $a1, -0xF0 +/* BE710 80129880 2C620010 */ sltiu $v0, $v1, 0x10 +/* BE714 80129884 104003E0 */ beqz $v0, .LJP_8012A808 +/* BE718 80129888 00031080 */ sll $v0, $v1, 2 +/* BE71C 8012988C 3C018015 */ lui $at, %hi(jtbl_JP_80155458) +/* BE720 80129890 00220821 */ addu $at, $at, $v0 +/* BE724 80129894 8C225458 */ lw $v0, %lo(jtbl_JP_80155458)($at) +/* BE728 80129898 00400008 */ jr $v0 +/* BE72C 8012989C 00000000 */ nop +.LJP_801298A0: +/* BE730 801298A0 240200F0 */ addiu $v0, $zero, 0xF0 +/* BE734 801298A4 A2420000 */ sb $v0, 0x0($s2) +/* BE738 801298A8 C6800500 */ lwc1 $f0, 0x500($s4) +/* BE73C 801298AC 3C014F00 */ lui $at, (0x4F000000 >> 16) +/* BE740 801298B0 44811000 */ mtc1 $at, $f2 +/* BE744 801298B4 00000000 */ nop +/* BE748 801298B8 4600103E */ c.le.s $f2, $f0 +/* BE74C 801298BC 00000000 */ nop +/* BE750 801298C0 45010005 */ bc1t .LJP_801298D8 +/* BE754 801298C4 26520001 */ addiu $s2, $s2, 0x1 +/* BE758 801298C8 4600010D */ trunc.w.s $f4, $f0 +/* BE75C 801298CC 44032000 */ mfc1 $v1, $f4 +/* BE760 801298D0 0804A63C */ j .LJP_801298F0 +/* BE764 801298D4 00000000 */ nop +.LJP_801298D8: +/* BE768 801298D8 46020001 */ sub.s $f0, $f0, $f2 +/* BE76C 801298DC 3C028000 */ lui $v0, (0x80000000 >> 16) +/* BE770 801298E0 4600010D */ trunc.w.s $f4, $f0 +/* BE774 801298E4 44032000 */ mfc1 $v1, $f4 +/* BE778 801298E8 00000000 */ nop +/* BE77C 801298EC 00621825 */ or $v1, $v1, $v0 +.LJP_801298F0: +/* BE780 801298F0 8FA90018 */ lw $t1, 0x18($sp) +/* BE784 801298F4 91220000 */ lbu $v0, 0x0($t1) +/* BE788 801298F8 00431021 */ addu $v0, $v0, $v1 +/* BE78C 801298FC 0804AA19 */ j .LJP_8012A864 +/* BE790 80129900 A1220000 */ sb $v0, 0x0($t1) +.LJP_80129904: +/* BE794 80129904 968304C0 */ lhu $v1, 0x4C0($s4) +/* BE798 80129908 24020005 */ addiu $v0, $zero, 0x5 +/* BE79C 8012990C A28204B8 */ sb $v0, 0x4B8($s4) +/* BE7A0 80129910 34630001 */ ori $v1, $v1, 0x1 +/* BE7A4 80129914 3063FFFD */ andi $v1, $v1, 0xFFFD +/* BE7A8 80129918 A68304C0 */ sh $v1, 0x4C0($s4) +/* BE7AC 8012991C 8E8304BC */ lw $v1, 0x4BC($s4) +/* BE7B0 80129920 2402FF7F */ addiu $v0, $zero, -0x81 +/* BE7B4 80129924 A280043C */ sb $zero, 0x43C($s4) +/* BE7B8 80129928 A680043E */ sh $zero, 0x43E($s4) +/* BE7BC 8012992C 00621824 */ and $v1, $v1, $v0 +/* BE7C0 80129930 2402FEFF */ addiu $v0, $zero, -0x101 +/* BE7C4 80129934 00621824 */ and $v1, $v1, $v0 +/* BE7C8 80129938 AE8304BC */ sw $v1, 0x4BC($s4) +/* BE7CC 8012993C 928304C8 */ lbu $v1, 0x4C8($s4) +/* BE7D0 80129940 2402000F */ addiu $v0, $zero, 0xF +/* BE7D4 80129944 106203C7 */ beq $v1, $v0, .LJP_8012A864 +/* BE7D8 80129948 240400CB */ addiu $a0, $zero, 0xCB +/* BE7DC 8012994C 0000282D */ daddu $a1, $zero, $zero +/* BE7E0 80129950 00A0302D */ daddu $a2, $a1, $zero +/* BE7E4 80129954 0C053ADA */ jal sfx_play_sound_with_params +/* BE7E8 80129958 00A0382D */ daddu $a3, $a1, $zero +/* BE7EC 8012995C 0804AA19 */ j .LJP_8012A864 +/* BE7F0 80129960 00000000 */ nop +.LJP_80129964: +/* BE7F4 80129964 968204C0 */ lhu $v0, 0x4C0($s4) +/* BE7F8 80129968 92630000 */ lbu $v1, 0x0($s3) +/* BE7FC 8012996C 34420001 */ ori $v0, $v0, 0x1 +/* BE800 80129970 A68204C0 */ sh $v0, 0x4C0($s4) +/* BE804 80129974 8E8204BC */ lw $v0, 0x4BC($s4) +/* BE808 80129978 26730001 */ addiu $s3, $s3, 0x1 +/* BE80C 8012997C A683000E */ sh $v1, 0xE($s4) +/* BE810 80129980 2403FF7F */ addiu $v1, $zero, -0x81 +/* BE814 80129984 0804AA18 */ j .LJP_8012A860 +/* BE818 80129988 00431024 */ and $v0, $v0, $v1 +.LJP_8012998C: +/* BE81C 8012998C 24A200FE */ addiu $v0, $a1, 0xFE +/* BE820 80129990 A2420000 */ sb $v0, 0x0($s2) +/* BE824 80129994 26520001 */ addiu $s2, $s2, 0x1 +/* BE828 80129998 24A2000D */ addiu $v0, $a1, 0xD +/* BE82C 8012999C 0804AA19 */ j .LJP_8012A864 +/* BE830 801299A0 A2820415 */ sb $v0, 0x415($s4) +.LJP_801299A4: +/* BE834 801299A4 0804A9EF */ j .LJP_8012A7BC +/* BE838 801299A8 240200F5 */ addiu $v0, $zero, 0xF5 +.LJP_801299AC: +/* BE83C 801299AC 0804A9EF */ j .LJP_8012A7BC +/* BE840 801299B0 240200F6 */ addiu $v0, $zero, 0xF6 +.LJP_801299B4: +/* BE844 801299B4 0804A9EF */ j .LJP_8012A7BC +/* BE848 801299B8 240200F7 */ addiu $v0, $zero, 0xF7 +.LJP_801299BC: +/* BE84C 801299BC 240200F9 */ addiu $v0, $zero, 0xF9 +/* BE850 801299C0 A2420000 */ sb $v0, 0x0($s2) +/* BE854 801299C4 26520001 */ addiu $s2, $s2, 0x1 +/* BE858 801299C8 0804AA19 */ j .LJP_8012A864 +/* BE85C 801299CC 26B5FFFF */ addiu $s5, $s5, -0x1 +.LJP_801299D0: +/* BE860 801299D0 92820428 */ lbu $v0, 0x428($s4) +/* BE864 801299D4 504003A3 */ beql $v0, $zero, .LJP_8012A864 +/* BE868 801299D8 A2800428 */ sb $zero, 0x428($s4) +/* BE86C 801299DC 92820446 */ lbu $v0, 0x446($s4) +/* BE870 801299E0 96830422 */ lhu $v1, 0x422($s4) +/* BE874 801299E4 00021040 */ sll $v0, $v0, 1 +/* BE878 801299E8 02821021 */ addu $v0, $s4, $v0 +/* BE87C 801299EC A4430448 */ sh $v1, 0x448($v0) +/* BE880 801299F0 92820446 */ lbu $v0, 0x446($s4) +/* BE884 801299F4 24420001 */ addiu $v0, $v0, 0x1 +/* BE888 801299F8 A2820446 */ sb $v0, 0x446($s4) +/* BE88C 801299FC 240200FA */ addiu $v0, $zero, 0xFA +/* BE890 80129A00 A2420000 */ sb $v0, 0x0($s2) +/* BE894 80129A04 92820414 */ lbu $v0, 0x414($s4) +/* BE898 80129A08 26520001 */ addiu $s2, $s2, 0x1 +/* BE89C 80129A0C 00021080 */ sll $v0, $v0, 2 +/* BE8A0 80129A10 3C01802E */ lui $at, %hi(D_802E66F4) +/* BE8A4 80129A14 00220821 */ addu $at, $at, $v0 +/* BE8A8 80129A18 8C2266F4 */ lw $v0, %lo(D_802E66F4)($at) +/* BE8AC 80129A1C 92830428 */ lbu $v1, 0x428($s4) +/* BE8B0 80129A20 90440003 */ lbu $a0, 0x3($v0) +/* BE8B4 80129A24 24020006 */ addiu $v0, $zero, 0x6 +/* BE8B8 80129A28 A28204B8 */ sb $v0, 0x4B8($s4) +/* BE8BC 80129A2C 00830018 */ mult $a0, $v1 +/* BE8C0 80129A30 968204C0 */ lhu $v0, 0x4C0($s4) +/* BE8C4 80129A34 96830422 */ lhu $v1, 0x422($s4) +/* BE8C8 80129A38 34420001 */ ori $v0, $v0, 0x1 +/* BE8CC 80129A3C A68204C0 */ sh $v0, 0x4C0($s4) +/* BE8D0 80129A40 00004812 */ mflo $t1 +/* BE8D4 80129A44 00691821 */ addu $v1, $v1, $t1 +/* BE8D8 80129A48 A6830426 */ sh $v1, 0x426($s4) +/* BE8DC 80129A4C 0804AA19 */ j .LJP_8012A864 +/* BE8E0 80129A50 A2800428 */ sb $zero, 0x428($s4) +.LJP_80129A54: +/* BE8E4 80129A54 240200F8 */ addiu $v0, $zero, 0xF8 +/* BE8E8 80129A58 A2420000 */ sb $v0, 0x0($s2) +/* BE8EC 80129A5C 26520001 */ addiu $s2, $s2, 0x1 +/* BE8F0 80129A60 92700000 */ lbu $s0, 0x0($s3) +/* BE8F4 80129A64 26730001 */ addiu $s3, $s3, 0x1 +/* BE8F8 80129A68 A29004C8 */ sb $s0, 0x4C8($s4) +/* BE8FC 80129A6C A2500000 */ sb $s0, 0x0($s2) +/* BE900 80129A70 26520001 */ addiu $s2, $s2, 0x1 +/* BE904 80129A74 320200FF */ andi $v0, $s0, 0xFF +/* BE908 80129A78 2443FFFF */ addiu $v1, $v0, -0x1 +/* BE90C 80129A7C 2C62000F */ sltiu $v0, $v1, 0xF +/* BE910 80129A80 104000BD */ beqz $v0, .LJP_80129D78 +/* BE914 80129A84 A28004C9 */ sb $zero, 0x4C9($s4) +/* BE918 80129A88 00031080 */ sll $v0, $v1, 2 +/* BE91C 80129A8C 3C018015 */ lui $at, %hi(jtbl_JP_80155498) +/* BE920 80129A90 00220821 */ addu $at, $at, $v0 +/* BE924 80129A94 8C225498 */ lw $v0, %lo(jtbl_JP_80155498)($at) +/* BE928 80129A98 00400008 */ jr $v0 +/* BE92C 80129A9C 00000000 */ nop +.LJP_80129AA0: +/* BE930 80129AA0 2602FFFF */ addiu $v0, $s0, -0x1 +/* BE934 80129AA4 2C420003 */ sltiu $v0, $v0, 0x3 +/* BE938 80129AA8 10400002 */ beqz $v0, .LJP_80129AB4 +/* BE93C 80129AAC 24020003 */ addiu $v0, $zero, 0x3 +/* BE940 80129AB0 A28204FC */ sb $v0, 0x4FC($s4) +.LJP_80129AB4: +/* BE944 80129AB4 3C040080 */ lui $a0, (0x800800 >> 16) +/* BE948 80129AB8 34840800 */ ori $a0, $a0, (0x800800 & 0xFFFF) +/* BE94C 80129ABC 968204C0 */ lhu $v0, 0x4C0($s4) +/* BE950 80129AC0 8E8304BC */ lw $v1, 0x4BC($s4) +/* BE954 80129AC4 34420001 */ ori $v0, $v0, 0x1 +/* BE958 80129AC8 00642025 */ or $a0, $v1, $a0 +/* BE95C 80129ACC 30C300FF */ andi $v1, $a2, 0xFF +/* BE960 80129AD0 A68204C0 */ sh $v0, 0x4C0($s4) +/* BE964 80129AD4 240200C3 */ addiu $v0, $zero, 0xC3 +/* BE968 80129AD8 10620003 */ beq $v1, $v0, .LJP_80129AE8 +/* BE96C 80129ADC AE8404BC */ sw $a0, 0x4BC($s4) +/* BE970 80129AE0 34820080 */ ori $v0, $a0, 0x80 +/* BE974 80129AE4 AE8204BC */ sw $v0, 0x4BC($s4) +.LJP_80129AE8: +/* BE978 80129AE8 24020011 */ addiu $v0, $zero, 0x11 +/* BE97C 80129AEC AE8204E0 */ sw $v0, 0x4E0($s4) +/* BE980 80129AF0 24020012 */ addiu $v0, $zero, 0x12 +/* BE984 80129AF4 AE8204E4 */ sw $v0, 0x4E4($s4) +/* BE988 80129AF8 0804A75E */ j .LJP_80129D78 +/* BE98C 80129AFC A29704B8 */ sb $s7, 0x4B8($s4) +.LJP_80129B00: +/* BE990 80129B00 92620000 */ lbu $v0, 0x0($s3) +/* BE994 80129B04 26730001 */ addiu $s3, $s3, 0x1 +/* BE998 80129B08 A682041A */ sh $v0, 0x41A($s4) +/* BE99C 80129B0C 92620000 */ lbu $v0, 0x0($s3) +/* BE9A0 80129B10 26730001 */ addiu $s3, $s3, 0x1 +/* BE9A4 80129B14 A682041C */ sh $v0, 0x41C($s4) +/* BE9A8 80129B18 92620000 */ lbu $v0, 0x0($s3) +/* BE9AC 80129B1C 26730001 */ addiu $s3, $s3, 0x1 +/* BE9B0 80129B20 A68204D4 */ sh $v0, 0x4D4($s4) +/* BE9B4 80129B24 92630000 */ lbu $v1, 0x0($s3) +/* BE9B8 80129B28 8E8204BC */ lw $v0, 0x4BC($s4) +/* BE9BC 80129B2C 26730001 */ addiu $s3, $s3, 0x1 +/* BE9C0 80129B30 A29704B8 */ sb $s7, 0x4B8($s4) +/* BE9C4 80129B34 34420800 */ ori $v0, $v0, 0x800 +/* BE9C8 80129B38 AE8204BC */ sw $v0, 0x4BC($s4) +/* BE9CC 80129B3C 0804A75E */ j .LJP_80129D78 +/* BE9D0 80129B40 A68304D6 */ sh $v1, 0x4D6($s4) +.LJP_80129B44: +/* BE9D4 80129B44 17C0008C */ bnez $fp, .LJP_80129D78 +/* BE9D8 80129B48 24020028 */ addiu $v0, $zero, 0x28 +/* BE9DC 80129B4C A682041A */ sh $v0, 0x41A($s4) +/* BE9E0 80129B50 2402001C */ addiu $v0, $zero, 0x1C +/* BE9E4 80129B54 A682041C */ sh $v0, 0x41C($s4) +/* BE9E8 80129B58 2402003A */ addiu $v0, $zero, 0x3A +/* BE9EC 80129B5C A68204D6 */ sh $v0, 0x4D6($s4) +/* BE9F0 80129B60 240200F0 */ addiu $v0, $zero, 0xF0 +/* BE9F4 80129B64 A68204D4 */ sh $v0, 0x4D4($s4) +/* BE9F8 80129B68 8E8204BC */ lw $v0, 0x4BC($s4) +/* BE9FC 80129B6C 968304C0 */ lhu $v1, 0x4C0($s4) +/* BEA00 80129B70 A29704B8 */ sb $s7, 0x4B8($s4) +/* BEA04 80129B74 34420800 */ ori $v0, $v0, 0x800 +/* BEA08 80129B78 34630001 */ ori $v1, $v1, 0x1 +/* BEA0C 80129B7C AE8204BC */ sw $v0, 0x4BC($s4) +/* BEA10 80129B80 24020006 */ addiu $v0, $zero, 0x6 +/* BEA14 80129B84 1602007C */ bne $s0, $v0, .LJP_80129D78 +/* BEA18 80129B88 A68304C0 */ sh $v1, 0x4C0($s4) +/* BEA1C 80129B8C 2404021C */ addiu $a0, $zero, 0x21C +/* BEA20 80129B90 0000282D */ daddu $a1, $zero, $zero +/* BEA24 80129B94 00A0302D */ daddu $a2, $a1, $zero +/* BEA28 80129B98 0C053ADA */ jal sfx_play_sound_with_params +/* BEA2C 80129B9C 00A0382D */ daddu $a3, $a1, $zero +/* BEA30 80129BA0 0804A75E */ j .LJP_80129D78 +/* BEA34 80129BA4 00000000 */ nop +.LJP_80129BA8: +/* BEA38 80129BA8 92620000 */ lbu $v0, 0x0($s3) +/* BEA3C 80129BAC 26730001 */ addiu $s3, $s3, 0x1 +/* BEA40 80129BB0 2404021C */ addiu $a0, $zero, 0x21C +/* BEA44 80129BB4 0000282D */ daddu $a1, $zero, $zero +/* BEA48 80129BB8 00A0302D */ daddu $a2, $a1, $zero +/* BEA4C 80129BBC A682041A */ sh $v0, 0x41A($s4) +/* BEA50 80129BC0 92620000 */ lbu $v0, 0x0($s3) +/* BEA54 80129BC4 26730001 */ addiu $s3, $s3, 0x1 +/* BEA58 80129BC8 A682041C */ sh $v0, 0x41C($s4) +/* BEA5C 80129BCC 92620000 */ lbu $v0, 0x0($s3) +/* BEA60 80129BD0 26730001 */ addiu $s3, $s3, 0x1 +/* BEA64 80129BD4 A68204D4 */ sh $v0, 0x4D4($s4) +/* BEA68 80129BD8 92620000 */ lbu $v0, 0x0($s3) +/* BEA6C 80129BDC 00A0382D */ daddu $a3, $a1, $zero +/* BEA70 80129BE0 0C053ADA */ jal sfx_play_sound_with_params +/* BEA74 80129BE4 A68204D6 */ sh $v0, 0x4D6($s4) +/* BEA78 80129BE8 968204C0 */ lhu $v0, 0x4C0($s4) +/* BEA7C 80129BEC 8E8304BC */ lw $v1, 0x4BC($s4) +/* BEA80 80129BF0 26730001 */ addiu $s3, $s3, 0x1 +/* BEA84 80129BF4 A29704B8 */ sb $s7, 0x4B8($s4) +/* BEA88 80129BF8 34420001 */ ori $v0, $v0, 0x1 +/* BEA8C 80129BFC 34630800 */ ori $v1, $v1, 0x800 +/* BEA90 80129C00 A68204C0 */ sh $v0, 0x4C0($s4) +/* BEA94 80129C04 0804A75E */ j .LJP_80129D78 +/* BEA98 80129C08 AE8304BC */ sw $v1, 0x4BC($s4) +.LJP_80129C0C: +/* BEA9C 80129C0C 92620000 */ lbu $v0, 0x0($s3) +/* BEAA0 80129C10 26730001 */ addiu $s3, $s3, 0x1 +/* BEAA4 80129C14 A68204D6 */ sh $v0, 0x4D6($s4) +.LJP_80129C18: +/* BEAA8 80129C18 17C00057 */ bnez $fp, .LJP_80129D78 +/* BEAAC 80129C1C 00000000 */ nop +/* BEAB0 80129C20 8E8204BC */ lw $v0, 0x4BC($s4) +/* BEAB4 80129C24 968304C0 */ lhu $v1, 0x4C0($s4) +/* BEAB8 80129C28 A29704B8 */ sb $s7, 0x4B8($s4) +/* BEABC 80129C2C 34420800 */ ori $v0, $v0, 0x800 +/* BEAC0 80129C30 34630001 */ ori $v1, $v1, 0x1 +/* BEAC4 80129C34 AE8204BC */ sw $v0, 0x4BC($s4) +/* BEAC8 80129C38 0804A75E */ j .LJP_80129D78 +/* BEACC 80129C3C A68304C0 */ sh $v1, 0x4C0($s4) +.LJP_80129C40: +/* BEAD0 80129C40 92700000 */ lbu $s0, 0x0($s3) +/* BEAD4 80129C44 26730001 */ addiu $s3, $s3, 0x1 +/* BEAD8 80129C48 8E8204BC */ lw $v0, 0x4BC($s4) +/* BEADC 80129C4C 968304C0 */ lhu $v1, 0x4C0($s4) +/* BEAE0 80129C50 24041EC3 */ addiu $a0, $zero, 0x1EC3 +/* BEAE4 80129C54 A29704B8 */ sb $s7, 0x4B8($s4) +/* BEAE8 80129C58 34420800 */ ori $v0, $v0, 0x800 +/* BEAEC 80129C5C 34630001 */ ori $v1, $v1, 0x1 +/* BEAF0 80129C60 AE8204BC */ sw $v0, 0x4BC($s4) +/* BEAF4 80129C64 0C00AB29 */ jal heap_malloc +/* BEAF8 80129C68 A68304C0 */ sh $v1, 0x4C0($s4) +/* BEAFC 80129C6C 3C030001 */ lui $v1, %hi(D_13B98) +/* BEB00 80129C70 24633B98 */ addiu $v1, $v1, %lo(D_13B98) +/* BEB04 80129C74 3C090011 */ lui $t1, %hi(charset_ROM_START) +/* BEB08 80129C78 2529F330 */ addiu $t1, $t1, %lo(charset_ROM_START) +/* BEB0C 80129C7C 01232021 */ addu $a0, $t1, $v1 +/* BEB10 80129C80 24851EC3 */ addiu $a1, $a0, 0x1EC3 +/* BEB14 80129C84 0040302D */ daddu $a2, $v0, $zero +/* BEB18 80129C88 0C00A5BF */ jal dma_copy +/* BEB1C 80129C8C AE860504 */ sw $a2, 0x504($s4) +/* BEB20 80129C90 0C00AB29 */ jal heap_malloc +/* BEB24 80129C94 24040020 */ addiu $a0, $zero, 0x20 +/* BEB28 80129C98 3C030001 */ lui $v1, %hi(D_15A60) +/* BEB2C 80129C9C 24635A60 */ addiu $v1, $v1, %lo(D_15A60) +/* BEB30 80129CA0 3C090011 */ lui $t1, %hi(charset_ROM_START) +/* BEB34 80129CA4 2529F330 */ addiu $t1, $t1, %lo(charset_ROM_START) +/* BEB38 80129CA8 01232021 */ addu $a0, $t1, $v1 +/* BEB3C 80129CAC 24850020 */ addiu $a1, $a0, 0x20 +/* BEB40 80129CB0 0040302D */ daddu $a2, $v0, $zero +/* BEB44 80129CB4 0C00A5BF */ jal dma_copy +/* BEB48 80129CB8 AE860508 */ sw $a2, 0x508($s4) +/* BEB4C 80129CBC 0C00AB29 */ jal heap_malloc +/* BEB50 80129CC0 240419FA */ addiu $a0, $zero, 0x19FA +/* BEB54 80129CC4 321000FF */ andi $s0, $s0, 0xFF +/* BEB58 80129CC8 00108080 */ sll $s0, $s0, 2 +/* BEB5C 80129CCC 0040302D */ daddu $a2, $v0, $zero +/* BEB60 80129CD0 AE82050C */ sw $v0, 0x50C($s4) +/* BEB64 80129CD4 3C03802E */ lui $v1, %hi(D_802E670C) +/* BEB68 80129CD8 00701821 */ addu $v1, $v1, $s0 +/* BEB6C 80129CDC 8C63670C */ lw $v1, %lo(D_802E670C)($v1) +/* BEB70 80129CE0 3C090011 */ lui $t1, %hi(charset_ROM_START) +/* BEB74 80129CE4 2529F330 */ addiu $t1, $t1, %lo(charset_ROM_START) +/* BEB78 80129CE8 00692021 */ addu $a0, $v1, $t1 +/* BEB7C 80129CEC 0C00A5BF */ jal dma_copy +/* BEB80 80129CF0 248519FA */ addiu $a1, $a0, 0x19FA +/* BEB84 80129CF4 0C00AB29 */ jal heap_malloc +/* BEB88 80129CF8 24040200 */ addiu $a0, $zero, 0x200 +/* BEB8C 80129CFC 0040302D */ daddu $a2, $v0, $zero +/* BEB90 80129D00 AE820510 */ sw $v0, 0x510($s4) +/* BEB94 80129D04 3C03802E */ lui $v1, %hi(D_802E673C) +/* BEB98 80129D08 00701821 */ addu $v1, $v1, $s0 +/* BEB9C 80129D0C 8C63673C */ lw $v1, %lo(D_802E673C)($v1) +/* BEBA0 80129D10 3C090011 */ lui $t1, %hi(charset_ROM_START) +/* BEBA4 80129D14 2529F330 */ addiu $t1, $t1, %lo(charset_ROM_START) +/* BEBA8 80129D18 00692021 */ addu $a0, $v1, $t1 +/* BEBAC 80129D1C 0C00A5BF */ jal dma_copy +/* BEBB0 80129D20 24850200 */ addiu $a1, $a0, 0x200 +/* BEBB4 80129D24 0804A75E */ j .LJP_80129D78 +/* BEBB8 80129D28 00000000 */ nop +.LJP_80129D2C: +/* BEBBC 80129D2C 24020020 */ addiu $v0, $zero, 0x20 +/* BEBC0 80129D30 A68204D6 */ sh $v0, 0x4D6($s4) +/* BEBC4 80129D34 968204F8 */ lhu $v0, 0x4F8($s4) +/* BEBC8 80129D38 8E8304BC */ lw $v1, 0x4BC($s4) +/* BEBCC 80129D3C 24420020 */ addiu $v0, $v0, 0x20 +/* BEBD0 80129D40 A68204D4 */ sh $v0, 0x4D4($s4) +/* BEBD4 80129D44 34628000 */ ori $v0, $v1, 0x8000 +/* BEBD8 80129D48 17C0000B */ bnez $fp, .LJP_80129D78 +/* BEBDC 80129D4C AE8204BC */ sw $v0, 0x4BC($s4) +/* BEBE0 80129D50 34628800 */ ori $v0, $v1, 0x8800 +/* BEBE4 80129D54 968304C0 */ lhu $v1, 0x4C0($s4) +/* BEBE8 80129D58 AE8204BC */ sw $v0, 0x4BC($s4) +/* BEBEC 80129D5C 2402000D */ addiu $v0, $zero, 0xD +/* BEBF0 80129D60 A28204B8 */ sb $v0, 0x4B8($s4) +/* BEBF4 80129D64 34630001 */ ori $v1, $v1, 0x1 +/* BEBF8 80129D68 0804A75E */ j .LJP_80129D78 +/* BEBFC 80129D6C A68304C0 */ sh $v1, 0x4C0($s4) +.LJP_80129D70: +/* BEC00 80129D70 24020004 */ addiu $v0, $zero, 0x4 +/* BEC04 80129D74 A28204B8 */ sb $v0, 0x4B8($s4) +.LJP_80129D78: +/* BEC08 80129D78 968304C0 */ lhu $v1, 0x4C0($s4) +/* BEC0C 80129D7C 30620001 */ andi $v0, $v1, 0x1 +/* BEC10 80129D80 104002B8 */ beqz $v0, .LJP_8012A864 +/* BEC14 80129D84 30620006 */ andi $v0, $v1, 0x6 +/* BEC18 80129D88 0804A882 */ j .LJP_8012A208 +/* BEC1C 80129D8C 00000000 */ nop +.LJP_80129D90: +/* BEC20 80129D90 240200FB */ addiu $v0, $zero, 0xFB +/* BEC24 80129D94 A2420000 */ sb $v0, 0x0($s2) +/* BEC28 80129D98 8E8304BC */ lw $v1, 0x4BC($s4) +/* BEC2C 80129D9C 30620800 */ andi $v0, $v1, 0x800 +/* BEC30 80129DA0 10400011 */ beqz $v0, .LJP_80129DE8 +/* BEC34 80129DA4 26520001 */ addiu $s2, $s2, 0x1 +/* BEC38 80129DA8 30621000 */ andi $v0, $v1, 0x1000 +/* BEC3C 80129DAC 10400005 */ beqz $v0, .LJP_80129DC4 +/* BEC40 80129DB0 00000000 */ nop +/* BEC44 80129DB4 8E8304C4 */ lw $v1, 0x4C4($s4) +/* BEC48 80129DB8 10600002 */ beqz $v1, .LJP_80129DC4 +/* BEC4C 80129DBC 24020001 */ addiu $v0, $zero, 0x1 +/* BEC50 80129DC0 AC620000 */ sw $v0, 0x0($v1) +.LJP_80129DC4: +/* BEC54 80129DC4 928204C8 */ lbu $v0, 0x4C8($s4) +/* BEC58 80129DC8 2442FFF6 */ addiu $v0, $v0, -0xA +/* BEC5C 80129DCC 2C420002 */ sltiu $v0, $v0, 0x2 +/* BEC60 80129DD0 14400002 */ bnez $v0, .LJP_80129DDC +/* BEC64 80129DD4 2402000E */ addiu $v0, $zero, 0xE +/* BEC68 80129DD8 24020003 */ addiu $v0, $zero, 0x3 +.LJP_80129DDC: +/* BEC6C 80129DDC A28204B8 */ sb $v0, 0x4B8($s4) +/* BEC70 80129DE0 0804A77C */ j .LJP_80129DF0 +/* BEC74 80129DE4 A28004D2 */ sb $zero, 0x4D2($s4) +.LJP_80129DE8: +/* BEC78 80129DE8 34620001 */ ori $v0, $v1, 0x1 +/* BEC7C 80129DEC AE8204BC */ sw $v0, 0x4BC($s4) +.LJP_80129DF0: +/* BEC80 80129DF0 968204C0 */ lhu $v0, 0x4C0($s4) +/* BEC84 80129DF4 34420001 */ ori $v0, $v0, 0x1 +/* BEC88 80129DF8 3042FFFD */ andi $v0, $v0, 0xFFFD +/* BEC8C 80129DFC 0804AA19 */ j .LJP_8012A864 +/* BEC90 80129E00 A68204C0 */ sh $v0, 0x4C0($s4) +.LJP_80129E04: +/* BEC94 80129E04 92630000 */ lbu $v1, 0x0($s3) +/* BEC98 80129E08 2C620030 */ sltiu $v0, $v1, 0x30 +/* BEC9C 80129E0C 10400295 */ beqz $v0, .LJP_8012A864 +/* BECA0 80129E10 26730001 */ addiu $s3, $s3, 0x1 +/* BECA4 80129E14 00031080 */ sll $v0, $v1, 2 +/* BECA8 80129E18 3C018015 */ lui $at, %hi(jtbl_JP_801554D8) +/* BECAC 80129E1C 00220821 */ addu $at, $at, $v0 +/* BECB0 80129E20 8C2254D8 */ lw $v0, %lo(jtbl_JP_801554D8)($at) +/* BECB4 80129E24 00400008 */ jr $v0 +/* BECB8 80129E28 00000000 */ nop +.LJP_80129E2C: +/* BECBC 80129E2C A2560000 */ sb $s6, 0x0($s2) +/* BECC0 80129E30 26520001 */ addiu $s2, $s2, 0x1 +/* BECC4 80129E34 A2400000 */ sb $zero, 0x0($s2) +/* BECC8 80129E38 26520001 */ addiu $s2, $s2, 0x1 +/* BECCC 80129E3C 92620000 */ lbu $v0, 0x0($s3) +/* BECD0 80129E40 26730001 */ addiu $s3, $s3, 0x1 +/* BECD4 80129E44 0804A9EF */ j .LJP_8012A7BC +/* BECD8 80129E48 A2820414 */ sb $v0, 0x414($s4) +.LJP_80129E4C: +/* BECDC 80129E4C A2560000 */ sb $s6, 0x0($s2) +/* BECE0 80129E50 26520001 */ addiu $s2, $s2, 0x1 +/* BECE4 80129E54 24020001 */ addiu $v0, $zero, 0x1 +/* BECE8 80129E58 A2420000 */ sb $v0, 0x0($s2) +/* BECEC 80129E5C 26520001 */ addiu $s2, $s2, 0x1 +/* BECF0 80129E60 92620000 */ lbu $v0, 0x0($s3) +/* BECF4 80129E64 26730001 */ addiu $s3, $s3, 0x1 +/* BECF8 80129E68 0804A9EF */ j .LJP_8012A7BC +/* BECFC 80129E6C A2820415 */ sb $v0, 0x415($s4) +.LJP_80129E70: +/* BED00 80129E70 A2560000 */ sb $s6, 0x0($s2) +/* BED04 80129E74 26520001 */ addiu $s2, $s2, 0x1 +/* BED08 80129E78 0804A9EB */ j .LJP_8012A7AC +/* BED0C 80129E7C 24020004 */ addiu $v0, $zero, 0x4 +.LJP_80129E80: +/* BED10 80129E80 8E8204BC */ lw $v0, 0x4BC($s4) +/* BED14 80129E84 0804AA18 */ j .LJP_8012A860 +/* BED18 80129E88 34420010 */ ori $v0, $v0, 0x10 +.LJP_80129E8C: +/* BED1C 80129E8C 8E8204BC */ lw $v0, 0x4BC($s4) +/* BED20 80129E90 2403FEFF */ addiu $v1, $zero, -0x101 +/* BED24 80129E94 34420020 */ ori $v0, $v0, 0x20 +/* BED28 80129E98 0804AA18 */ j .LJP_8012A860 +/* BED2C 80129E9C 00431024 */ and $v0, $v0, $v1 +.LJP_80129EA0: +/* BED30 80129EA0 8E8204BC */ lw $v0, 0x4BC($s4) +/* BED34 80129EA4 2403FFDF */ addiu $v1, $zero, -0x21 +/* BED38 80129EA8 0804AA18 */ j .LJP_8012A860 +/* BED3C 80129EAC 00431024 */ and $v0, $v0, $v1 +.LJP_80129EB0: +/* BED40 80129EB0 A2560000 */ sb $s6, 0x0($s2) +/* BED44 80129EB4 26520001 */ addiu $s2, $s2, 0x1 +/* BED48 80129EB8 0804A9EB */ j .LJP_8012A7AC +/* BED4C 80129EBC 24020005 */ addiu $v0, $zero, 0x5 +.LJP_80129EC0: +/* BED50 80129EC0 968204C0 */ lhu $v0, 0x4C0($s4) +/* BED54 80129EC4 34420002 */ ori $v0, $v0, 0x2 +/* BED58 80129EC8 0804AA19 */ j .LJP_8012A864 +/* BED5C 80129ECC A68204C0 */ sh $v0, 0x4C0($s4) +.LJP_80129ED0: +/* BED60 80129ED0 968204C0 */ lhu $v0, 0x4C0($s4) +/* BED64 80129ED4 0804A8BA */ j .LJP_8012A2E8 +/* BED68 80129ED8 3042FFFD */ andi $v0, $v0, 0xFFFD +.LJP_80129EDC: +/* BED6C 80129EDC 92820446 */ lbu $v0, 0x446($s4) +/* BED70 80129EE0 96830422 */ lhu $v1, 0x422($s4) +/* BED74 80129EE4 00021040 */ sll $v0, $v0, 1 +/* BED78 80129EE8 02821021 */ addu $v0, $s4, $v0 +/* BED7C 80129EEC A4430448 */ sh $v1, 0x448($v0) +/* BED80 80129EF0 92820446 */ lbu $v0, 0x446($s4) +/* BED84 80129EF4 24420001 */ addiu $v0, $v0, 0x1 +/* BED88 80129EF8 A2820446 */ sb $v0, 0x446($s4) +/* BED8C 80129EFC 240200FA */ addiu $v0, $zero, 0xFA +/* BED90 80129F00 A2420000 */ sb $v0, 0x0($s2) +/* BED94 80129F04 26520001 */ addiu $s2, $s2, 0x1 +/* BED98 80129F08 92820414 */ lbu $v0, 0x414($s4) +/* BED9C 80129F0C 92700000 */ lbu $s0, 0x0($s3) +/* BEDA0 80129F10 00021080 */ sll $v0, $v0, 2 +/* BEDA4 80129F14 3C01802E */ lui $at, %hi(D_802E66F4) +/* BEDA8 80129F18 00220821 */ addu $at, $at, $v0 +/* BEDAC 80129F1C 8C2266F4 */ lw $v0, %lo(D_802E66F4)($at) +/* BEDB0 80129F20 26730001 */ addiu $s3, $s3, 0x1 +/* BEDB4 80129F24 90430003 */ lbu $v1, 0x3($v0) +/* BEDB8 80129F28 24020006 */ addiu $v0, $zero, 0x6 +/* BEDBC 80129F2C A28204B8 */ sb $v0, 0x4B8($s4) +/* BEDC0 80129F30 968204C0 */ lhu $v0, 0x4C0($s4) +/* BEDC4 80129F34 02030018 */ mult $s0, $v1 +/* BEDC8 80129F38 A2800428 */ sb $zero, 0x428($s4) +/* BEDCC 80129F3C 96830422 */ lhu $v1, 0x422($s4) +/* BEDD0 80129F40 34420001 */ ori $v0, $v0, 0x1 +/* BEDD4 80129F44 A68204C0 */ sh $v0, 0x4C0($s4) +/* BEDD8 80129F48 00004812 */ mflo $t1 +/* BEDDC 80129F4C 00691821 */ addu $v1, $v1, $t1 +/* BEDE0 80129F50 0804AA19 */ j .LJP_8012A864 +/* BEDE4 80129F54 A6830426 */ sh $v1, 0x426($s4) +.LJP_80129F58: +/* BEDE8 80129F58 A2560000 */ sb $s6, 0x0($s2) +/* BEDEC 80129F5C 26520001 */ addiu $s2, $s2, 0x1 +/* BEDF0 80129F60 24020006 */ addiu $v0, $zero, 0x6 +/* BEDF4 80129F64 A2420000 */ sb $v0, 0x0($s2) +/* BEDF8 80129F68 26520001 */ addiu $s2, $s2, 0x1 +/* BEDFC 80129F6C 92620000 */ lbu $v0, 0x0($s3) +/* BEE00 80129F70 3C013D80 */ lui $at, (0x3D800000 >> 16) +/* BEE04 80129F74 44810000 */ mtc1 $at, $f0 +/* BEE08 80129F78 26730001 */ addiu $s3, $s3, 0x1 +/* BEE0C 80129F7C A2420000 */ sb $v0, 0x0($s2) +/* BEE10 80129F80 92700000 */ lbu $s0, 0x0($s3) +/* BEE14 80129F84 26520001 */ addiu $s2, $s2, 0x1 +/* BEE18 80129F88 3202000F */ andi $v0, $s0, 0xF +/* BEE1C 80129F8C 44821000 */ mtc1 $v0, $f2 +/* BEE20 80129F90 00000000 */ nop +/* BEE24 80129F94 468010A0 */ cvt.s.w $f2, $f2 +/* BEE28 80129F98 46001082 */ mul.s $f2, $f2, $f0 +/* BEE2C 80129F9C 00000000 */ nop +/* BEE30 80129FA0 26730001 */ addiu $s3, $s3, 0x1 +/* BEE34 80129FA4 320200FF */ andi $v0, $s0, 0xFF +/* BEE38 80129FA8 00021102 */ srl $v0, $v0, 4 +/* BEE3C 80129FAC 44820000 */ mtc1 $v0, $f0 +/* BEE40 80129FB0 00000000 */ nop +/* BEE44 80129FB4 46800020 */ cvt.s.w $f0, $f0 +/* BEE48 80129FB8 46020000 */ add.s $f0, $f0, $f2 +/* BEE4C 80129FBC 0804A7F7 */ j .LJP_80129FDC +/* BEE50 80129FC0 A2500000 */ sb $s0, 0x0($s2) +.LJP_80129FC4: +/* BEE54 80129FC4 A2560000 */ sb $s6, 0x0($s2) +/* BEE58 80129FC8 26520001 */ addiu $s2, $s2, 0x1 +/* BEE5C 80129FCC 3C013F80 */ lui $at, (0x3F800000 >> 16) +/* BEE60 80129FD0 44810000 */ mtc1 $at, $f0 +/* BEE64 80129FD4 24020007 */ addiu $v0, $zero, 0x7 +/* BEE68 80129FD8 A2420000 */ sb $v0, 0x0($s2) +.LJP_80129FDC: +/* BEE6C 80129FDC 26520001 */ addiu $s2, $s2, 0x1 +/* BEE70 80129FE0 0804AA19 */ j .LJP_8012A864 +/* BEE74 80129FE4 E6800500 */ swc1 $f0, 0x500($s4) +.LJP_80129FE8: +/* BEE78 80129FE8 92620000 */ lbu $v0, 0x0($s3) +/* BEE7C 80129FEC 26730001 */ addiu $s3, $s3, 0x1 +/* BEE80 80129FF0 A282041E */ sb $v0, 0x41E($s4) +/* BEE84 80129FF4 92620000 */ lbu $v0, 0x0($s3) +/* BEE88 80129FF8 26730001 */ addiu $s3, $s3, 0x1 +/* BEE8C 80129FFC 0804AA19 */ j .LJP_8012A864 +/* BEE90 8012A000 A282041F */ sb $v0, 0x41F($s4) +.LJP_8012A004: +/* BEE94 8012A004 A2560000 */ sb $s6, 0x0($s2) +/* BEE98 8012A008 26520001 */ addiu $s2, $s2, 0x1 +/* BEE9C 8012A00C 24020008 */ addiu $v0, $zero, 0x8 +/* BEEA0 8012A010 A2420000 */ sb $v0, 0x0($s2) +/* BEEA4 8012A014 26520001 */ addiu $s2, $s2, 0x1 +/* BEEA8 8012A018 92620000 */ lbu $v0, 0x0($s3) +/* BEEAC 8012A01C 0804A9EB */ j .LJP_8012A7AC +/* BEEB0 8012A020 26730001 */ addiu $s3, $s3, 0x1 +.LJP_8012A024: +/* BEEB4 8012A024 A2560000 */ sb $s6, 0x0($s2) +/* BEEB8 8012A028 26520001 */ addiu $s2, $s2, 0x1 +/* BEEBC 8012A02C 0804A9EB */ j .LJP_8012A7AC +/* BEEC0 8012A030 24020009 */ addiu $v0, $zero, 0x9 +.LJP_8012A034: +/* BEEC4 8012A034 A2560000 */ sb $s6, 0x0($s2) +/* BEEC8 8012A038 26520001 */ addiu $s2, $s2, 0x1 +/* BEECC 8012A03C 0804A9EB */ j .LJP_8012A7AC +/* BEED0 8012A040 2402000A */ addiu $v0, $zero, 0xA +.LJP_8012A044: +/* BEED4 8012A044 A2560000 */ sb $s6, 0x0($s2) +/* BEED8 8012A048 26520001 */ addiu $s2, $s2, 0x1 +/* BEEDC 8012A04C 0804A9EB */ j .LJP_8012A7AC +/* BEEE0 8012A050 2402000B */ addiu $v0, $zero, 0xB +.LJP_8012A054: +/* BEEE4 8012A054 A2560000 */ sb $s6, 0x0($s2) +/* BEEE8 8012A058 26520001 */ addiu $s2, $s2, 0x1 +/* BEEEC 8012A05C 0804A9EB */ j .LJP_8012A7AC +/* BEEF0 8012A060 2402000C */ addiu $v0, $zero, 0xC +.LJP_8012A064: +/* BEEF4 8012A064 A2560000 */ sb $s6, 0x0($s2) +/* BEEF8 8012A068 26520001 */ addiu $s2, $s2, 0x1 +/* BEEFC 8012A06C 2402000E */ addiu $v0, $zero, 0xE +/* BEF00 8012A070 A2420000 */ sb $v0, 0x0($s2) +/* BEF04 8012A074 26520001 */ addiu $s2, $s2, 0x1 +/* BEF08 8012A078 92620000 */ lbu $v0, 0x0($s3) +/* BEF0C 8012A07C 26730001 */ addiu $s3, $s3, 0x1 +/* BEF10 8012A080 26B5FFFF */ addiu $s5, $s5, -0x1 +/* BEF14 8012A084 A2420000 */ sb $v0, 0x0($s2) +/* BEF18 8012A088 9282041E */ lbu $v0, 0x41E($s4) +/* BEF1C 8012A08C 26520001 */ addiu $s2, $s2, 0x1 +/* BEF20 8012A090 0804A87B */ j .LJP_8012A1EC +/* BEF24 8012A094 A682000E */ sh $v0, 0xE($s4) +.LJP_8012A098: +/* BEF28 8012A098 A2560000 */ sb $s6, 0x0($s2) +/* BEF2C 8012A09C 26520001 */ addiu $s2, $s2, 0x1 +/* BEF30 8012A0A0 2402000F */ addiu $v0, $zero, 0xF +/* BEF34 8012A0A4 A2420000 */ sb $v0, 0x0($s2) +/* BEF38 8012A0A8 26520001 */ addiu $s2, $s2, 0x1 +/* BEF3C 8012A0AC 92620000 */ lbu $v0, 0x0($s3) +/* BEF40 8012A0B0 26730001 */ addiu $s3, $s3, 0x1 +/* BEF44 8012A0B4 26B5FFFF */ addiu $s5, $s5, -0x1 +/* BEF48 8012A0B8 A2420000 */ sb $v0, 0x0($s2) +/* BEF4C 8012A0BC 26520001 */ addiu $s2, $s2, 0x1 +/* BEF50 8012A0C0 92620000 */ lbu $v0, 0x0($s3) +/* BEF54 8012A0C4 26730001 */ addiu $s3, $s3, 0x1 +/* BEF58 8012A0C8 A2420000 */ sb $v0, 0x0($s2) +/* BEF5C 8012A0CC 26520001 */ addiu $s2, $s2, 0x1 +/* BEF60 8012A0D0 92620000 */ lbu $v0, 0x0($s3) +/* BEF64 8012A0D4 26730001 */ addiu $s3, $s3, 0x1 +/* BEF68 8012A0D8 A2420000 */ sb $v0, 0x0($s2) +/* BEF6C 8012A0DC 9282041E */ lbu $v0, 0x41E($s4) +/* BEF70 8012A0E0 26520001 */ addiu $s2, $s2, 0x1 +/* BEF74 8012A0E4 0804A87B */ j .LJP_8012A1EC +/* BEF78 8012A0E8 A682000E */ sh $v0, 0xE($s4) +.LJP_8012A0EC: +/* BEF7C 8012A0EC A2560000 */ sb $s6, 0x0($s2) +/* BEF80 8012A0F0 26520001 */ addiu $s2, $s2, 0x1 +/* BEF84 8012A0F4 24020010 */ addiu $v0, $zero, 0x10 +/* BEF88 8012A0F8 A2420000 */ sb $v0, 0x0($s2) +/* BEF8C 8012A0FC 26520001 */ addiu $s2, $s2, 0x1 +/* BEF90 8012A100 92700000 */ lbu $s0, 0x0($s3) +/* BEF94 8012A104 26730001 */ addiu $s3, $s3, 0x1 +/* BEF98 8012A108 92650000 */ lbu $a1, 0x0($s3) +/* BEF9C 8012A10C 26730001 */ addiu $s3, $s3, 0x1 +/* BEFA0 8012A110 3C068016 */ lui $a2, %hi(D_80159B50) +/* BEFA4 8012A114 24C6EAD0 */ addiu $a2, $a2, %lo(D_80159B50) +/* BEFA8 8012A118 3C11001D */ lui $s1, %hi(D_1D4720) +/* BEFAC 8012A11C 26314720 */ addiu $s1, $s1, %lo(D_1D4720) +/* BEFB0 8012A120 3C018015 */ lui $at, %hi(D_8015131C) +/* BEFB4 8012A124 AC26637C */ sw $a2, %lo(D_8015131C)($at) +/* BEFB8 8012A128 00108200 */ sll $s0, $s0, 8 +/* BEFBC 8012A12C 00B08025 */ or $s0, $a1, $s0 +/* BEFC0 8012A130 00108400 */ sll $s0, $s0, 16 +/* BEFC4 8012A134 00108383 */ sra $s0, $s0, 14 +/* BEFC8 8012A138 3C028009 */ lui $v0, %hi(gItemIconRasterOffsets) +/* BEFCC 8012A13C 00501021 */ addu $v0, $v0, $s0 +/* BEFD0 8012A140 8C42E3A8 */ lw $v0, %lo(gItemIconRasterOffsets)($v0) +/* BEFD4 8012A144 26250200 */ addiu $a1, $s1, 0x200 +/* BEFD8 8012A148 00512021 */ addu $a0, $v0, $s1 +/* BEFDC 8012A14C 0C00A5BF */ jal dma_copy +/* BEFE0 8012A150 00452821 */ addu $a1, $v0, $a1 +/* BEFE4 8012A154 3C058009 */ lui $a1, %hi(gItemIconPaletteOffsets) +/* BEFE8 8012A158 00B02821 */ addu $a1, $a1, $s0 +/* BEFEC 8012A15C 8CA5E91C */ lw $a1, %lo(gItemIconPaletteOffsets)($a1) +/* BEFF0 8012A160 3C068016 */ lui $a2, %hi(D_8015C7E0) +/* BEFF4 8012A164 24C61760 */ addiu $a2, $a2, %lo(D_8015C7E0) +/* BEFF8 8012A168 00B12021 */ addu $a0, $a1, $s1 +/* BEFFC 8012A16C 26310020 */ addiu $s1, $s1, 0x20 +/* BF000 8012A170 0C00A5BF */ jal dma_copy +/* BF004 8012A174 00B12821 */ addu $a1, $a1, $s1 +/* BF008 8012A178 9282041E */ lbu $v0, 0x41E($s4) +/* BF00C 8012A17C 26B5FFFF */ addiu $s5, $s5, -0x1 +/* BF010 8012A180 0804A87B */ j .LJP_8012A1EC +/* BF014 8012A184 A682000E */ sh $v0, 0xE($s4) +.LJP_8012A188: +/* BF018 8012A188 92620000 */ lbu $v0, 0x0($s3) +/* BF01C 8012A18C 26730001 */ addiu $s3, $s3, 0x1 +/* BF020 8012A190 26B5FFFF */ addiu $s5, $s5, -0x1 +/* BF024 8012A194 A28204EB */ sb $v0, 0x4EB($s4) +/* BF028 8012A198 92700000 */ lbu $s0, 0x0($s3) +/* BF02C 8012A19C 26730001 */ addiu $s3, $s3, 0x1 +/* BF030 8012A1A0 92650000 */ lbu $a1, 0x0($s3) +/* BF034 8012A1A4 26730001 */ addiu $s3, $s3, 0x1 +/* BF038 8012A1A8 00101200 */ sll $v0, $s0, 8 +/* BF03C 8012A1AC 00A21025 */ or $v0, $a1, $v0 +/* BF040 8012A1B0 A68204EC */ sh $v0, 0x4EC($s4) +/* BF044 8012A1B4 92620000 */ lbu $v0, 0x0($s3) +/* BF048 8012A1B8 26730001 */ addiu $s3, $s3, 0x1 +/* BF04C 8012A1BC A68204EE */ sh $v0, 0x4EE($s4) +/* BF050 8012A1C0 92620000 */ lbu $v0, 0x0($s3) +/* BF054 8012A1C4 26730001 */ addiu $s3, $s3, 0x1 +/* BF058 8012A1C8 A28204F0 */ sb $v0, 0x4F0($s4) +/* BF05C 8012A1CC 92620000 */ lbu $v0, 0x0($s3) +/* BF060 8012A1D0 26730001 */ addiu $s3, $s3, 0x1 +/* BF064 8012A1D4 A28204F1 */ sb $v0, 0x4F1($s4) +/* BF068 8012A1D8 92620000 */ lbu $v0, 0x0($s3) +/* BF06C 8012A1DC 26730001 */ addiu $s3, $s3, 0x1 +/* BF070 8012A1E0 A28004F3 */ sb $zero, 0x4F3($s4) +/* BF074 8012A1E4 A68004F4 */ sh $zero, 0x4F4($s4) +/* BF078 8012A1E8 A28204F2 */ sb $v0, 0x4F2($s4) +.LJP_8012A1EC: +/* BF07C 8012A1EC 1EA00004 */ bgtz $s5, .LJP_8012A200 +/* BF080 8012A1F0 00000000 */ nop +/* BF084 8012A1F4 968204C0 */ lhu $v0, 0x4C0($s4) +/* BF088 8012A1F8 34420001 */ ori $v0, $v0, 0x1 +/* BF08C 8012A1FC A68204C0 */ sh $v0, 0x4C0($s4) +.LJP_8012A200: +/* BF090 8012A200 968304C0 */ lhu $v1, 0x4C0($s4) +/* BF094 8012A204 30620006 */ andi $v0, $v1, 0x6 +.LJP_8012A208: +/* BF098 8012A208 1040019A */ beqz $v0, .LJP_8012A874 +/* BF09C 8012A20C 3062FFFE */ andi $v0, $v1, 0xFFFE +/* BF0A0 8012A210 0804AA19 */ j .LJP_8012A864 +/* BF0A4 8012A214 A68204C0 */ sh $v0, 0x4C0($s4) +.LJP_8012A218: +/* BF0A8 8012A218 92700000 */ lbu $s0, 0x0($s3) +/* BF0AC 8012A21C 12000005 */ beqz $s0, .LJP_8012A234 +/* BF0B0 8012A220 26730001 */ addiu $s3, $s3, 0x1 +/* BF0B4 8012A224 A29704F3 */ sb $s7, 0x4F3($s4) +/* BF0B8 8012A228 A29004F2 */ sb $s0, 0x4F2($s4) +/* BF0BC 8012A22C 0804AA19 */ j .LJP_8012A864 +/* BF0C0 8012A230 A68004F4 */ sh $zero, 0x4F4($s4) +.LJP_8012A234: +/* BF0C4 8012A234 0804AA19 */ j .LJP_8012A864 +/* BF0C8 8012A238 A68004EC */ sh $zero, 0x4EC($s4) +.LJP_8012A23C: +/* BF0CC 8012A23C A2560000 */ sb $s6, 0x0($s2) +/* BF0D0 8012A240 26520001 */ addiu $s2, $s2, 0x1 +/* BF0D4 8012A244 24020011 */ addiu $v0, $zero, 0x11 +/* BF0D8 8012A248 A2420000 */ sb $v0, 0x0($s2) +/* BF0DC 8012A24C 26520001 */ addiu $s2, $s2, 0x1 +/* BF0E0 8012A250 92620000 */ lbu $v0, 0x0($s3) +/* BF0E4 8012A254 26730001 */ addiu $s3, $s3, 0x1 +/* BF0E8 8012A258 A2420000 */ sb $v0, 0x0($s2) +/* BF0EC 8012A25C 26520001 */ addiu $s2, $s2, 0x1 +/* BF0F0 8012A260 92620000 */ lbu $v0, 0x0($s3) +/* BF0F4 8012A264 26730001 */ addiu $s3, $s3, 0x1 +/* BF0F8 8012A268 A2420000 */ sb $v0, 0x0($s2) +/* BF0FC 8012A26C 26520001 */ addiu $s2, $s2, 0x1 +/* BF100 8012A270 92620000 */ lbu $v0, 0x0($s3) +/* BF104 8012A274 26730001 */ addiu $s3, $s3, 0x1 +/* BF108 8012A278 A2420000 */ sb $v0, 0x0($s2) +/* BF10C 8012A27C 968204C0 */ lhu $v0, 0x4C0($s4) +/* BF110 8012A280 26520001 */ addiu $s2, $s2, 0x1 +/* BF114 8012A284 34420004 */ ori $v0, $v0, 0x4 +/* BF118 8012A288 0804AA19 */ j .LJP_8012A864 +/* BF11C 8012A28C A68204C0 */ sh $v0, 0x4C0($s4) +.LJP_8012A290: +/* BF120 8012A290 A2560000 */ sb $s6, 0x0($s2) +/* BF124 8012A294 26520001 */ addiu $s2, $s2, 0x1 +/* BF128 8012A298 24020012 */ addiu $v0, $zero, 0x12 +/* BF12C 8012A29C A2420000 */ sb $v0, 0x0($s2) +/* BF130 8012A2A0 26520001 */ addiu $s2, $s2, 0x1 +/* BF134 8012A2A4 92620000 */ lbu $v0, 0x0($s3) +/* BF138 8012A2A8 0804A9EB */ j .LJP_8012A7AC +/* BF13C 8012A2AC 26730001 */ addiu $s3, $s3, 0x1 +.LJP_8012A2B0: +/* BF140 8012A2B0 A2560000 */ sb $s6, 0x0($s2) +/* BF144 8012A2B4 26520001 */ addiu $s2, $s2, 0x1 +/* BF148 8012A2B8 24020013 */ addiu $v0, $zero, 0x13 +/* BF14C 8012A2BC A2420000 */ sb $v0, 0x0($s2) +/* BF150 8012A2C0 26520001 */ addiu $s2, $s2, 0x1 +/* BF154 8012A2C4 92620000 */ lbu $v0, 0x0($s3) +/* BF158 8012A2C8 26730001 */ addiu $s3, $s3, 0x1 +/* BF15C 8012A2CC 26B5FFFF */ addiu $s5, $s5, -0x1 +/* BF160 8012A2D0 A2420000 */ sb $v0, 0x0($s2) +/* BF164 8012A2D4 968204C0 */ lhu $v0, 0x4C0($s4) +/* BF168 8012A2D8 26520001 */ addiu $s2, $s2, 0x1 +/* BF16C 8012A2DC 3042FFFB */ andi $v0, $v0, 0xFFFB +/* BF170 8012A2E0 1EA00160 */ bgtz $s5, .LJP_8012A864 +/* BF174 8012A2E4 A68204C0 */ sh $v0, 0x4C0($s4) +.LJP_8012A2E8: +/* BF178 8012A2E8 34420001 */ ori $v0, $v0, 0x1 +/* BF17C 8012A2EC 0804AA19 */ j .LJP_8012A864 +/* BF180 8012A2F0 A68204C0 */ sh $v0, 0x4C0($s4) +.LJP_8012A2F4: +/* BF184 8012A2F4 92700000 */ lbu $s0, 0x0($s3) +/* BF188 8012A2F8 26730001 */ addiu $s3, $s3, 0x1 +/* BF18C 8012A2FC 92650000 */ lbu $a1, 0x0($s3) +/* BF190 8012A300 26730001 */ addiu $s3, $s3, 0x1 +/* BF194 8012A304 92640000 */ lbu $a0, 0x0($s3) +/* BF198 8012A308 26730001 */ addiu $s3, $s3, 0x1 +/* BF19C 8012A30C 92660000 */ lbu $a2, 0x0($s3) +/* BF1A0 8012A310 26730001 */ addiu $s3, $s3, 0x1 +/* BF1A4 8012A314 00101040 */ sll $v0, $s0, 1 +/* BF1A8 8012A318 02821021 */ addu $v0, $s4, $v0 +/* BF1AC 8012A31C 00051A00 */ sll $v1, $a1, 8 +/* BF1B0 8012A320 00831825 */ or $v1, $a0, $v1 +/* BF1B4 8012A324 A4430490 */ sh $v1, 0x490($v0) +/* BF1B8 8012A328 30C300FF */ andi $v1, $a2, 0xFF +/* BF1BC 8012A32C 0804AA19 */ j .LJP_8012A864 +/* BF1C0 8012A330 A443049C */ sh $v1, 0x49C($v0) +.LJP_8012A334: +/* BF1C4 8012A334 A2560000 */ sb $s6, 0x0($s2) +/* BF1C8 8012A338 26520001 */ addiu $s2, $s2, 0x1 +/* BF1CC 8012A33C 0804A9EB */ j .LJP_8012A7AC +/* BF1D0 8012A340 24020014 */ addiu $v0, $zero, 0x14 +.LJP_8012A344: +/* BF1D4 8012A344 24040009 */ addiu $a0, $zero, 0x9 +/* BF1D8 8012A348 0000282D */ daddu $a1, $zero, $zero +/* BF1DC 8012A34C 00A0302D */ daddu $a2, $a1, $zero +/* BF1E0 8012A350 0C053ADA */ jal sfx_play_sound_with_params +/* BF1E4 8012A354 00A0382D */ daddu $a3, $a1, $zero +/* BF1E8 8012A358 92640000 */ lbu $a0, 0x0($s3) +/* BF1EC 8012A35C 26730001 */ addiu $s3, $s3, 0x1 +/* BF1F0 8012A360 968304C0 */ lhu $v1, 0x4C0($s4) +/* BF1F4 8012A364 24020007 */ addiu $v0, $zero, 0x7 +/* BF1F8 8012A368 A28004A9 */ sb $zero, 0x4A9($s4) +/* BF1FC 8012A36C A28004A8 */ sb $zero, 0x4A8($s4) +/* BF200 8012A370 A28004AE */ sb $zero, 0x4AE($s4) +/* BF204 8012A374 A28204B8 */ sb $v0, 0x4B8($s4) +/* BF208 8012A378 34630001 */ ori $v1, $v1, 0x1 +/* BF20C 8012A37C A284048E */ sb $a0, 0x48E($s4) +/* BF210 8012A380 0804AA19 */ j .LJP_8012A864 +/* BF214 8012A384 A68304C0 */ sh $v1, 0x4C0($s4) +.LJP_8012A388: +/* BF218 8012A388 92620000 */ lbu $v0, 0x0($s3) +/* BF21C 8012A38C 26730001 */ addiu $s3, $s3, 0x1 +/* BF220 8012A390 0804AA19 */ j .LJP_8012A864 +/* BF224 8012A394 A28204AA */ sb $v0, 0x4AA($s4) +.LJP_8012A398: +/* BF228 8012A398 A2560000 */ sb $s6, 0x0($s2) +/* BF22C 8012A39C 26520001 */ addiu $s2, $s2, 0x1 +/* BF230 8012A3A0 0804A9EB */ j .LJP_8012A7AC +/* BF234 8012A3A4 24020015 */ addiu $v0, $zero, 0x15 +.LJP_8012A3A8: +/* BF238 8012A3A8 A2560000 */ sb $s6, 0x0($s2) +/* BF23C 8012A3AC 26520001 */ addiu $s2, $s2, 0x1 +/* BF240 8012A3B0 0804A9EF */ j .LJP_8012A7BC +/* BF244 8012A3B4 24020017 */ addiu $v0, $zero, 0x17 +.LJP_8012A3B8: +/* BF248 8012A3B8 3C040010 */ lui $a0, (0x100040 >> 16) +/* BF24C 8012A3BC 34840040 */ ori $a0, $a0, (0x100040 & 0xFFFF) +/* BF250 8012A3C0 8E8204BC */ lw $v0, 0x4BC($s4) +/* BF254 8012A3C4 968304C0 */ lhu $v1, 0x4C0($s4) +/* BF258 8012A3C8 00441025 */ or $v0, $v0, $a0 +/* BF25C 8012A3CC 34630001 */ ori $v1, $v1, 0x1 +/* BF260 8012A3D0 AE8204BC */ sw $v0, 0x4BC($s4) +/* BF264 8012A3D4 A68304C0 */ sh $v1, 0x4C0($s4) +/* BF268 8012A3D8 0040182D */ daddu $v1, $v0, $zero +/* BF26C 8012A3DC 2402FF7F */ addiu $v0, $zero, -0x81 +/* BF270 8012A3E0 00621824 */ and $v1, $v1, $v0 +/* BF274 8012A3E4 2402FEFF */ addiu $v0, $zero, -0x101 +/* BF278 8012A3E8 00621824 */ and $v1, $v1, $v0 +/* BF27C 8012A3EC 0804AA19 */ j .LJP_8012A864 +/* BF280 8012A3F0 AE8304BC */ sw $v1, 0x4BC($s4) +.LJP_8012A3F4: +/* BF284 8012A3F4 A2560000 */ sb $s6, 0x0($s2) +/* BF288 8012A3F8 26520001 */ addiu $s2, $s2, 0x1 +/* BF28C 8012A3FC 0804A9EF */ j .LJP_8012A7BC +/* BF290 8012A400 24020018 */ addiu $v0, $zero, 0x18 +.LJP_8012A404: +/* BF294 8012A404 A2560000 */ sb $s6, 0x0($s2) +/* BF298 8012A408 26520001 */ addiu $s2, $s2, 0x1 +/* BF29C 8012A40C 0804A9EF */ j .LJP_8012A7BC +/* BF2A0 8012A410 24020019 */ addiu $v0, $zero, 0x19 +.LJP_8012A414: +/* BF2A4 8012A414 A2560000 */ sb $s6, 0x0($s2) +/* BF2A8 8012A418 26520001 */ addiu $s2, $s2, 0x1 +/* BF2AC 8012A41C 0804A9EF */ j .LJP_8012A7BC +/* BF2B0 8012A420 2402001A */ addiu $v0, $zero, 0x1A +.LJP_8012A424: +/* BF2B4 8012A424 A2560000 */ sb $s6, 0x0($s2) +/* BF2B8 8012A428 26520001 */ addiu $s2, $s2, 0x1 +/* BF2BC 8012A42C 0804A9EF */ j .LJP_8012A7BC +/* BF2C0 8012A430 2402001B */ addiu $v0, $zero, 0x1B +.LJP_8012A434: +/* BF2C4 8012A434 A2560000 */ sb $s6, 0x0($s2) +/* BF2C8 8012A438 26520001 */ addiu $s2, $s2, 0x1 +/* BF2CC 8012A43C 2402001C */ addiu $v0, $zero, 0x1C +/* BF2D0 8012A440 A2420000 */ sb $v0, 0x0($s2) +/* BF2D4 8012A444 26520001 */ addiu $s2, $s2, 0x1 +/* BF2D8 8012A448 92700000 */ lbu $s0, 0x0($s3) +/* BF2DC 8012A44C 320300FF */ andi $v1, $s0, 0xFF +/* BF2E0 8012A450 2C62000F */ sltiu $v0, $v1, 0xF +/* BF2E4 8012A454 10400103 */ beqz $v0, .LJP_8012A864 +/* BF2E8 8012A458 26730001 */ addiu $s3, $s3, 0x1 +/* BF2EC 8012A45C 00031080 */ sll $v0, $v1, 2 +/* BF2F0 8012A460 3C018015 */ lui $at, %hi(jtbl_JP_80155598) +/* BF2F4 8012A464 00220821 */ addu $at, $at, $v0 +/* BF2F8 8012A468 8C225598 */ lw $v0, %lo(jtbl_JP_80155598)($at) +/* BF2FC 8012A46C 00400008 */ jr $v0 +/* BF300 8012A470 00000000 */ nop +.LJP_8012A474: +/* BF304 8012A474 A2500000 */ sb $s0, 0x0($s2) +/* BF308 8012A478 0804AA19 */ j .LJP_8012A864 +/* BF30C 8012A47C 26520001 */ addiu $s2, $s2, 0x1 +.LJP_8012A480: +/* BF310 8012A480 0804A9EC */ j .LJP_8012A7B0 +/* BF314 8012A484 A2500000 */ sb $s0, 0x0($s2) +.LJP_8012A488: +/* BF318 8012A488 A2560000 */ sb $s6, 0x0($s2) +/* BF31C 8012A48C 26520001 */ addiu $s2, $s2, 0x1 +/* BF320 8012A490 0804A9EB */ j .LJP_8012A7AC +/* BF324 8012A494 2402001D */ addiu $v0, $zero, 0x1D +.LJP_8012A498: +/* BF328 8012A498 928204EA */ lbu $v0, 0x4EA($s4) +/* BF32C 8012A49C A68004E8 */ sh $zero, 0x4E8($s4) +/* BF330 8012A4A0 A2820415 */ sb $v0, 0x415($s4) +/* BF334 8012A4A4 244200F1 */ addiu $v0, $v0, 0xF1 +/* BF338 8012A4A8 A2420000 */ sb $v0, 0x0($s2) +/* BF33C 8012A4AC 0804A9A8 */ j .LJP_8012A6A0 +/* BF340 8012A4B0 26520001 */ addiu $s2, $s2, 0x1 +.LJP_8012A4B4: +/* BF344 8012A4B4 92700000 */ lbu $s0, 0x0($s3) +/* BF348 8012A4B8 968204E8 */ lhu $v0, 0x4E8($s4) +/* BF34C 8012A4BC 14400006 */ bnez $v0, .LJP_8012A4D8 +/* BF350 8012A4C0 2673FFFE */ addiu $s3, $s3, -0x2 +/* BF354 8012A4C4 92820415 */ lbu $v0, 0x415($s4) +/* BF358 8012A4C8 A28204EA */ sb $v0, 0x4EA($s4) +/* BF35C 8012A4CC 240200F1 */ addiu $v0, $zero, 0xF1 +/* BF360 8012A4D0 A2420000 */ sb $v0, 0x0($s2) +/* BF364 8012A4D4 26520001 */ addiu $s2, $s2, 0x1 +.LJP_8012A4D8: +/* BF368 8012A4D8 00108140 */ sll $s0, $s0, 5 +/* BF36C 8012A4DC 240800FF */ addiu $t0, $zero, 0xFF +/* BF370 8012A4E0 240700FD */ addiu $a3, $zero, 0xFD +/* BF374 8012A4E4 27A60010 */ addiu $a2, $sp, 0x10 +.LJP_8012A4E8: +/* BF378 8012A4E8 968204E8 */ lhu $v0, 0x4E8($s4) +/* BF37C 8012A4EC 3C098016 */ lui $t1, %hi(gMessageMsgVars) +/* BF380 8012A4F0 2529ABB0 */ addiu $t1, $t1, %lo(gMessageMsgVars) +/* BF384 8012A4F4 24430001 */ addiu $v1, $v0, 0x1 +/* BF388 8012A4F8 3042FFFF */ andi $v0, $v0, 0xFFFF +/* BF38C 8012A4FC 00501021 */ addu $v0, $v0, $s0 +/* BF390 8012A500 00491021 */ addu $v0, $v0, $t1 +/* BF394 8012A504 A68304E8 */ sh $v1, 0x4E8($s4) +/* BF398 8012A508 90450000 */ lbu $a1, 0x0($v0) +/* BF39C 8012A50C 30A300FF */ andi $v1, $a1, 0xFF +/* BF3A0 8012A510 2C6200F0 */ sltiu $v0, $v1, 0xF0 +/* BF3A4 8012A514 14400048 */ bnez $v0, .LJP_8012A638 +/* BF3A8 8012A518 24040001 */ addiu $a0, $zero, 0x1 +/* BF3AC 8012A51C 286200F7 */ slti $v0, $v1, 0xF7 +/* BF3B0 8012A520 10400007 */ beqz $v0, .LJP_8012A540 +/* BF3B4 8012A524 286200F3 */ slti $v0, $v1, 0xF3 +/* BF3B8 8012A528 10400013 */ beqz $v0, .LJP_8012A578 +/* BF3BC 8012A52C 240900F0 */ addiu $t1, $zero, 0xF0 +/* BF3C0 8012A530 10690007 */ beq $v1, $t1, .LJP_8012A550 +/* BF3C4 8012A534 00000000 */ nop +/* BF3C8 8012A538 0804A990 */ j .LJP_8012A640 +/* BF3CC 8012A53C 0000182D */ daddu $v1, $zero, $zero +.LJP_8012A540: +/* BF3D0 8012A540 50680012 */ beql $v1, $t0, .LJP_8012A58C +/* BF3D4 8012A544 A3A30010 */ sb $v1, 0x10($sp) +/* BF3D8 8012A548 0804A990 */ j .LJP_8012A640 +/* BF3DC 8012A54C 0000182D */ daddu $v1, $zero, $zero +.LJP_8012A550: +/* BF3E0 8012A550 968204E8 */ lhu $v0, 0x4E8($s4) +/* BF3E4 8012A554 3C098016 */ lui $t1, %hi(gMessageMsgVars) +/* BF3E8 8012A558 2529ABB0 */ addiu $t1, $t1, %lo(gMessageMsgVars) +/* BF3EC 8012A55C 00501021 */ addu $v0, $v0, $s0 +/* BF3F0 8012A560 00491021 */ addu $v0, $v0, $t1 +/* BF3F4 8012A564 90420000 */ lbu $v0, 0x0($v0) +/* BF3F8 8012A568 50470034 */ beql $v0, $a3, .LJP_8012A63C +/* BF3FC 8012A56C 0000202D */ daddu $a0, $zero, $zero +/* BF400 8012A570 0804A98F */ j .LJP_8012A63C +/* BF404 8012A574 A3A30010 */ sb $v1, 0x10($sp) +.LJP_8012A578: +/* BF408 8012A578 24A200FE */ addiu $v0, $a1, 0xFE +/* BF40C 8012A57C A3A20010 */ sb $v0, 0x10($sp) +/* BF410 8012A580 24A2010D */ addiu $v0, $a1, 0x10D +/* BF414 8012A584 0804A98F */ j .LJP_8012A63C +/* BF418 8012A588 A2820415 */ sb $v0, 0x415($s4) +.LJP_8012A58C: +/* BF41C 8012A58C 968204E8 */ lhu $v0, 0x4E8($s4) +/* BF420 8012A590 3C098016 */ lui $t1, %hi(gMessageMsgVars) +/* BF424 8012A594 2529ABB0 */ addiu $t1, $t1, %lo(gMessageMsgVars) +/* BF428 8012A598 24430001 */ addiu $v1, $v0, 0x1 +/* BF42C 8012A59C 3042FFFF */ andi $v0, $v0, 0xFFFF +/* BF430 8012A5A0 00501021 */ addu $v0, $v0, $s0 +/* BF434 8012A5A4 00491021 */ addu $v0, $v0, $t1 +/* BF438 8012A5A8 A68304E8 */ sh $v1, 0x4E8($s4) +/* BF43C 8012A5AC 90430000 */ lbu $v1, 0x0($v0) +/* BF440 8012A5B0 24020024 */ addiu $v0, $zero, 0x24 +/* BF444 8012A5B4 1062001A */ beq $v1, $v0, .LJP_8012A620 +/* BF448 8012A5B8 28620025 */ slti $v0, $v1, 0x25 +/* BF44C 8012A5BC 10400005 */ beqz $v0, .LJP_8012A5D4 +/* BF450 8012A5C0 24020005 */ addiu $v0, $zero, 0x5 +/* BF454 8012A5C4 10620008 */ beq $v1, $v0, .LJP_8012A5E8 +/* BF458 8012A5C8 0000182D */ daddu $v1, $zero, $zero +/* BF45C 8012A5CC 0804A990 */ j .LJP_8012A640 +/* BF460 8012A5D0 00000000 */ nop +.LJP_8012A5D4: +/* BF464 8012A5D4 24020025 */ addiu $v0, $zero, 0x25 +/* BF468 8012A5D8 10620013 */ beq $v1, $v0, .LJP_8012A628 +/* BF46C 8012A5DC 0000182D */ daddu $v1, $zero, $zero +/* BF470 8012A5E0 0804A990 */ j .LJP_8012A640 +/* BF474 8012A5E4 00000000 */ nop +.LJP_8012A5E8: +/* BF478 8012A5E8 24020004 */ addiu $v0, $zero, 0x4 +/* BF47C 8012A5EC A3A20011 */ sb $v0, 0x11($sp) +/* BF480 8012A5F0 968204E8 */ lhu $v0, 0x4E8($s4) +/* BF484 8012A5F4 3C098016 */ lui $t1, %hi(gMessageMsgVars) +/* BF488 8012A5F8 2529ABB0 */ addiu $t1, $t1, %lo(gMessageMsgVars) +/* BF48C 8012A5FC 24430001 */ addiu $v1, $v0, 0x1 +/* BF490 8012A600 3042FFFF */ andi $v0, $v0, 0xFFFF +/* BF494 8012A604 00501021 */ addu $v0, $v0, $s0 +/* BF498 8012A608 00491021 */ addu $v0, $v0, $t1 +/* BF49C 8012A60C A68304E8 */ sh $v1, 0x4E8($s4) +/* BF4A0 8012A610 90420000 */ lbu $v0, 0x0($v0) +/* BF4A4 8012A614 24040003 */ addiu $a0, $zero, 0x3 +/* BF4A8 8012A618 0804A98F */ j .LJP_8012A63C +/* BF4AC 8012A61C A3A20012 */ sb $v0, 0x12($sp) +.LJP_8012A620: +/* BF4B0 8012A620 0804A98B */ j .LJP_8012A62C +/* BF4B4 8012A624 2402001A */ addiu $v0, $zero, 0x1A +.LJP_8012A628: +/* BF4B8 8012A628 2402001B */ addiu $v0, $zero, 0x1B +.LJP_8012A62C: +/* BF4BC 8012A62C A3A20011 */ sb $v0, 0x11($sp) +/* BF4C0 8012A630 0804A98F */ j .LJP_8012A63C +/* BF4C4 8012A634 24040002 */ addiu $a0, $zero, 0x2 +.LJP_8012A638: +/* BF4C8 8012A638 A3A50010 */ sb $a1, 0x10($sp) +.LJP_8012A63C: +/* BF4CC 8012A63C 0000182D */ daddu $v1, $zero, $zero +.LJP_8012A640: +/* BF4D0 8012A640 10800009 */ beqz $a0, .LJP_8012A668 +/* BF4D4 8012A644 00000000 */ nop +.LJP_8012A648: +/* BF4D8 8012A648 26B5FFFF */ addiu $s5, $s5, -0x1 +/* BF4DC 8012A64C 00C31021 */ addu $v0, $a2, $v1 +/* BF4E0 8012A650 90420000 */ lbu $v0, 0x0($v0) +/* BF4E4 8012A654 24630001 */ addiu $v1, $v1, 0x1 +/* BF4E8 8012A658 A2420000 */ sb $v0, 0x0($s2) +/* BF4EC 8012A65C 0064102A */ slt $v0, $v1, $a0 +/* BF4F0 8012A660 1440FFF9 */ bnez $v0, .LJP_8012A648 +/* BF4F4 8012A664 26520001 */ addiu $s2, $s2, 0x1 +.LJP_8012A668: +/* BF4F8 8012A668 968204E8 */ lhu $v0, 0x4E8($s4) +/* BF4FC 8012A66C 3C098016 */ lui $t1, %hi(gMessageMsgVars) +/* BF500 8012A670 2529ABB0 */ addiu $t1, $t1, %lo(gMessageMsgVars) +/* BF504 8012A674 00501021 */ addu $v0, $v0, $s0 +/* BF508 8012A678 00491021 */ addu $v0, $v0, $t1 +/* BF50C 8012A67C 90420000 */ lbu $v0, 0x0($v0) +/* BF510 8012A680 5047FF85 */ beql $v0, $a3, .LJP_8012A498 +/* BF514 8012A684 26730003 */ addiu $s3, $s3, 0x3 +/* BF518 8012A688 968204C0 */ lhu $v0, 0x4C0($s4) +/* BF51C 8012A68C 30420006 */ andi $v0, $v0, 0x6 +/* BF520 8012A690 1440FF95 */ bnez $v0, .LJP_8012A4E8 +/* BF524 8012A694 00000000 */ nop +/* BF528 8012A698 1EA0FF93 */ bgtz $s5, .LJP_8012A4E8 +/* BF52C 8012A69C 00000000 */ nop +.LJP_8012A6A0: +/* BF530 8012A6A0 968404C0 */ lhu $a0, 0x4C0($s4) +/* BF534 8012A6A4 30820006 */ andi $v0, $a0, 0x6 +/* BF538 8012A6A8 54400066 */ bnel $v0, $zero, .LJP_8012A844 +/* BF53C 8012A6AC 0280202D */ daddu $a0, $s4, $zero +/* BF540 8012A6B0 5EA00064 */ bgtzl $s5, .LJP_8012A844 +/* BF544 8012A6B4 0280202D */ daddu $a0, $s4, $zero +/* BF548 8012A6B8 9283041E */ lbu $v1, 0x41E($s4) +/* BF54C 8012A6BC 34820001 */ ori $v0, $a0, 0x1 +/* BF550 8012A6C0 A68204C0 */ sh $v0, 0x4C0($s4) +/* BF554 8012A6C4 A683000E */ sh $v1, 0xE($s4) +/* BF558 8012A6C8 0804AA11 */ j .LJP_8012A844 +/* BF55C 8012A6CC 0280202D */ daddu $a0, $s4, $zero +.LJP_8012A6D0: +/* BF560 8012A6D0 92700000 */ lbu $s0, 0x0($s3) +/* BF564 8012A6D4 3C04802E */ lui $a0, %hi(D_802E676C) +/* BF568 8012A6D8 2484676C */ addiu $a0, $a0, %lo(D_802E676C) +/* BF56C 8012A6DC 320300FF */ andi $v1, $s0, 0xFF +/* BF570 8012A6E0 00031040 */ sll $v0, $v1, 1 +/* BF574 8012A6E4 00431021 */ addu $v0, $v0, $v1 +/* BF578 8012A6E8 00021080 */ sll $v0, $v0, 2 +/* BF57C 8012A6EC 00441021 */ addu $v0, $v0, $a0 +/* BF580 8012A6F0 A29004D8 */ sb $s0, 0x4D8($s4) +/* BF584 8012A6F4 8C430000 */ lw $v1, 0x0($v0) +/* BF588 8012A6F8 AE8304E0 */ sw $v1, 0x4E0($s4) +/* BF58C 8012A6FC 8C430004 */ lw $v1, 0x4($v0) +/* BF590 8012A700 AE8304E4 */ sw $v1, 0x4E4($s4) +/* BF594 8012A704 9442000A */ lhu $v0, 0xA($v0) +/* BF598 8012A708 26730001 */ addiu $s3, $s3, 0x1 +/* BF59C 8012A70C 0804AA19 */ j .LJP_8012A864 +/* BF5A0 8012A710 A68204DC */ sh $v0, 0x4DC($s4) +.LJP_8012A714: +/* BF5A4 8012A714 92620000 */ lbu $v0, 0x0($s3) +/* BF5A8 8012A718 26730001 */ addiu $s3, $s3, 0x1 +/* BF5AC 8012A71C 0804AA19 */ j .LJP_8012A864 +/* BF5B0 8012A720 A28204D9 */ sb $v0, 0x4D9($s4) +.LJP_8012A724: +/* BF5B4 8012A724 92700000 */ lbu $s0, 0x0($s3) +/* BF5B8 8012A728 26730001 */ addiu $s3, $s3, 0x1 +/* BF5BC 8012A72C 92650000 */ lbu $a1, 0x0($s3) +/* BF5C0 8012A730 26730001 */ addiu $s3, $s3, 0x1 +/* BF5C4 8012A734 92640000 */ lbu $a0, 0x0($s3) +/* BF5C8 8012A738 26730001 */ addiu $s3, $s3, 0x1 +/* BF5CC 8012A73C 92660000 */ lbu $a2, 0x0($s3) +/* BF5D0 8012A740 26730001 */ addiu $s3, $s3, 0x1 +/* BF5D4 8012A744 00101600 */ sll $v0, $s0, 24 +/* BF5D8 8012A748 00051C00 */ sll $v1, $a1, 16 +/* BF5DC 8012A74C 00431021 */ addu $v0, $v0, $v1 +/* BF5E0 8012A750 00041A00 */ sll $v1, $a0, 8 +/* BF5E4 8012A754 00431021 */ addu $v0, $v0, $v1 +/* BF5E8 8012A758 00C21025 */ or $v0, $a2, $v0 +/* BF5EC 8012A75C AE8204E0 */ sw $v0, 0x4E0($s4) +/* BF5F0 8012A760 92700000 */ lbu $s0, 0x0($s3) +/* BF5F4 8012A764 26730001 */ addiu $s3, $s3, 0x1 +/* BF5F8 8012A768 92650000 */ lbu $a1, 0x0($s3) +/* BF5FC 8012A76C 26730001 */ addiu $s3, $s3, 0x1 +/* BF600 8012A770 92640000 */ lbu $a0, 0x0($s3) +/* BF604 8012A774 26730001 */ addiu $s3, $s3, 0x1 +/* BF608 8012A778 92660000 */ lbu $a2, 0x0($s3) +/* BF60C 8012A77C 26730001 */ addiu $s3, $s3, 0x1 +/* BF610 8012A780 00101600 */ sll $v0, $s0, 24 +/* BF614 8012A784 00051C00 */ sll $v1, $a1, 16 +/* BF618 8012A788 00431021 */ addu $v0, $v0, $v1 +/* BF61C 8012A78C 00041A00 */ sll $v1, $a0, 8 +/* BF620 8012A790 00431021 */ addu $v0, $v0, $v1 +/* BF624 8012A794 00C21025 */ or $v0, $a2, $v0 +/* BF628 8012A798 0804AA19 */ j .LJP_8012A864 +/* BF62C 8012A79C AE8204E4 */ sw $v0, 0x4E4($s4) +.LJP_8012A7A0: +/* BF630 8012A7A0 A2560000 */ sb $s6, 0x0($s2) +/* BF634 8012A7A4 26520001 */ addiu $s2, $s2, 0x1 +/* BF638 8012A7A8 2402001E */ addiu $v0, $zero, 0x1E +.LJP_8012A7AC: +/* BF63C 8012A7AC A2420000 */ sb $v0, 0x0($s2) +.LJP_8012A7B0: +/* BF640 8012A7B0 26520001 */ addiu $s2, $s2, 0x1 +/* BF644 8012A7B4 92620000 */ lbu $v0, 0x0($s3) +/* BF648 8012A7B8 26730001 */ addiu $s3, $s3, 0x1 +.LJP_8012A7BC: +/* BF64C 8012A7BC A2420000 */ sb $v0, 0x0($s2) +/* BF650 8012A7C0 0804AA19 */ j .LJP_8012A864 +/* BF654 8012A7C4 26520001 */ addiu $s2, $s2, 0x1 +.LJP_8012A7C8: +/* BF658 8012A7C8 92620000 */ lbu $v0, 0x0($s3) +/* BF65C 8012A7CC 10400005 */ beqz $v0, .LJP_8012A7E4 +/* BF660 8012A7D0 26730001 */ addiu $s3, $s3, 0x1 +/* BF664 8012A7D4 8E8204BC */ lw $v0, 0x4BC($s4) +/* BF668 8012A7D8 3C030004 */ lui $v1, (0x40000 >> 16) +/* BF66C 8012A7DC 0804AA18 */ j .LJP_8012A860 +/* BF670 8012A7E0 00431025 */ or $v0, $v0, $v1 +.LJP_8012A7E4: +/* BF674 8012A7E4 3C03FFFB */ lui $v1, (0xFFFBFFFF >> 16) +/* BF678 8012A7E8 8E8204BC */ lw $v0, 0x4BC($s4) +/* BF67C 8012A7EC 3463FFFF */ ori $v1, $v1, (0xFFFBFFFF & 0xFFFF) +/* BF680 8012A7F0 0804AA18 */ j .LJP_8012A860 +/* BF684 8012A7F4 00431024 */ and $v0, $v0, $v1 +.LJP_8012A7F8: +/* BF688 8012A7F8 8E8204BC */ lw $v0, 0x4BC($s4) +/* BF68C 8012A7FC 3C030008 */ lui $v1, (0x80000 >> 16) +/* BF690 8012A800 0804AA18 */ j .LJP_8012A860 +/* BF694 8012A804 00431025 */ or $v0, $v0, $v1 +.LJP_8012A808: +/* BF698 8012A808 A2450000 */ sb $a1, 0x0($s2) +/* BF69C 8012A80C 26520001 */ addiu $s2, $s2, 0x1 +/* BF6A0 8012A810 92820415 */ lbu $v0, 0x415($s4) +/* BF6A4 8012A814 14400009 */ bnez $v0, .LJP_8012A83C +/* BF6A8 8012A818 26B5FFFF */ addiu $s5, $s5, -0x1 +/* BF6AC 8012A81C 30A300FF */ andi $v1, $a1, 0xFF +/* BF6B0 8012A820 240200C3 */ addiu $v0, $zero, 0xC3 +/* BF6B4 8012A824 14620006 */ bne $v1, $v0, .LJP_8012A840 +/* BF6B8 8012A828 0280202D */ daddu $a0, $s4, $zero +/* BF6BC 8012A82C 8E8204BC */ lw $v0, 0x4BC($s4) +/* BF6C0 8012A830 2403FF7F */ addiu $v1, $zero, -0x81 +/* BF6C4 8012A834 0804AA18 */ j .LJP_8012A860 +/* BF6C8 8012A838 00431024 */ and $v0, $v0, $v1 +.LJP_8012A83C: +/* BF6CC 8012A83C 0280202D */ daddu $a0, $s4, $zero +.LJP_8012A840: +/* BF6D0 8012A840 30A500FF */ andi $a1, $a1, 0xFF +.LJP_8012A844: +/* BF6D4 8012A844 0C04A5B5 */ jal msg_play_speech_sound +/* BF6D8 8012A848 00000000 */ nop +/* BF6DC 8012A84C 8E8304BC */ lw $v1, 0x4BC($s4) +/* BF6E0 8012A850 3C020080 */ lui $v0, (0x800000 >> 16) +/* BF6E4 8012A854 00621024 */ and $v0, $v1, $v0 +/* BF6E8 8012A858 10400002 */ beqz $v0, .LJP_8012A864 +/* BF6EC 8012A85C 34620080 */ ori $v0, $v1, 0x80 +.LJP_8012A860: +/* BF6F0 8012A860 AE8204BC */ sw $v0, 0x4BC($s4) +.LJP_8012A864: +/* BF6F4 8012A864 968204C0 */ lhu $v0, 0x4C0($s4) +/* BF6F8 8012A868 30420006 */ andi $v0, $v0, 0x6 +/* BF6FC 8012A86C 14400008 */ bnez $v0, .LJP_8012A890 +/* BF700 8012A870 00000000 */ nop +.LJP_8012A874: +/* BF704 8012A874 1EA00006 */ bgtz $s5, .LJP_8012A890 +/* BF708 8012A878 00000000 */ nop +/* BF70C 8012A87C 968204C0 */ lhu $v0, 0x4C0($s4) +/* BF710 8012A880 9283041E */ lbu $v1, 0x41E($s4) +/* BF714 8012A884 34420001 */ ori $v0, $v0, 0x1 +/* BF718 8012A888 A68204C0 */ sh $v0, 0x4C0($s4) +/* BF71C 8012A88C A683000E */ sh $v1, 0xE($s4) +.LJP_8012A890: +/* BF720 8012A890 968204C0 */ lhu $v0, 0x4C0($s4) +/* BF724 8012A894 30420001 */ andi $v0, $v0, 0x1 +/* BF728 8012A898 1040FBF5 */ beqz $v0, .LJP_80129870 +/* BF72C 8012A89C 00000000 */ nop +/* BF730 8012A8A0 13C00004 */ beqz $fp, .LJP_8012A8B4 +/* BF734 8012A8A4 240200FD */ addiu $v0, $zero, 0xFD +/* BF738 8012A8A8 9263FFFF */ lbu $v1, -0x1($s3) +/* BF73C 8012A8AC 1462FBF0 */ bne $v1, $v0, .LJP_80129870 +/* BF740 8012A8B0 24152710 */ addiu $s5, $zero, 0x2710 +.LJP_8012A8B4: +/* BF744 8012A8B4 2642FFF0 */ addiu $v0, $s2, -0x10 +/* BF748 8012A8B8 8E830000 */ lw $v1, 0x0($s4) +/* BF74C 8012A8BC 00541023 */ subu $v0, $v0, $s4 +/* BF750 8012A8C0 A6820004 */ sh $v0, 0x4($s4) +/* BF754 8012A8C4 240200FB */ addiu $v0, $zero, 0xFB +/* BF758 8012A8C8 A68004C0 */ sh $zero, 0x4C0($s4) +/* BF75C 8012A8CC 02631823 */ subu $v1, $s3, $v1 +/* BF760 8012A8D0 A683000C */ sh $v1, 0xC($s4) +/* BF764 8012A8D4 A2420000 */ sb $v0, 0x0($s2) +/* BF768 8012A8D8 8FBF0044 */ lw $ra, 0x44($sp) +/* BF76C 8012A8DC 8FBE0040 */ lw $fp, 0x40($sp) +/* BF770 8012A8E0 8FB7003C */ lw $s7, 0x3C($sp) +/* BF774 8012A8E4 8FB60038 */ lw $s6, 0x38($sp) +/* BF778 8012A8E8 8FB50034 */ lw $s5, 0x34($sp) +/* BF77C 8012A8EC 8FB40030 */ lw $s4, 0x30($sp) +/* BF780 8012A8F0 8FB3002C */ lw $s3, 0x2C($sp) +/* BF784 8012A8F4 8FB20028 */ lw $s2, 0x28($sp) +/* BF788 8012A8F8 8FB10024 */ lw $s1, 0x24($sp) +/* BF78C 8012A8FC 8FB00020 */ lw $s0, 0x20($sp) +/* BF790 8012A900 03E00008 */ jr $ra +/* BF794 8012A904 27BD0048 */ addiu $sp, $sp, 0x48 +.size msg_copy_to_print_buffer, . - msg_copy_to_print_buffer diff --git a/ver/jp/asm/nonmatchings/msg_draw/appendGfx_message.s b/ver/jp/asm/nonmatchings/msg_draw/appendGfx_message.s new file mode 100644 index 00000000000..1fc7cc39df8 --- /dev/null +++ b/ver/jp/asm/nonmatchings/msg_draw/appendGfx_message.s @@ -0,0 +1,4885 @@ +.set noat /* allow manual use of $at */ +.set noreorder /* don't insert nops after branches */ + +.section .rodata +.align 3 +dlabel jtbl_JP_80155790 +/* EA620 80155790 8012D1CC */ .word .LJP_8012D1CC +/* EA624 80155794 8012D238 */ .word .LJP_8012D238 +/* EA628 80155798 8012D238 */ .word .LJP_8012D238 +/* EA62C 8015579C 8012D238 */ .word .LJP_8012D238 +/* EA630 801557A0 8012D238 */ .word .LJP_8012D238 +/* EA634 801557A4 8012D264 */ .word .LJP_8012D264 +/* EA638 801557A8 8012D264 */ .word .LJP_8012D264 +/* EA63C 801557AC 8012D264 */ .word .LJP_8012D264 +/* EA640 801557B0 8012D29C */ .word .LJP_8012D29C +/* EA644 801557B4 8012F868 */ .word .LJP_8012F868 +/* EA648 801557B8 8012EC80 */ .word .LJP_8012EC80 +/* EA64C 801557BC 8012ED9C */ .word .LJP_8012ED9C +/* EA650 801557C0 8012FD00 */ .word .LJP_8012FD00 +/* EA654 801557C4 8012FD00 */ .word .LJP_8012FD00 +/* EA658 801557C8 8012FD00 */ .word .LJP_8012FD00 +/* EA65C 801557CC 8012EDA8 */ .word .LJP_8012EDA8 +.size jtbl_JP_80155790, . - jtbl_JP_80155790 + +.align 3 +dlabel jtbl_JP_801557D0 +/* EA660 801557D0 8012D2D8 */ .word .LJP_8012D2D8 +/* EA664 801557D4 8012D2D8 */ .word .LJP_8012D2D8 +/* EA668 801557D8 8012D2D8 */ .word .LJP_8012D2D8 +/* EA66C 801557DC 8012D2D8 */ .word .LJP_8012D2D8 +/* EA670 801557E0 8012DB24 */ .word .LJP_8012DB24 +/* EA674 801557E4 8012DED0 */ .word .LJP_8012DED0 +/* EA678 801557E8 8012E0DC */ .word .LJP_8012E0DC +/* EA67C 801557EC 8012E0DC */ .word .LJP_8012E0DC +/* EA680 801557F0 8012E894 */ .word .LJP_8012E894 +/* EA684 801557F4 8012EB00 */ .word .LJP_8012EB00 +/* EA688 801557F8 8012EB00 */ .word .LJP_8012EB00 +/* EA68C 801557FC 8012DED0 */ .word .LJP_8012DED0 +/* EA690 80155800 8012DED0 */ .word .LJP_8012DED0 +/* EA694 80155804 8012EBE8 */ .word .LJP_8012EBE8 +/* EA698 80155808 8012DED0 */ .word .LJP_8012DED0 +/* EA69C 8015580C 00000000 */ .word 0x00000000 +.size jtbl_JP_801557D0, . - jtbl_JP_801557D0 + +dlabel D_JP_80155810 +/* EA6A0 80155810 3FD6666666666666 */ .double 0.349999999999999978 +.size D_JP_80155810, . - D_JP_80155810 + +dlabel D_JP_80155818 +/* EA6A8 80155818 3FC1111111111111 */ .double 0.133333333333333331 +.size D_JP_80155818, . - D_JP_80155818 + +dlabel D_JP_80155820 +/* EA6B0 80155820 3FC999999999999A */ .double 0.200000000000000011 +.size D_JP_80155820, . - D_JP_80155820 + +dlabel D_JP_80155828 +/* EA6B8 80155828 406FE00000000000 */ .double 255 +.size D_JP_80155828, . - D_JP_80155828 + +dlabel D_JP_80155830 +/* EA6C0 80155830 3FE3333333333333 */ .double 0.599999999999999978 +.size D_JP_80155830, . - D_JP_80155830 + +dlabel D_JP_80155838 +/* EA6C8 80155838 3FE3333333333333 */ .double 0.599999999999999978 +.size D_JP_80155838, . - D_JP_80155838 + +.align 3 +dlabel jtbl_JP_80155840 +/* EA6D0 80155840 8012EDE8 */ .word .LJP_8012EDE8 +/* EA6D4 80155844 8012EE20 */ .word .LJP_8012EE20 +/* EA6D8 80155848 801310E8 */ .word .LJP_801310E8 +/* EA6DC 8015584C 801310E8 */ .word .LJP_801310E8 +/* EA6E0 80155850 8012EE4C */ .word .LJP_8012EE4C +/* EA6E4 80155854 8012EE84 */ .word .LJP_8012EE84 +/* EA6E8 80155858 8012EEA4 */ .word .LJP_8012EEA4 +/* EA6EC 8015585C 8012EFDC */ .word .LJP_8012EFDC +/* EA6F0 80155860 8012F028 */ .word .LJP_8012F028 +/* EA6F4 80155864 8012F060 */ .word .LJP_8012F060 +/* EA6F8 80155868 8012F084 */ .word .LJP_8012F084 +/* EA6FC 8015586C 8012F0B8 */ .word .LJP_8012F0B8 +/* EA700 80155870 8012F0E4 */ .word .LJP_8012F0E4 +/* EA704 80155874 801310E8 */ .word .LJP_801310E8 +/* EA708 80155878 8012F118 */ .word .LJP_8012F118 +/* EA70C 8015587C 8012F26C */ .word .LJP_8012F26C +/* EA710 80155880 8012F3C0 */ .word .LJP_8012F3C0 +/* EA714 80155884 8012F4F4 */ .word .LJP_8012F4F4 +/* EA718 80155888 8012F6F0 */ .word .LJP_8012F6F0 +/* EA71C 8015588C 8012FCE8 */ .word .LJP_8012FCE8 +/* EA720 80155890 8012F708 */ .word .LJP_8012F708 +/* EA724 80155894 8012F784 */ .word .LJP_8012F784 +/* EA728 80155898 8012F7D8 */ .word .LJP_8012F7D8 +/* EA72C 8015589C 8012F7F8 */ .word .LJP_8012F7F8 +/* EA730 801558A0 8012F808 */ .word .LJP_8012F808 +/* EA734 801558A4 8012F830 */ .word .LJP_8012F830 +/* EA738 801558A8 8012F858 */ .word .LJP_8012F858 +/* EA73C 801558AC 8012F880 */ .word .LJP_8012F880 +/* EA740 801558B0 8012F8A0 */ .word .LJP_8012F8A0 +/* EA744 801558B4 8012FB04 */ .word .LJP_8012FB04 +/* EA748 801558B8 8012FC7C */ .word .LJP_8012FC7C +/* EA74C 801558BC 00000000 */ .word 0x00000000 +.size jtbl_JP_80155840, . - jtbl_JP_80155840 + +dlabel D_JP_801558C0 +/* EA750 801558C0 3FE6666666666666 */ .double 0.699999999999999956 +.size D_JP_801558C0, . - D_JP_801558C0 + +dlabel D_JP_801558C8 +/* EA758 801558C8 3FE6666666666666 */ .double 0.699999999999999956 +.size D_JP_801558C8, . - D_JP_801558C8 + +dlabel D_JP_801558D0 +/* EA760 801558D0 3FE6666666666666 */ .double 0.699999999999999956 +.size D_JP_801558D0, . - D_JP_801558D0 + +.align 3 +dlabel jtbl_JP_801558D8 +/* EA768 801558D8 8012F8D8 */ .word .LJP_8012F8D8 +/* EA76C 801558DC 8012F8F0 */ .word .LJP_8012F8F0 +/* EA770 801558E0 8012F908 */ .word .LJP_8012F908 +/* EA774 801558E4 8012F950 */ .word .LJP_8012F950 +/* EA778 801558E8 801310E8 */ .word .LJP_801310E8 +/* EA77C 801558EC 8012F9D8 */ .word .LJP_8012F9D8 +/* EA780 801558F0 8012FA08 */ .word .LJP_8012FA08 +/* EA784 801558F4 8012FA20 */ .word .LJP_8012FA20 +/* EA788 801558F8 8012FA50 */ .word .LJP_8012FA50 +/* EA78C 801558FC 8012FA68 */ .word .LJP_8012FA68 +/* EA790 80155900 8012FA80 */ .word .LJP_8012FA80 +/* EA794 80155904 8012FA98 */ .word .LJP_8012FA98 +/* EA798 80155908 8012FAB0 */ .word .LJP_8012FAB0 +/* EA79C 8015590C 8012FAC8 */ .word .LJP_8012FAC8 +/* EA7A0 80155910 8012FAE0 */ .word .LJP_8012FAE0 +/* EA7A4 80155914 00000000 */ .word 0x00000000 +.size jtbl_JP_801558D8, . - jtbl_JP_801558D8 + +.align 3 +dlabel jtbl_JP_80155918 +/* EA7A8 80155918 8012FB3C */ .word .LJP_8012FB3C +/* EA7AC 8015591C 8012FB50 */ .word .LJP_8012FB50 +/* EA7B0 80155920 8012FB64 */ .word .LJP_8012FB64 +/* EA7B4 80155924 8012FB78 */ .word .LJP_8012FB78 +/* EA7B8 80155928 8012FCE8 */ .word .LJP_8012FCE8 +/* EA7BC 8015592C 8012FB90 */ .word .LJP_8012FB90 +/* EA7C0 80155930 8012FBA4 */ .word .LJP_8012FBA4 +/* EA7C4 80155934 8012FBB4 */ .word .LJP_8012FBB4 +/* EA7C8 80155938 8012FBC8 */ .word .LJP_8012FBC8 +/* EA7CC 8015593C 8012FBDC */ .word .LJP_8012FBDC +/* EA7D0 80155940 8012FC04 */ .word .LJP_8012FC04 +/* EA7D4 80155944 8012FC18 */ .word .LJP_8012FC18 +/* EA7D8 80155948 8012FC2C */ .word .LJP_8012FC2C +/* EA7DC 8015594C 8012FC40 */ .word .LJP_8012FC40 +/* EA7E0 80155950 8012FC5C */ .word .LJP_8012FC5C +/* EA7E4 80155954 00000000 */ .word 0x00000000 +.size jtbl_JP_80155918, . - jtbl_JP_80155918 + +dlabel D_JP_80155958 +/* EA7E8 80155958 3FD6666666666666 */ .double 0.349999999999999978 +.size D_JP_80155958, . - D_JP_80155958 + +dlabel D_JP_80155960 +/* EA7F0 80155960 4046800000000000 */ .double 45 +.size D_JP_80155960, . - D_JP_80155960 + +dlabel D_JP_80155968 +/* EA7F8 80155968 3FF999999999999A */ .double 1.60000000000000009 +.size D_JP_80155968, . - D_JP_80155968 + +dlabel D_JP_80155970 +/* EA800 80155970 4066800000000000 */ .double 180 +.size D_JP_80155970, . - D_JP_80155970 + +dlabel D_JP_80155978 +/* EA808 80155978 4056800000000000 */ .double 90 +.size D_JP_80155978, . - D_JP_80155978 + +dlabel D_JP_80155980 +/* EA810 80155980 3FF999999999999A */ .double 1.60000000000000009 +.size D_JP_80155980, . - D_JP_80155980 + +dlabel D_JP_80155988 +/* EA818 80155988 4066800000000000 */ .double 180 +.size D_JP_80155988, . - D_JP_80155988 + +dlabel D_JP_80155990 +/* EA820 80155990 4056800000000000 */ .double 90 +.size D_JP_80155990, . - D_JP_80155990 + +dlabel D_JP_80155998 +/* EA828 80155998 406FE00000000000 */ .double 255 +.size D_JP_80155998, . - D_JP_80155998 + +dlabel D_JP_801559A0 +/* EA830 801559A0 3FFB333333333333 */ .double 1.69999999999999996 +.size D_JP_801559A0, . - D_JP_801559A0 + +dlabel D_JP_801559A8 +/* EA838 801559A8 3FF6666666666666 */ .double 1.39999999999999991 +.size D_JP_801559A8, . - D_JP_801559A8 + +dlabel D_JP_801559B0 +/* EA840 801559B0 3FF3333333333333 */ .double 1.19999999999999996 +.size D_JP_801559B0, . - D_JP_801559B0 + +dlabel D_JP_801559B8 +/* EA848 801559B8 3FD3333333333333 */ .double 0.299999999999999989 +.size D_JP_801559B8, . - D_JP_801559B8 + +.align 3 +dlabel jtbl_JP_801559C0 +/* EA850 801559C0 80130DE4 */ .word .LJP_80130DE4 +/* EA854 801559C4 80130DDC */ .word .LJP_80130DDC +/* EA858 801559C8 80130DDC */ .word .LJP_80130DDC +/* EA85C 801559CC 80130DDC */ .word .LJP_80130DDC +/* EA860 801559D0 80130DDC */ .word .LJP_80130DDC +/* EA864 801559D4 80130DDC */ .word .LJP_80130DDC +/* EA868 801559D8 80130DDC */ .word .LJP_80130DDC +/* EA86C 801559DC 80130DE4 */ .word .LJP_80130DE4 +/* EA870 801559E0 80130DDC */ .word .LJP_80130DDC +/* EA874 801559E4 80130DDC */ .word .LJP_80130DDC +/* EA878 801559E8 80130DA8 */ .word .LJP_80130DA8 +/* EA87C 801559EC 80130DDC */ .word .LJP_80130DDC +/* EA880 801559F0 80130DDC */ .word .LJP_80130DDC +/* EA884 801559F4 80130DDC */ .word .LJP_80130DDC +/* EA888 801559F8 80130DDC */ .word .LJP_80130DDC +/* EA88C 801559FC 80130DDC */ .word .LJP_80130DDC +/* EA890 80155A00 80130DE4 */ .word .LJP_80130DE4 +/* EA894 80155A04 80130DE4 */ .word .LJP_80130DE4 +/* EA898 80155A08 80130DE4 */ .word .LJP_80130DE4 +/* EA89C 80155A0C 80130DE4 */ .word .LJP_80130DE4 +/* EA8A0 80155A10 80130DE4 */ .word .LJP_80130DE4 +/* EA8A4 80155A14 80130DDC */ .word .LJP_80130DDC +/* EA8A8 80155A18 80130DDC */ .word .LJP_80130DDC +/* EA8AC 80155A1C 80130DDC */ .word .LJP_80130DDC +/* EA8B0 80155A20 80130DDC */ .word .LJP_80130DDC +/* EA8B4 80155A24 80130DDC */ .word .LJP_80130DDC +/* EA8B8 80155A28 80130DDC */ .word .LJP_80130DDC +/* EA8BC 80155A2C 80130DDC */ .word .LJP_80130DDC +/* EA8C0 80155A30 80130DDC */ .word .LJP_80130DDC +/* EA8C4 80155A34 80130DDC */ .word .LJP_80130DDC +/* EA8C8 80155A38 80130DDC */ .word .LJP_80130DDC +/* EA8CC 80155A3C 80130DDC */ .word .LJP_80130DDC +/* EA8D0 80155A40 80130DB4 */ .word .LJP_80130DB4 +/* EA8D4 80155A44 80130DDC */ .word .LJP_80130DDC +/* EA8D8 80155A48 80130DBC */ .word .LJP_80130DBC +/* EA8DC 80155A4C 80130DC8 */ .word .LJP_80130DC8 +/* EA8E0 80155A50 80130DDC */ .word .LJP_80130DDC +/* EA8E4 80155A54 80130DD0 */ .word .LJP_80130DD0 +.size jtbl_JP_801559C0, . - jtbl_JP_801559C0 + +dlabel D_JP_80155A58 +/* EA8E8 80155A58 406FE00000000000 */ .double 255 +.size D_JP_80155A58, . - D_JP_80155A58 + +dlabel D_JP_80155A60 +/* EA8F0 80155A60 406FE00000000000 */ .double 255 +.size D_JP_80155A60, . - D_JP_80155A60 + + +.section .text +/* Generated by spimdisasm 1.19.0 */ + +glabel appendGfx_message +/* C1E40 8012CFB0 27BDFEC0 */ addiu $sp, $sp, -0x140 +/* C1E44 8012CFB4 AFBE0108 */ sw $fp, 0x108($sp) +/* C1E48 8012CFB8 0080F02D */ daddu $fp, $a0, $zero +/* C1E4C 8012CFBC AFB000E8 */ sw $s0, 0xE8($sp) +/* C1E50 8012CFC0 3C108016 */ lui $s0, %hi(msg_drawState) +/* C1E54 8012CFC4 2610ACF4 */ addiu $s0, $s0, %lo(msg_drawState) +/* C1E58 8012CFC8 AFB100EC */ sw $s1, 0xEC($sp) +/* C1E5C 8012CFCC 8FB10154 */ lw $s1, 0x154($sp) +/* C1E60 8012CFD0 97B80152 */ lhu $t8, 0x152($sp) +/* C1E64 8012CFD4 3C028016 */ lui $v0, %hi(D_8015ACA0) +/* C1E68 8012CFD8 2442ACA0 */ addiu $v0, $v0, %lo(D_8015ACA0) +/* C1E6C 8012CFDC AFB200F0 */ sw $s2, 0xF0($sp) +/* C1E70 8012CFE0 93B2015B */ lbu $s2, 0x15B($sp) +/* C1E74 8012CFE4 27C30010 */ addiu $v1, $fp, 0x10 +/* C1E78 8012CFE8 AFB300F4 */ sw $s3, 0xF4($sp) +/* C1E7C 8012CFEC 3C13800A */ lui $s3, %hi(gMainGfxPos) +/* C1E80 8012CFF0 2673A64C */ addiu $s3, $s3, %lo(gMainGfxPos) +/* C1E84 8012CFF4 AFBF010C */ sw $ra, 0x10C($sp) +/* C1E88 8012CFF8 AFB70104 */ sw $s7, 0x104($sp) +/* C1E8C 8012CFFC AFB60100 */ sw $s6, 0x100($sp) +/* C1E90 8012D000 AFB500FC */ sw $s5, 0xFC($sp) +/* C1E94 8012D004 AFB400F8 */ sw $s4, 0xF8($sp) +/* C1E98 8012D008 F7BE0138 */ sdc1 $f30, 0x138($sp) +/* C1E9C 8012D00C F7BC0130 */ sdc1 $f28, 0x130($sp) +/* C1EA0 8012D010 F7BA0128 */ sdc1 $f26, 0x128($sp) +/* C1EA4 8012D014 F7B80120 */ sdc1 $f24, 0x120($sp) +/* C1EA8 8012D018 F7B60118 */ sdc1 $f22, 0x118($sp) +/* C1EAC 8012D01C F7B40110 */ sdc1 $f20, 0x110($sp) +/* C1EB0 8012D020 A7B8007E */ sh $t8, 0x7E($sp) +/* C1EB4 8012D024 AE020000 */ sw $v0, 0x0($s0) +/* C1EB8 8012D028 AC43004C */ sw $v1, 0x4C($v0) +/* C1EBC 8012D02C A4400034 */ sh $zero, 0x34($v0) +/* C1EC0 8012D030 A7A50066 */ sh $a1, 0x66($sp) +/* C1EC4 8012D034 A7A6006E */ sh $a2, 0x6E($sp) +/* C1EC8 8012D038 8E630000 */ lw $v1, 0x0($s3) +/* C1ECC 8012D03C 3C028015 */ lui $v0, %hi(D_80151338) +/* C1ED0 8012D040 8C426398 */ lw $v0, %lo(D_80151338)($v0) +/* C1ED4 8012D044 10620003 */ beq $v1, $v0, .LJP_8012D054 +/* C1ED8 8012D048 A7A70076 */ sh $a3, 0x76($sp) +/* C1EDC 8012D04C 0C04C516 */ jal msg_reset_gfx_state +/* C1EE0 8012D050 00000000 */ nop +.LJP_8012D054: +/* C1EE4 8012D054 8E040000 */ lw $a0, 0x0($s0) +/* C1EE8 8012D058 94820034 */ lhu $v0, 0x34($a0) +/* C1EEC 8012D05C 241900FF */ addiu $t9, $zero, 0xFF +/* C1EF0 8012D060 A7B9008E */ sh $t9, 0x8E($sp) +/* C1EF4 8012D064 34420101 */ ori $v0, $v0, 0x101 +/* C1EF8 8012D068 A4820034 */ sh $v0, 0x34($a0) +/* C1EFC 8012D06C 32220001 */ andi $v0, $s1, 0x1 +/* C1F00 8012D070 10400003 */ beqz $v0, .LJP_8012D080 +/* C1F04 8012D074 00000000 */ nop +/* C1F08 8012D078 325200FF */ andi $s2, $s2, 0xFF +/* C1F0C 8012D07C A7B2008E */ sh $s2, 0x8E($sp) +.LJP_8012D080: +/* C1F10 8012D080 3C013F80 */ lui $at, (0x3F800000 >> 16) +/* C1F14 8012D084 44810000 */ mtc1 $at, $f0 +/* C1F18 8012D088 2402013F */ addiu $v0, $zero, 0x13F +/* C1F1C 8012D08C A4800046 */ sh $zero, 0x46($a0) +/* C1F20 8012D090 A4800048 */ sh $zero, 0x48($a0) +/* C1F24 8012D094 AC800000 */ sw $zero, 0x0($a0) +/* C1F28 8012D098 AC800008 */ sw $zero, 0x8($a0) +/* C1F2C 8012D09C AC820004 */ sw $v0, 0x4($a0) +/* C1F30 8012D0A0 A0800029 */ sb $zero, 0x29($a0) +/* C1F34 8012D0A4 8E030000 */ lw $v1, 0x0($s0) +/* C1F38 8012D0A8 240200EF */ addiu $v0, $zero, 0xEF +/* C1F3C 8012D0AC AC82000C */ sw $v0, 0xC($a0) +/* C1F40 8012D0B0 E4800010 */ swc1 $f0, 0x10($a0) +/* C1F44 8012D0B4 E4800014 */ swc1 $f0, 0x14($a0) +/* C1F48 8012D0B8 A060002B */ sb $zero, 0x2B($v1) +/* C1F4C 8012D0BC 8E020000 */ lw $v0, 0x0($s0) +/* C1F50 8012D0C0 241800FF */ addiu $t8, $zero, 0xFF +/* C1F54 8012D0C4 A7B80096 */ sh $t8, 0x96($sp) +/* C1F58 8012D0C8 A040002C */ sb $zero, 0x2C($v0) +/* C1F5C 8012D0CC 8E020000 */ lw $v0, 0x0($s0) +/* C1F60 8012D0D0 0300C82D */ daddu $t9, $t8, $zero +/* C1F64 8012D0D4 A7B900AE */ sh $t9, 0xAE($sp) +/* C1F68 8012D0D8 A040002E */ sb $zero, 0x2E($v0) +/* C1F6C 8012D0DC 8E030000 */ lw $v1, 0x0($s0) +/* C1F70 8012D0E0 A7A000B6 */ sh $zero, 0xB6($sp) +/* C1F74 8012D0E4 AC400030 */ sw $zero, 0x30($v0) +/* C1F78 8012D0E8 A0600040 */ sb $zero, 0x40($v1) +/* C1F7C 8012D0EC 8E020000 */ lw $v0, 0x0($s0) +/* C1F80 8012D0F0 A3A000B8 */ sb $zero, 0xB8($sp) +/* C1F84 8012D0F4 A460003E */ sh $zero, 0x3E($v1) +/* C1F88 8012D0F8 A0400050 */ sb $zero, 0x50($v0) +/* C1F8C 8012D0FC 8E030000 */ lw $v1, 0x0($s0) +/* C1F90 8012D100 2418FFFF */ addiu $t8, $zero, -0x1 +/* C1F94 8012D104 A7B8009E */ sh $t8, 0x9E($sp) +/* C1F98 8012D108 A4400042 */ sh $zero, 0x42($v0) +/* C1F9C 8012D10C A4400044 */ sh $zero, 0x44($v0) +/* C1FA0 8012D110 A440003C */ sh $zero, 0x3C($v0) +/* C1FA4 8012D114 AC400038 */ sw $zero, 0x38($v0) +/* C1FA8 8012D118 32220002 */ andi $v0, $s1, 0x2 +/* C1FAC 8012D11C 10400003 */ beqz $v0, .LJP_8012D12C +/* C1FB0 8012D120 A460004A */ sh $zero, 0x4A($v1) +/* C1FB4 8012D124 24020001 */ addiu $v0, $zero, 0x1 +/* C1FB8 8012D128 A462003C */ sh $v0, 0x3C($v1) +.LJP_8012D12C: +/* C1FBC 8012D12C 32220004 */ andi $v0, $s1, 0x4 +/* C1FC0 8012D130 10400009 */ beqz $v0, .LJP_8012D158 +/* C1FC4 8012D134 3C04004F */ lui $a0, (0x4FC3BC >> 16) +/* C1FC8 8012D138 8E620000 */ lw $v0, 0x0($s3) +/* C1FCC 8012D13C 3484C3BC */ ori $a0, $a0, (0x4FC3BC & 0xFFFF) +/* C1FD0 8012D140 0040182D */ daddu $v1, $v0, $zero +/* C1FD4 8012D144 24420008 */ addiu $v0, $v0, 0x8 +/* C1FD8 8012D148 AE620000 */ sw $v0, 0x0($s3) +/* C1FDC 8012D14C 3C02ED00 */ lui $v0, (0xED000000 >> 16) +/* C1FE0 8012D150 AC620000 */ sw $v0, 0x0($v1) +/* C1FE4 8012D154 AC640004 */ sw $a0, 0x4($v1) +.LJP_8012D158: +/* C1FE8 8012D158 0260B82D */ daddu $s7, $s3, $zero +/* C1FEC 8012D15C 3C19FD48 */ lui $t9, (0xFD48000F >> 16) +/* C1FF0 8012D160 3739000F */ ori $t9, $t9, (0xFD48000F & 0xFFFF) +/* C1FF4 8012D164 3C18F548 */ lui $t8, (0xF5480400 >> 16) +/* C1FF8 8012D168 37180400 */ ori $t8, $t8, (0xF5480400 & 0xFFFF) +/* C1FFC 8012D16C AFB900C4 */ sw $t9, 0xC4($sp) +/* C2000 8012D170 3C190701 */ lui $t9, (0x7010050 >> 16) +/* C2004 8012D174 3C028016 */ lui $v0, %hi(msg_drawState) +/* C2008 8012D178 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) +/* C200C 8012D17C 37390050 */ ori $t9, $t9, (0x7010050 & 0xFFFF) +/* C2010 8012D180 A7A00080 */ sh $zero, 0x80($sp) +/* C2014 8012D184 AFB800C8 */ sw $t8, 0xC8($sp) +/* C2018 8012D188 AFB900CC */ sw $t9, 0xCC($sp) +/* C201C 8012D18C AC400020 */ sw $zero, 0x20($v0) +.LJP_8012D190: +/* C2020 8012D190 3C038016 */ lui $v1, %hi(msg_drawState) +/* C2024 8012D194 8C63ACF4 */ lw $v1, %lo(msg_drawState)($v1) +/* C2028 8012D198 8C62004C */ lw $v0, 0x4C($v1) +/* C202C 8012D19C 8C630020 */ lw $v1, 0x20($v1) +/* C2030 8012D1A0 00431021 */ addu $v0, $v0, $v1 +/* C2034 8012D1A4 90420000 */ lbu $v0, 0x0($v0) +/* C2038 8012D1A8 2443FF10 */ addiu $v1, $v0, -0xF0 +/* C203C 8012D1AC 2C620010 */ sltiu $v0, $v1, 0x10 +/* C2040 8012D1B0 10400AD3 */ beqz $v0, .LJP_8012FD00 +/* C2044 8012D1B4 00031080 */ sll $v0, $v1, 2 +/* C2048 8012D1B8 3C018015 */ lui $at, %hi(jtbl_JP_80155790) +/* C204C 8012D1BC 00220821 */ addu $at, $at, $v0 +/* C2050 8012D1C0 8C225790 */ lw $v0, %lo(jtbl_JP_80155790)($at) +/* C2054 8012D1C4 00400008 */ jr $v0 +/* C2058 8012D1C8 00000000 */ nop +.LJP_8012D1CC: +/* C205C 8012D1CC 3C048016 */ lui $a0, %hi(msg_drawState) +/* C2060 8012D1D0 8C84ACF4 */ lw $a0, %lo(msg_drawState)($a0) +/* C2064 8012D1D4 9482003C */ lhu $v0, 0x3C($a0) +/* C2068 8012D1D8 A4800042 */ sh $zero, 0x42($a0) +/* C206C 8012D1DC 00021080 */ sll $v0, $v0, 2 +/* C2070 8012D1E0 3C01802E */ lui $at, %hi(D_802E66F4) +/* C2074 8012D1E4 00220821 */ addu $at, $at, $v0 +/* C2078 8012D1E8 8C2266F4 */ lw $v0, %lo(D_802E66F4)($at) +/* C207C 8012D1EC 90420003 */ lbu $v0, 0x3($v0) +/* C2080 8012D1F0 C4800014 */ lwc1 $f0, 0x14($a0) +/* C2084 8012D1F4 44821000 */ mtc1 $v0, $f2 +/* C2088 8012D1F8 00000000 */ nop +/* C208C 8012D1FC 468010A0 */ cvt.s.w $f2, $f2 +/* C2090 8012D200 46020002 */ mul.s $f0, $f0, $f2 +/* C2094 8012D204 00000000 */ nop +/* C2098 8012D208 94850034 */ lhu $a1, 0x34($a0) +/* C209C 8012D20C 94820044 */ lhu $v0, 0x44($a0) +/* C20A0 8012D210 4600030D */ trunc.w.s $f12, $f0 +/* C20A4 8012D214 44036000 */ mfc1 $v1, $f12 +/* C20A8 8012D218 00000000 */ nop +/* C20AC 8012D21C 00431021 */ addu $v0, $v0, $v1 +/* C20B0 8012D220 A4820044 */ sh $v0, 0x44($a0) +/* C20B4 8012D224 30A20040 */ andi $v0, $a1, 0x40 +/* C20B8 8012D228 1040098F */ beqz $v0, .LJP_8012F868 +/* C20BC 8012D22C 34A20080 */ ori $v0, $a1, 0x80 +/* C20C0 8012D230 0804BE1A */ j .LJP_8012F868 +/* C20C4 8012D234 A4820034 */ sh $v0, 0x34($a0) +.LJP_8012D238: +/* C20C8 8012D238 3C048016 */ lui $a0, %hi(msg_drawState) +/* C20CC 8012D23C 8C84ACF4 */ lw $a0, %lo(msg_drawState)($a0) +/* C20D0 8012D240 8C83004C */ lw $v1, 0x4C($a0) +/* C20D4 8012D244 8C820020 */ lw $v0, 0x20($a0) +/* C20D8 8012D248 00621821 */ addu $v1, $v1, $v0 +/* C20DC 8012D24C 90630000 */ lbu $v1, 0x0($v1) +/* C20E0 8012D250 24420001 */ addiu $v0, $v0, 0x1 +/* C20E4 8012D254 AC820020 */ sw $v0, 0x20($a0) +/* C20E8 8012D258 2463FF0F */ addiu $v1, $v1, -0xF1 +/* C20EC 8012D25C 0804C43A */ j .LJP_801310E8 +/* C20F0 8012D260 A483003E */ sh $v1, 0x3E($a0) +.LJP_8012D264: +/* C20F4 8012D264 3C078016 */ lui $a3, %hi(msg_drawState) +/* C20F8 8012D268 8CE7ACF4 */ lw $a3, %lo(msg_drawState)($a3) +/* C20FC 8012D26C 8CE2004C */ lw $v0, 0x4C($a3) +/* C2100 8012D270 8CE30020 */ lw $v1, 0x20($a3) +/* C2104 8012D274 94E5003C */ lhu $a1, 0x3C($a3) +/* C2108 8012D278 94E6003E */ lhu $a2, 0x3E($a3) +/* C210C 8012D27C 00431021 */ addu $v0, $v0, $v1 +/* C2110 8012D280 90440000 */ lbu $a0, 0x0($v0) +/* C2114 8012D284 90E20040 */ lbu $v0, 0x40($a3) +/* C2118 8012D288 AFA20010 */ sw $v0, 0x10($sp) +/* C211C 8012D28C 94E20034 */ lhu $v0, 0x34($a3) +/* C2120 8012D290 AFA20014 */ sw $v0, 0x14($sp) +/* C2124 8012D294 0804C430 */ j .LJP_801310C0 +/* C2128 8012D298 8CE70010 */ lw $a3, 0x10($a3) +.LJP_8012D29C: +/* C212C 8012D29C 3C038016 */ lui $v1, %hi(msg_drawState) +/* C2130 8012D2A0 8C63ACF4 */ lw $v1, %lo(msg_drawState)($v1) +/* C2134 8012D2A4 8C620020 */ lw $v0, 0x20($v1) +/* C2138 8012D2A8 8C63004C */ lw $v1, 0x4C($v1) +/* C213C 8012D2AC 00431021 */ addu $v0, $v0, $v1 +/* C2140 8012D2B0 90420001 */ lbu $v0, 0x1($v0) +/* C2144 8012D2B4 2443FFFF */ addiu $v1, $v0, -0x1 +/* C2148 8012D2B8 2C62000F */ sltiu $v0, $v1, 0xF +/* C214C 8012D2BC 10400F8A */ beqz $v0, .LJP_801310E8 +/* C2150 8012D2C0 00031080 */ sll $v0, $v1, 2 +/* C2154 8012D2C4 3C018015 */ lui $at, %hi(jtbl_JP_801557D0) +/* C2158 8012D2C8 00220821 */ addu $at, $at, $v0 +/* C215C 8012D2CC 8C2257D0 */ lw $v0, %lo(jtbl_JP_801557D0)($at) +/* C2160 8012D2D0 00400008 */ jr $v0 +/* C2164 8012D2D4 00000000 */ nop +.LJP_8012D2D8: +/* C2168 8012D2D8 93C204B8 */ lbu $v0, 0x4B8($fp) +/* C216C 8012D2DC 24190002 */ addiu $t9, $zero, 0x2 +/* C2170 8012D2E0 14590008 */ bne $v0, $t9, .LJP_8012D304 +/* C2174 8012D2E4 00000000 */ nop +/* C2178 8012D2E8 93C204C9 */ lbu $v0, 0x4C9($fp) +/* C217C 8012D2EC 14400005 */ bnez $v0, .LJP_8012D304 +/* C2180 8012D2F0 00000000 */ nop +/* C2184 8012D2F4 97C204CA */ lhu $v0, 0x4CA($fp) +/* C2188 8012D2F8 97C304CC */ lhu $v1, 0x4CC($fp) +/* C218C 8012D2FC A7C204CE */ sh $v0, 0x4CE($fp) +/* C2190 8012D300 A7C304D0 */ sh $v1, 0x4D0($fp) +.LJP_8012D304: +/* C2194 8012D304 97C204D4 */ lhu $v0, 0x4D4($fp) +/* C2198 8012D308 3C013FE0 */ lui $at, (0x3FE00000 >> 16) +/* C219C 8012D30C 44816800 */ mtc1 $at, $f13 +/* C21A0 8012D310 44806000 */ mtc1 $zero, $f12 +/* C21A4 8012D314 97D604CE */ lhu $s6, 0x4CE($fp) +/* C21A8 8012D318 44820000 */ mtc1 $v0, $f0 +/* C21AC 8012D31C 00000000 */ nop +/* C21B0 8012D320 46800020 */ cvt.s.w $f0, $f0 +/* C21B4 8012D324 46000021 */ cvt.d.s $f0, $f0 +/* C21B8 8012D328 462C0002 */ mul.d $f0, $f0, $f12 +/* C21BC 8012D32C 00000000 */ nop +/* C21C0 8012D330 97D504D0 */ lhu $s5, 0x4D0($fp) +/* C21C4 8012D334 3C058016 */ lui $a1, %hi(msg_drawState) +/* C21C8 8012D338 8CA5ACF4 */ lw $a1, %lo(msg_drawState)($a1) +/* C21CC 8012D33C 87C3041A */ lh $v1, 0x41A($fp) +/* C21D0 8012D340 97C204D6 */ lhu $v0, 0x4D6($fp) +/* C21D4 8012D344 87C4041C */ lh $a0, 0x41C($fp) +/* C21D8 8012D348 44822000 */ mtc1 $v0, $f4 +/* C21DC 8012D34C 00000000 */ nop +/* C21E0 8012D350 46802120 */ cvt.s.w $f4, $f4 +/* C21E4 8012D354 46002121 */ cvt.d.s $f4, $f4 +/* C21E8 8012D358 462C2102 */ mul.d $f4, $f4, $f12 +/* C21EC 8012D35C 00000000 */ nop +/* C21F0 8012D360 2418000A */ addiu $t8, $zero, 0xA +/* C21F4 8012D364 94A20034 */ lhu $v0, 0x34($a1) +/* C21F8 8012D368 44831000 */ mtc1 $v1, $f2 +/* C21FC 8012D36C 00000000 */ nop +/* C2200 8012D370 468010A1 */ cvt.d.w $f2, $f2 +/* C2204 8012D374 A4B8004A */ sh $t8, 0x4A($a1) +/* C2208 8012D378 34420010 */ ori $v0, $v0, 0x10 +/* C220C 8012D37C A4A20034 */ sh $v0, 0x34($a1) +/* C2210 8012D380 93C204C8 */ lbu $v0, 0x4C8($fp) +/* C2214 8012D384 46201080 */ add.d $f2, $f2, $f0 +/* C2218 8012D388 2442FFFF */ addiu $v0, $v0, -0x1 +/* C221C 8012D38C 44840000 */ mtc1 $a0, $f0 +/* C2220 8012D390 00000000 */ nop +/* C2224 8012D394 46800021 */ cvt.d.w $f0, $f0 +/* C2228 8012D398 46240000 */ add.d $f0, $f0, $f4 +/* C222C 8012D39C 2C420003 */ sltiu $v0, $v0, 0x3 +/* C2230 8012D3A0 4620130D */ trunc.w.d $f12, $f2 +/* C2234 8012D3A4 44146000 */ mfc1 $s4, $f12 +/* C2238 8012D3A8 4620030D */ trunc.w.d $f12, $f0 +/* C223C 8012D3AC 44136000 */ mfc1 $s3, $f12 +/* C2240 8012D3B0 10400013 */ beqz $v0, .LJP_8012D400 +/* C2244 8012D3B4 241000C0 */ addiu $s0, $zero, 0xC0 +/* C2248 8012D3B8 24120020 */ addiu $s2, $zero, 0x20 +/* C224C 8012D3BC 24110040 */ addiu $s1, $zero, 0x40 +/* C2250 8012D3C0 0240102D */ daddu $v0, $s2, $zero +/* C2254 8012D3C4 A7C2041A */ sh $v0, 0x41A($fp) +/* C2258 8012D3C8 2402000D */ addiu $v0, $zero, 0xD +/* C225C 8012D3CC A7C2041C */ sh $v0, 0x41C($fp) +/* C2260 8012D3D0 24020100 */ addiu $v0, $zero, 0x100 +/* C2264 8012D3D4 A7C204D4 */ sh $v0, 0x4D4($fp) +/* C2268 8012D3D8 0220102D */ daddu $v0, $s1, $zero +/* C226C 8012D3DC A7C204D6 */ sh $v0, 0x4D6($fp) +/* C2270 8012D3E0 2402001A */ addiu $v0, $zero, 0x1A +/* C2274 8012D3E4 A4A20046 */ sh $v0, 0x46($a1) +/* C2278 8012D3E8 24020008 */ addiu $v0, $zero, 0x8 +/* C227C 8012D3EC A4A20048 */ sh $v0, 0x48($a1) +/* C2280 8012D3F0 240200FD */ addiu $v0, $zero, 0xFD +/* C2284 8012D3F4 A7C20442 */ sh $v0, 0x442($fp) +/* C2288 8012D3F8 0804B549 */ j .LJP_8012D524 +/* C228C 8012D3FC 24020038 */ addiu $v0, $zero, 0x38 +.LJP_8012D400: +/* C2290 8012D400 93C204FC */ lbu $v0, 0x4FC($fp) +/* C2294 8012D404 24190001 */ addiu $t9, $zero, 0x1 +/* C2298 8012D408 14590007 */ bne $v0, $t9, .LJP_8012D428 +/* C229C 8012D40C 24190002 */ addiu $t9, $zero, 0x2 +/* C22A0 8012D410 24120018 */ addiu $s2, $zero, 0x18 +/* C22A4 8012D414 24020012 */ addiu $v0, $zero, 0x12 +/* C22A8 8012D418 2418000A */ addiu $t8, $zero, 0xA +/* C22AC 8012D41C A4A20046 */ sh $v0, 0x46($a1) +/* C22B0 8012D420 0804B513 */ j .LJP_8012D44C +/* C22B4 8012D424 A4B80048 */ sh $t8, 0x48($a1) +.LJP_8012D428: +/* C22B8 8012D428 14590004 */ bne $v0, $t9, .LJP_8012D43C +/* C22BC 8012D42C 24120020 */ addiu $s2, $zero, 0x20 +/* C22C0 8012D430 2412001C */ addiu $s2, $zero, 0x1C +/* C22C4 8012D434 0804B510 */ j .LJP_8012D440 +/* C22C8 8012D438 24020016 */ addiu $v0, $zero, 0x16 +.LJP_8012D43C: +/* C22CC 8012D43C 2402001A */ addiu $v0, $zero, 0x1A +.LJP_8012D440: +/* C22D0 8012D440 A4A20046 */ sh $v0, 0x46($a1) +/* C22D4 8012D444 24020008 */ addiu $v0, $zero, 0x8 +/* C22D8 8012D448 A4A20048 */ sh $v0, 0x48($a1) +.LJP_8012D44C: +/* C22DC 8012D44C 97D004F8 */ lhu $s0, 0x4F8($fp) +/* C22E0 8012D450 2A020101 */ slti $v0, $s0, 0x101 +/* C22E4 8012D454 50400001 */ beql $v0, $zero, .LJP_8012D45C +/* C22E8 8012D458 24100100 */ addiu $s0, $zero, 0x100 +.LJP_8012D45C: +/* C22EC 8012D45C 2A020046 */ slti $v0, $s0, 0x46 +/* C22F0 8012D460 54400001 */ bnel $v0, $zero, .LJP_8012D468 +/* C22F4 8012D464 24100046 */ addiu $s0, $zero, 0x46 +.LJP_8012D468: +/* C22F8 8012D468 2610FFF4 */ addiu $s0, $s0, -0xC +/* C22FC 8012D46C 00121040 */ sll $v0, $s2, 1 +/* C2300 8012D470 93C304FC */ lbu $v1, 0x4FC($fp) +/* C2304 8012D474 02021021 */ addu $v0, $s0, $v0 +/* C2308 8012D478 A7C204D4 */ sh $v0, 0x4D4($fp) +/* C230C 8012D47C 00031900 */ sll $v1, $v1, 4 +/* C2310 8012D480 24710010 */ addiu $s1, $v1, 0x10 +/* C2314 8012D484 2A220041 */ slti $v0, $s1, 0x41 +/* C2318 8012D488 50400001 */ beql $v0, $zero, .LJP_8012D490 +/* C231C 8012D48C 24110040 */ addiu $s1, $zero, 0x40 +.LJP_8012D490: +/* C2320 8012D490 2A220024 */ slti $v0, $s1, 0x24 +/* C2324 8012D494 54400001 */ bnel $v0, $zero, .LJP_8012D49C +/* C2328 8012D498 24110024 */ addiu $s1, $zero, 0x24 +.LJP_8012D49C: +/* C232C 8012D49C 97C404D4 */ lhu $a0, 0x4D4($fp) +/* C2330 8012D4A0 97C204CE */ lhu $v0, 0x4CE($fp) +/* C2334 8012D4A4 00041842 */ srl $v1, $a0, 1 +/* C2338 8012D4A8 00433023 */ subu $a2, $v0, $v1 +/* C233C 8012D4AC 28C20012 */ slti $v0, $a2, 0x12 +/* C2340 8012D4B0 10400002 */ beqz $v0, .LJP_8012D4BC +/* C2344 8012D4B4 A7D104D6 */ sh $s1, 0x4D6($fp) +/* C2348 8012D4B8 24060012 */ addiu $a2, $zero, 0x12 +.LJP_8012D4BC: +/* C234C 8012D4BC 00C41021 */ addu $v0, $a2, $a0 +/* C2350 8012D4C0 2842012F */ slti $v0, $v0, 0x12F +/* C2354 8012D4C4 14400002 */ bnez $v0, .LJP_8012D4D0 +/* C2358 8012D4C8 2402012E */ addiu $v0, $zero, 0x12E +/* C235C 8012D4CC 00443023 */ subu $a2, $v0, $a0 +.LJP_8012D4D0: +/* C2360 8012D4D0 97C504D6 */ lhu $a1, 0x4D6($fp) +/* C2364 8012D4D4 97C204D0 */ lhu $v0, 0x4D0($fp) +/* C2368 8012D4D8 24A30026 */ addiu $v1, $a1, 0x26 +/* C236C 8012D4DC 00432023 */ subu $a0, $v0, $v1 +/* C2370 8012D4E0 28820014 */ slti $v0, $a0, 0x14 +/* C2374 8012D4E4 54400001 */ bnel $v0, $zero, .LJP_8012D4EC +/* C2378 8012D4E8 24040014 */ addiu $a0, $zero, 0x14 +.LJP_8012D4EC: +/* C237C 8012D4EC 00851021 */ addu $v0, $a0, $a1 +/* C2380 8012D4F0 284200AB */ slti $v0, $v0, 0xAB +/* C2384 8012D4F4 14400002 */ bnez $v0, .LJP_8012D500 +/* C2388 8012D4F8 240200AA */ addiu $v0, $zero, 0xAA +/* C238C 8012D4FC 00452023 */ subu $a0, $v0, $a1 +.LJP_8012D500: +/* C2390 8012D500 97C304D4 */ lhu $v1, 0x4D4($fp) +/* C2394 8012D504 97C204D6 */ lhu $v0, 0x4D6($fp) +/* C2398 8012D508 A7C6041A */ sh $a2, 0x41A($fp) +/* C239C 8012D50C A7C4041C */ sh $a0, 0x41C($fp) +/* C23A0 8012D510 00661821 */ addu $v1, $v1, $a2 +/* C23A4 8012D514 2463FFE2 */ addiu $v1, $v1, -0x1E +/* C23A8 8012D518 00441021 */ addu $v0, $v0, $a0 +/* C23AC 8012D51C 2442FFEE */ addiu $v0, $v0, -0x12 +/* C23B0 8012D520 A7C30442 */ sh $v1, 0x442($fp) +.LJP_8012D524: +/* C23B4 8012D524 A7C20444 */ sh $v0, 0x444($fp) +/* C23B8 8012D528 93C204B8 */ lbu $v0, 0x4B8($fp) +/* C23BC 8012D52C 2442FFF5 */ addiu $v0, $v0, -0xB +/* C23C0 8012D530 2C420002 */ sltiu $v0, $v0, 0x2 +/* C23C4 8012D534 10400004 */ beqz $v0, .LJP_8012D548 +/* C23C8 8012D538 24180001 */ addiu $t8, $zero, 0x1 +/* C23CC 8012D53C 3C028016 */ lui $v0, %hi(msg_drawState) +/* C23D0 8012D540 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) +/* C23D4 8012D544 A058002B */ sb $t8, 0x2B($v0) +.LJP_8012D548: +/* C23D8 8012D548 93C304B8 */ lbu $v1, 0x4B8($fp) +/* C23DC 8012D54C 24190002 */ addiu $t9, $zero, 0x2 +/* C23E0 8012D550 1479008A */ bne $v1, $t9, .LJP_8012D77C +/* C23E4 8012D554 24020003 */ addiu $v0, $zero, 0x3 +/* C23E8 8012D558 0000202D */ daddu $a0, $zero, $zero +/* C23EC 8012D55C 3C053D8F */ lui $a1, (0x3D8F5C29 >> 16) +/* C23F0 8012D560 34A55C29 */ ori $a1, $a1, (0x3D8F5C29 & 0xFFFF) +/* C23F4 8012D564 3C063F80 */ lui $a2, (0x3F800000 >> 16) +/* C23F8 8012D568 93C704C9 */ lbu $a3, 0x4C9($fp) +/* C23FC 8012D56C 24180007 */ addiu $t8, $zero, 0x7 +/* C2400 8012D570 0C00A8DD */ jal update_lerp +/* C2404 8012D574 AFB80010 */ sw $t8, 0x10($sp) +/* C2408 8012D578 3C053E99 */ lui $a1, (0x3E99999A >> 16) +/* C240C 8012D57C 34A5999A */ ori $a1, $a1, (0x3E99999A & 0xFFFF) +/* C2410 8012D580 3C063F80 */ lui $a2, (0x3F800000 >> 16) +/* C2414 8012D584 0000202D */ daddu $a0, $zero, $zero +/* C2418 8012D588 E7A000BC */ swc1 $f0, 0xBC($sp) +/* C241C 8012D58C 93C704C9 */ lbu $a3, 0x4C9($fp) +/* C2420 8012D590 24190007 */ addiu $t9, $zero, 0x7 +/* C2424 8012D594 0C00A8DD */ jal update_lerp +/* C2428 8012D598 AFB90010 */ sw $t9, 0x10($sp) +/* C242C 8012D59C 46000786 */ mov.s $f30, $f0 +/* C2430 8012D5A0 0000202D */ daddu $a0, $zero, $zero +/* C2434 8012D5A4 3C0542C0 */ lui $a1, (0x42C00000 >> 16) +/* C2438 8012D5A8 3C064348 */ lui $a2, (0x43480000 >> 16) +/* C243C 8012D5AC 93C704C9 */ lbu $a3, 0x4C9($fp) +/* C2440 8012D5B0 24180007 */ addiu $t8, $zero, 0x7 +/* C2444 8012D5B4 0C00A8DD */ jal update_lerp +/* C2448 8012D5B8 AFB80010 */ sw $t8, 0x10($sp) +/* C244C 8012D5BC 46000706 */ mov.s $f28, $f0 +/* C2450 8012D5C0 2404000B */ addiu $a0, $zero, 0xB +/* C2454 8012D5C4 00151400 */ sll $v0, $s5, 16 +/* C2458 8012D5C8 00021403 */ sra $v0, $v0, 16 +/* C245C 8012D5CC 44826000 */ mtc1 $v0, $f12 +/* C2460 8012D5D0 00000000 */ nop +/* C2464 8012D5D4 46806320 */ cvt.s.w $f12, $f12 +/* C2468 8012D5D8 00131400 */ sll $v0, $s3, 16 +/* C246C 8012D5DC 00021403 */ sra $v0, $v0, 16 +/* C2470 8012D5E0 44056000 */ mfc1 $a1, $f12 +/* C2474 8012D5E4 44826000 */ mtc1 $v0, $f12 +/* C2478 8012D5E8 00000000 */ nop +/* C247C 8012D5EC 46806320 */ cvt.s.w $f12, $f12 +/* C2480 8012D5F0 93C704C9 */ lbu $a3, 0x4C9($fp) +/* C2484 8012D5F4 44066000 */ mfc1 $a2, $f12 +/* C2488 8012D5F8 24180007 */ addiu $t8, $zero, 0x7 +/* C248C 8012D5FC 0C00A8DD */ jal update_lerp +/* C2490 8012D600 AFB80010 */ sw $t8, 0x10($sp) +/* C2494 8012D604 46000506 */ mov.s $f20, $f0 +/* C2498 8012D608 2404000B */ addiu $a0, $zero, 0xB +/* C249C 8012D60C 00161400 */ sll $v0, $s6, 16 +/* C24A0 8012D610 00021403 */ sra $v0, $v0, 16 +/* C24A4 8012D614 44826000 */ mtc1 $v0, $f12 +/* C24A8 8012D618 00000000 */ nop +/* C24AC 8012D61C 46806320 */ cvt.s.w $f12, $f12 +/* C24B0 8012D620 00141400 */ sll $v0, $s4, 16 +/* C24B4 8012D624 00021403 */ sra $v0, $v0, 16 +/* C24B8 8012D628 44056000 */ mfc1 $a1, $f12 +/* C24BC 8012D62C 44826000 */ mtc1 $v0, $f12 +/* C24C0 8012D630 00000000 */ nop +/* C24C4 8012D634 46806320 */ cvt.s.w $f12, $f12 +/* C24C8 8012D638 93C704C9 */ lbu $a3, 0x4C9($fp) +/* C24CC 8012D63C 44066000 */ mfc1 $a2, $f12 +/* C24D0 8012D640 24180007 */ addiu $t8, $zero, 0x7 +/* C24D4 8012D644 0C00A8DD */ jal update_lerp +/* C24D8 8012D648 AFB80010 */ sw $t8, 0x10($sp) +/* C24DC 8012D64C 97C204D4 */ lhu $v0, 0x4D4($fp) +/* C24E0 8012D650 C7AC00BC */ lwc1 $f12, 0xBC($sp) +/* C24E4 8012D654 44822000 */ mtc1 $v0, $f4 +/* C24E8 8012D658 00000000 */ nop +/* C24EC 8012D65C 46802120 */ cvt.s.w $f4, $f4 +/* C24F0 8012D660 460C2102 */ mul.s $f4, $f4, $f12 +/* C24F4 8012D664 00000000 */ nop +/* C24F8 8012D668 3C013FE0 */ lui $at, (0x3FE00000 >> 16) +/* C24FC 8012D66C 44816800 */ mtc1 $at, $f13 +/* C2500 8012D670 44806000 */ mtc1 $zero, $f12 +/* C2504 8012D674 46002121 */ cvt.d.s $f4, $f4 +/* C2508 8012D678 462C2102 */ mul.d $f4, $f4, $f12 +/* C250C 8012D67C 00000000 */ nop +/* C2510 8012D680 97C204D6 */ lhu $v0, 0x4D6($fp) +/* C2514 8012D684 44821000 */ mtc1 $v0, $f2 +/* C2518 8012D688 00000000 */ nop +/* C251C 8012D68C 468010A0 */ cvt.s.w $f2, $f2 +/* C2520 8012D690 461E1082 */ mul.s $f2, $f2, $f30 +/* C2524 8012D694 00000000 */ nop +/* C2528 8012D698 460010A1 */ cvt.d.s $f2, $f2 +/* C252C 8012D69C 462C1082 */ mul.d $f2, $f2, $f12 +/* C2530 8012D6A0 00000000 */ nop +/* C2534 8012D6A4 46000021 */ cvt.d.s $f0, $f0 +/* C2538 8012D6A8 46240001 */ sub.d $f0, $f0, $f4 +/* C253C 8012D6AC 4600A121 */ cvt.d.s $f4, $f20 +/* C2540 8012D6B0 46222101 */ sub.d $f4, $f4, $f2 +/* C2544 8012D6B4 AFB20010 */ sw $s2, 0x10($sp) +/* C2548 8012D6B8 3C014F00 */ lui $at, (0x4F000000 >> 16) +/* C254C 8012D6BC 44811000 */ mtc1 $at, $f2 +/* C2550 8012D6C0 462C0000 */ add.d $f0, $f0, $f12 +/* C2554 8012D6C4 AFB10014 */ sw $s1, 0x14($sp) +/* C2558 8012D6C8 E7BE001C */ swc1 $f30, 0x1C($sp) +/* C255C 8012D6CC 461C103E */ c.le.s $f2, $f28 +/* C2560 8012D6D0 462C2100 */ add.d $f4, $f4, $f12 +/* C2564 8012D6D4 C7AC00BC */ lwc1 $f12, 0xBC($sp) +/* C2568 8012D6D8 46200620 */ cvt.s.d $f24, $f0 +/* C256C 8012D6DC E7AC0018 */ swc1 $f12, 0x18($sp) +/* C2570 8012D6E0 4600C30D */ trunc.w.s $f12, $f24 +/* C2574 8012D6E4 44026000 */ mfc1 $v0, $f12 +/* C2578 8012D6E8 00000000 */ nop +/* C257C 8012D6EC 00021400 */ sll $v0, $v0, 16 +/* C2580 8012D6F0 00022C03 */ sra $a1, $v0, 16 +/* C2584 8012D6F4 462026A0 */ cvt.s.d $f26, $f4 +/* C2588 8012D6F8 4600D30D */ trunc.w.s $f12, $f26 +/* C258C 8012D6FC 44026000 */ mfc1 $v0, $f12 +/* C2590 8012D700 00000000 */ nop +/* C2594 8012D704 00021400 */ sll $v0, $v0, 16 +/* C2598 8012D708 00023403 */ sra $a2, $v0, 16 +/* C259C 8012D70C 00101400 */ sll $v0, $s0, 16 +/* C25A0 8012D710 45010005 */ bc1t .LJP_8012D728 +/* C25A4 8012D714 00023C03 */ sra $a3, $v0, 16 +/* C25A8 8012D718 4600E30D */ trunc.w.s $f12, $f28 +/* C25AC 8012D71C 44036000 */ mfc1 $v1, $f12 +/* C25B0 8012D720 0804B5D1 */ j .LJP_8012D744 +/* C25B4 8012D724 03C0202D */ daddu $a0, $fp, $zero +.LJP_8012D728: +/* C25B8 8012D728 4602E001 */ sub.s $f0, $f28, $f2 +/* C25BC 8012D72C 3C028000 */ lui $v0, (0x80000000 >> 16) +/* C25C0 8012D730 4600030D */ trunc.w.s $f12, $f0 +/* C25C4 8012D734 44036000 */ mfc1 $v1, $f12 +/* C25C8 8012D738 00000000 */ nop +/* C25CC 8012D73C 00621825 */ or $v1, $v1, $v0 +/* C25D0 8012D740 03C0202D */ daddu $a0, $fp, $zero +.LJP_8012D744: +/* C25D4 8012D744 306200FF */ andi $v0, $v1, 0xFF +/* C25D8 8012D748 24190001 */ addiu $t9, $zero, 0x1 +/* C25DC 8012D74C AFA20020 */ sw $v0, 0x20($sp) +/* C25E0 8012D750 0C04C760 */ jal msg_draw_speech_bubble +/* C25E4 8012D754 AFB90024 */ sw $t9, 0x24($sp) +/* C25E8 8012D758 93C204C9 */ lbu $v0, 0x4C9($fp) +/* C25EC 8012D75C 24180007 */ addiu $t8, $zero, 0x7 +/* C25F0 8012D760 24420001 */ addiu $v0, $v0, 0x1 +/* C25F4 8012D764 A3C204C9 */ sb $v0, 0x4C9($fp) +/* C25F8 8012D768 304200FF */ andi $v0, $v0, 0xFF +/* C25FC 8012D76C 145800D8 */ bne $v0, $t8, .LJP_8012DAD0 +/* C2600 8012D770 24020004 */ addiu $v0, $zero, 0x4 +/* C2604 8012D774 0804B6B4 */ j .LJP_8012DAD0 +/* C2608 8012D778 A3C204B8 */ sb $v0, 0x4B8($fp) +.LJP_8012D77C: +/* C260C 8012D77C 146200A2 */ bne $v1, $v0, .LJP_8012DA08 +/* C2610 8012D780 03C0202D */ daddu $a0, $fp, $zero +/* C2614 8012D784 0000202D */ daddu $a0, $zero, $zero +/* C2618 8012D788 3C053F80 */ lui $a1, (0x3F800000 >> 16) +/* C261C 8012D78C 93C204D2 */ lbu $v0, 0x4D2($fp) +/* C2620 8012D790 3C063F19 */ lui $a2, (0x3F19999A >> 16) +/* C2624 8012D794 34C6999A */ ori $a2, $a2, (0x3F19999A & 0xFFFF) +/* C2628 8012D798 24420001 */ addiu $v0, $v0, 0x1 +/* C262C 8012D79C A3C204D2 */ sb $v0, 0x4D2($fp) +/* C2630 8012D7A0 304700FF */ andi $a3, $v0, 0xFF +/* C2634 8012D7A4 24190005 */ addiu $t9, $zero, 0x5 +/* C2638 8012D7A8 0C00A8DD */ jal update_lerp +/* C263C 8012D7AC AFB90010 */ sw $t9, 0x10($sp) +/* C2640 8012D7B0 3C053F80 */ lui $a1, (0x3F800000 >> 16) +/* C2644 8012D7B4 3C063F4C */ lui $a2, (0x3F4CCCCD >> 16) +/* C2648 8012D7B8 34C6CCCD */ ori $a2, $a2, (0x3F4CCCCD & 0xFFFF) +/* C264C 8012D7BC 0000202D */ daddu $a0, $zero, $zero +/* C2650 8012D7C0 E7A000BC */ swc1 $f0, 0xBC($sp) +/* C2654 8012D7C4 93C704D2 */ lbu $a3, 0x4D2($fp) +/* C2658 8012D7C8 24180005 */ addiu $t8, $zero, 0x5 +/* C265C 8012D7CC 0C00A8DD */ jal update_lerp +/* C2660 8012D7D0 AFB80010 */ sw $t8, 0x10($sp) +/* C2664 8012D7D4 97C204D4 */ lhu $v0, 0x4D4($fp) +/* C2668 8012D7D8 C7AC00BC */ lwc1 $f12, 0xBC($sp) +/* C266C 8012D7DC 44821000 */ mtc1 $v0, $f2 +/* C2670 8012D7E0 00000000 */ nop +/* C2674 8012D7E4 468010A0 */ cvt.s.w $f2, $f2 +/* C2678 8012D7E8 460C1082 */ mul.s $f2, $f2, $f12 +/* C267C 8012D7EC 00000000 */ nop +/* C2680 8012D7F0 3C013FE0 */ lui $at, (0x3FE00000 >> 16) +/* C2684 8012D7F4 44816800 */ mtc1 $at, $f13 +/* C2688 8012D7F8 44806000 */ mtc1 $zero, $f12 +/* C268C 8012D7FC 460010A1 */ cvt.d.s $f2, $f2 +/* C2690 8012D800 462C1082 */ mul.d $f2, $f2, $f12 +/* C2694 8012D804 00000000 */ nop +/* C2698 8012D808 97C204D6 */ lhu $v0, 0x4D6($fp) +/* C269C 8012D80C 46000786 */ mov.s $f30, $f0 +/* C26A0 8012D810 44820000 */ mtc1 $v0, $f0 +/* C26A4 8012D814 00000000 */ nop +/* C26A8 8012D818 46800020 */ cvt.s.w $f0, $f0 +/* C26AC 8012D81C 461E0002 */ mul.s $f0, $f0, $f30 +/* C26B0 8012D820 00000000 */ nop +/* C26B4 8012D824 46000021 */ cvt.d.s $f0, $f0 +/* C26B8 8012D828 462C0002 */ mul.d $f0, $f0, $f12 +/* C26BC 8012D82C 00000000 */ nop +/* C26C0 8012D830 00141400 */ sll $v0, $s4, 16 +/* C26C4 8012D834 00021403 */ sra $v0, $v0, 16 +/* C26C8 8012D838 4482B000 */ mtc1 $v0, $f22 +/* C26CC 8012D83C 00000000 */ nop +/* C26D0 8012D840 4680B5A0 */ cvt.s.w $f22, $f22 +/* C26D4 8012D844 4600B5A1 */ cvt.d.s $f22, $f22 +/* C26D8 8012D848 4622B181 */ sub.d $f6, $f22, $f2 +/* C26DC 8012D84C 00131400 */ sll $v0, $s3, 16 +/* C26E0 8012D850 00021403 */ sra $v0, $v0, 16 +/* C26E4 8012D854 4622B580 */ add.d $f22, $f22, $f2 +/* C26E8 8012D858 4482A000 */ mtc1 $v0, $f20 +/* C26EC 8012D85C 00000000 */ nop +/* C26F0 8012D860 4680A520 */ cvt.s.w $f20, $f20 +/* C26F4 8012D864 4600A521 */ cvt.d.s $f20, $f20 +/* C26F8 8012D868 4620A101 */ sub.d $f4, $f20, $f0 +/* C26FC 8012D86C 4620A500 */ add.d $f20, $f20, $f0 +/* C2700 8012D870 462C3180 */ add.d $f6, $f6, $f12 +/* C2704 8012D874 0000202D */ daddu $a0, $zero, $zero +/* C2708 8012D878 3C05437F */ lui $a1, (0x437F0000 >> 16) +/* C270C 8012D87C 462CB581 */ sub.d $f22, $f22, $f12 +/* C2710 8012D880 3C064280 */ lui $a2, (0x42800000 >> 16) +/* C2714 8012D884 93C704D2 */ lbu $a3, 0x4D2($fp) +/* C2718 8012D888 462C2100 */ add.d $f4, $f4, $f12 +/* C271C 8012D88C 24180005 */ addiu $t8, $zero, 0x5 +/* C2720 8012D890 AFB80010 */ sw $t8, 0x10($sp) +/* C2724 8012D894 462CA501 */ sub.d $f20, $f20, $f12 +/* C2728 8012D898 46203620 */ cvt.s.d $f24, $f6 +/* C272C 8012D89C 4620B5A0 */ cvt.s.d $f22, $f22 +/* C2730 8012D8A0 462026A0 */ cvt.s.d $f26, $f4 +/* C2734 8012D8A4 0C00A8DD */ jal update_lerp +/* C2738 8012D8A8 4620A520 */ cvt.s.d $f20, $f20 +/* C273C 8012D8AC 46000706 */ mov.s $f28, $f0 +/* C2740 8012D8B0 3C018015 */ lui $at, %hi(D_JP_80155810) +/* C2744 8012D8B4 D4205810 */ ldc1 $f0, %lo(D_JP_80155810)($at) +/* C2748 8012D8B8 4600E1A1 */ cvt.d.s $f6, $f28 +/* C274C 8012D8BC 46203182 */ mul.d $f6, $f6, $f0 +/* C2750 8012D8C0 00000000 */ nop +/* C2754 8012D8C4 3C028016 */ lui $v0, %hi(msg_drawState) +/* C2758 8012D8C8 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) +/* C275C 8012D8CC 4600E30D */ trunc.w.s $f12, $f28 +/* C2760 8012D8D0 44046000 */ mfc1 $a0, $f12 +/* C2764 8012D8D4 00000000 */ nop +/* C2768 8012D8D8 A7A400AE */ sh $a0, 0xAE($sp) +/* C276C 8012D8DC 84430046 */ lh $v1, 0x46($v0) +/* C2770 8012D8E0 3C014F00 */ lui $at, (0x4F000000 >> 16) +/* C2774 8012D8E4 44814000 */ mtc1 $at, $f8 +/* C2778 8012D8E8 44831000 */ mtc1 $v1, $f2 +/* C277C 8012D8EC 00000000 */ nop +/* C2780 8012D8F0 468010A0 */ cvt.s.w $f2, $f2 +/* C2784 8012D8F4 84430048 */ lh $v1, 0x48($v0) +/* C2788 8012D8F8 4602C080 */ add.s $f2, $f24, $f2 +/* C278C 8012D8FC 44832000 */ mtc1 $v1, $f4 +/* C2790 8012D900 00000000 */ nop +/* C2794 8012D904 46802120 */ cvt.s.w $f4, $f4 +/* C2798 8012D908 84430046 */ lh $v1, 0x46($v0) +/* C279C 8012D90C 4604D100 */ add.s $f4, $f26, $f4 +/* C27A0 8012D910 44830000 */ mtc1 $v1, $f0 +/* C27A4 8012D914 00000000 */ nop +/* C27A8 8012D918 46800020 */ cvt.s.w $f0, $f0 +/* C27AC 8012D91C 84430048 */ lh $v1, 0x48($v0) +/* C27B0 8012D920 4600B581 */ sub.s $f22, $f22, $f0 +/* C27B4 8012D924 4600130D */ trunc.w.s $f12, $f2 +/* C27B8 8012D928 E44C0000 */ swc1 $f12, 0x0($v0) +/* C27BC 8012D92C 44830000 */ mtc1 $v1, $f0 +/* C27C0 8012D930 00000000 */ nop +/* C27C4 8012D934 46800020 */ cvt.s.w $f0, $f0 +/* C27C8 8012D938 4600A501 */ sub.s $f20, $f20, $f0 +/* C27CC 8012D93C 4600230D */ trunc.w.s $f12, $f4 +/* C27D0 8012D940 E44C0008 */ swc1 $f12, 0x8($v0) +/* C27D4 8012D944 4600B30D */ trunc.w.s $f12, $f22 +/* C27D8 8012D948 E44C0004 */ swc1 $f12, 0x4($v0) +/* C27DC 8012D94C 4600A30D */ trunc.w.s $f12, $f20 +/* C27E0 8012D950 E44C000C */ swc1 $f12, 0xC($v0) +/* C27E4 8012D954 C7AC00BC */ lwc1 $f12, 0xBC($sp) +/* C27E8 8012D958 461C403E */ c.le.s $f8, $f28 +/* C27EC 8012D95C AFB20010 */ sw $s2, 0x10($sp) +/* C27F0 8012D960 AFB10014 */ sw $s1, 0x14($sp) +/* C27F4 8012D964 E7BE001C */ swc1 $f30, 0x1C($sp) +/* C27F8 8012D968 E7AC0018 */ swc1 $f12, 0x18($sp) +/* C27FC 8012D96C 4620330D */ trunc.w.d $f12, $f6 +/* C2800 8012D970 44186000 */ mfc1 $t8, $f12 +/* C2804 8012D974 00000000 */ nop +/* C2808 8012D978 A7B8008E */ sh $t8, 0x8E($sp) +/* C280C 8012D97C 4600C30D */ trunc.w.s $f12, $f24 +/* C2810 8012D980 44026000 */ mfc1 $v0, $f12 +/* C2814 8012D984 00000000 */ nop +/* C2818 8012D988 00021400 */ sll $v0, $v0, 16 +/* C281C 8012D98C 00022C03 */ sra $a1, $v0, 16 +/* C2820 8012D990 4600D30D */ trunc.w.s $f12, $f26 +/* C2824 8012D994 44026000 */ mfc1 $v0, $f12 +/* C2828 8012D998 00000000 */ nop +/* C282C 8012D99C 00021400 */ sll $v0, $v0, 16 +/* C2830 8012D9A0 00023403 */ sra $a2, $v0, 16 +/* C2834 8012D9A4 00101400 */ sll $v0, $s0, 16 +/* C2838 8012D9A8 45010003 */ bc1t .LJP_8012D9B8 +/* C283C 8012D9AC 00023C03 */ sra $a3, $v0, 16 +/* C2840 8012D9B0 0804B674 */ j .LJP_8012D9D0 +/* C2844 8012D9B4 0080182D */ daddu $v1, $a0, $zero +.LJP_8012D9B8: +/* C2848 8012D9B8 4608E001 */ sub.s $f0, $f28, $f8 +/* C284C 8012D9BC 3C028000 */ lui $v0, (0x80000000 >> 16) +/* C2850 8012D9C0 4600030D */ trunc.w.s $f12, $f0 +/* C2854 8012D9C4 44036000 */ mfc1 $v1, $f12 +/* C2858 8012D9C8 00000000 */ nop +/* C285C 8012D9CC 00621825 */ or $v1, $v1, $v0 +.LJP_8012D9D0: +/* C2860 8012D9D0 03C0202D */ daddu $a0, $fp, $zero +/* C2864 8012D9D4 306200FF */ andi $v0, $v1, 0xFF +/* C2868 8012D9D8 24190001 */ addiu $t9, $zero, 0x1 +/* C286C 8012D9DC AFA20020 */ sw $v0, 0x20($sp) +/* C2870 8012D9E0 0C04C760 */ jal msg_draw_speech_bubble +/* C2874 8012D9E4 AFB90024 */ sw $t9, 0x24($sp) +/* C2878 8012D9E8 93C204D2 */ lbu $v0, 0x4D2($fp) +/* C287C 8012D9EC 2C420005 */ sltiu $v0, $v0, 0x5 +/* C2880 8012D9F0 14400037 */ bnez $v0, .LJP_8012DAD0 +/* C2884 8012D9F4 00000000 */ nop +/* C2888 8012D9F8 8FC204BC */ lw $v0, 0x4BC($fp) +/* C288C 8012D9FC 34420001 */ ori $v0, $v0, 0x1 +/* C2890 8012DA00 0804B6B4 */ j .LJP_8012DAD0 +/* C2894 8012DA04 AFC204BC */ sw $v0, 0x4BC($fp) +.LJP_8012DA08: +/* C2898 8012DA08 00103C00 */ sll $a3, $s0, 16 +/* C289C 8012DA0C 87C3041A */ lh $v1, 0x41A($fp) +/* C28A0 8012DA10 87C5041C */ lh $a1, 0x41C($fp) +/* C28A4 8012DA14 3C013F80 */ lui $at, (0x3F800000 >> 16) +/* C28A8 8012DA18 44816000 */ mtc1 $at, $f12 +/* C28AC 8012DA1C 241800FF */ addiu $t8, $zero, 0xFF +/* C28B0 8012DA20 AFB80020 */ sw $t8, 0x20($sp) +/* C28B4 8012DA24 97B80066 */ lhu $t8, 0x66($sp) +/* C28B8 8012DA28 24190001 */ addiu $t9, $zero, 0x1 +/* C28BC 8012DA2C AFB90024 */ sw $t9, 0x24($sp) +/* C28C0 8012DA30 97B9006E */ lhu $t9, 0x6E($sp) +/* C28C4 8012DA34 00073C03 */ sra $a3, $a3, 16 +/* C28C8 8012DA38 AFB20010 */ sw $s2, 0x10($sp) +/* C28CC 8012DA3C AFB10014 */ sw $s1, 0x14($sp) +/* C28D0 8012DA40 00181400 */ sll $v0, $t8, 16 +/* C28D4 8012DA44 00021403 */ sra $v0, $v0, 16 +/* C28D8 8012DA48 00431021 */ addu $v0, $v0, $v1 +/* C28DC 8012DA4C 4482C000 */ mtc1 $v0, $f24 +/* C28E0 8012DA50 00000000 */ nop +/* C28E4 8012DA54 4680C620 */ cvt.s.w $f24, $f24 +/* C28E8 8012DA58 00191400 */ sll $v0, $t9, 16 +/* C28EC 8012DA5C 00021403 */ sra $v0, $v0, 16 +/* C28F0 8012DA60 00451021 */ addu $v0, $v0, $a1 +/* C28F4 8012DA64 4482D000 */ mtc1 $v0, $f26 +/* C28F8 8012DA68 00000000 */ nop +/* C28FC 8012DA6C 4680D6A0 */ cvt.s.w $f26, $f26 +/* C2900 8012DA70 E7AC0018 */ swc1 $f12, 0x18($sp) +/* C2904 8012DA74 E7AC001C */ swc1 $f12, 0x1C($sp) +/* C2908 8012DA78 4600C30D */ trunc.w.s $f12, $f24 +/* C290C 8012DA7C 44056000 */ mfc1 $a1, $f12 +/* C2910 8012DA80 00000000 */ nop +/* C2914 8012DA84 00052C00 */ sll $a1, $a1, 16 +/* C2918 8012DA88 00052C03 */ sra $a1, $a1, 16 +/* C291C 8012DA8C 4600D30D */ trunc.w.s $f12, $f26 +/* C2920 8012DA90 44066000 */ mfc1 $a2, $f12 +/* C2924 8012DA94 00000000 */ nop +/* C2928 8012DA98 00063400 */ sll $a2, $a2, 16 +/* C292C 8012DA9C 0C04C760 */ jal msg_draw_speech_bubble +/* C2930 8012DAA0 00063403 */ sra $a2, $a2, 16 +/* C2934 8012DAA4 97C204CE */ lhu $v0, 0x4CE($fp) +/* C2938 8012DAA8 2442FFEC */ addiu $v0, $v0, -0x14 +/* C293C 8012DAAC 2C420119 */ sltiu $v0, $v0, 0x119 +/* C2940 8012DAB0 10400007 */ beqz $v0, .LJP_8012DAD0 +/* C2944 8012DAB4 00000000 */ nop +/* C2948 8012DAB8 97C204D0 */ lhu $v0, 0x4D0($fp) +/* C294C 8012DABC 2C4200DD */ sltiu $v0, $v0, 0xDD +/* C2950 8012DAC0 10400003 */ beqz $v0, .LJP_8012DAD0 +/* C2954 8012DAC4 00000000 */ nop +/* C2958 8012DAC8 0C04C955 */ jal msg_draw_speech_arrow +/* C295C 8012DACC 03C0202D */ daddu $a0, $fp, $zero +.LJP_8012DAD0: +/* C2960 8012DAD0 93C304B8 */ lbu $v1, 0x4B8($fp) +/* C2964 8012DAD4 24020003 */ addiu $v0, $zero, 0x3 +/* C2968 8012DAD8 10620465 */ beq $v1, $v0, .LJP_8012EC70 +/* C296C 8012DADC 24020014 */ addiu $v0, $zero, 0x14 +/* C2970 8012DAE0 3C048016 */ lui $a0, %hi(msg_drawState) +/* C2974 8012DAE4 8C84ACF4 */ lw $a0, %lo(msg_drawState)($a0) +/* C2978 8012DAE8 AC820000 */ sw $v0, 0x0($a0) +/* C297C 8012DAEC 87C30418 */ lh $v1, 0x418($fp) +/* C2980 8012DAF0 87C5041C */ lh $a1, 0x41C($fp) +/* C2984 8012DAF4 2402012C */ addiu $v0, $zero, 0x12C +/* C2988 8012DAF8 AC820004 */ sw $v0, 0x4($a0) +/* C298C 8012DAFC 84820048 */ lh $v0, 0x48($a0) +/* C2990 8012DB00 00651821 */ addu $v1, $v1, $a1 +/* C2994 8012DB04 00621821 */ addu $v1, $v1, $v0 +/* C2998 8012DB08 AC830008 */ sw $v1, 0x8($a0) +/* C299C 8012DB0C 97C304D6 */ lhu $v1, 0x4D6($fp) +/* C29A0 8012DB10 8C820008 */ lw $v0, 0x8($a0) +/* C29A4 8012DB14 00431021 */ addu $v0, $v0, $v1 +/* C29A8 8012DB18 2442FFF0 */ addiu $v0, $v0, -0x10 +/* C29AC 8012DB1C 0804BB1C */ j .LJP_8012EC70 +/* C29B0 8012DB20 AC82000C */ sw $v0, 0xC($a0) +.LJP_8012DB24: +/* C29B4 8012DB24 0000A82D */ daddu $s5, $zero, $zero +/* C29B8 8012DB28 97D204D4 */ lhu $s2, 0x4D4($fp) +/* C29BC 8012DB2C 97D304D6 */ lhu $s3, 0x4D6($fp) +/* C29C0 8012DB30 3C028016 */ lui $v0, %hi(msg_drawState) +/* C29C4 8012DB34 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) +/* C29C8 8012DB38 A040002B */ sb $zero, 0x2B($v0) +/* C29CC 8012DB3C 3C038016 */ lui $v1, %hi(msg_drawState) +/* C29D0 8012DB40 8C63ACF4 */ lw $v1, %lo(msg_drawState)($v1) +/* C29D4 8012DB44 2402000C */ addiu $v0, $zero, 0xC +/* C29D8 8012DB48 A4620046 */ sh $v0, 0x46($v1) +/* C29DC 8012DB4C 24020006 */ addiu $v0, $zero, 0x6 +/* C29E0 8012DB50 A4620048 */ sh $v0, 0x48($v1) +/* C29E4 8012DB54 93C304B8 */ lbu $v1, 0x4B8($fp) +/* C29E8 8012DB58 24190002 */ addiu $t9, $zero, 0x2 +/* C29EC 8012DB5C 14790078 */ bne $v1, $t9, .LJP_8012DD40 +/* C29F0 8012DB60 241400FF */ addiu $s4, $zero, 0xFF +/* C29F4 8012DB64 93C204C9 */ lbu $v0, 0x4C9($fp) +/* C29F8 8012DB68 24030006 */ addiu $v1, $zero, 0x6 +/* C29FC 8012DB6C 24420001 */ addiu $v0, $v0, 0x1 +/* C2A00 8012DB70 A3C204C9 */ sb $v0, 0x4C9($fp) +/* C2A04 8012DB74 304200FF */ andi $v0, $v0, 0xFF +/* C2A08 8012DB78 14430002 */ bne $v0, $v1, .LJP_8012DB84 +/* C2A0C 8012DB7C 24020004 */ addiu $v0, $zero, 0x4 +/* C2A10 8012DB80 A3C204B8 */ sb $v0, 0x4B8($fp) +.LJP_8012DB84: +/* C2A14 8012DB84 93C204C9 */ lbu $v0, 0x4C9($fp) +/* C2A18 8012DB88 3C018015 */ lui $at, %hi(D_JP_80155818) +/* C2A1C 8012DB8C D4225818 */ ldc1 $f2, %lo(D_JP_80155818)($at) +/* C2A20 8012DB90 44820000 */ mtc1 $v0, $f0 +/* C2A24 8012DB94 00000000 */ nop +/* C2A28 8012DB98 46800020 */ cvt.s.w $f0, $f0 +/* C2A2C 8012DB9C 46000021 */ cvt.d.s $f0, $f0 +/* C2A30 8012DBA0 46220002 */ mul.d $f0, $f0, $f2 +/* C2A34 8012DBA4 00000000 */ nop +/* C2A38 8012DBA8 3C018015 */ lui $at, %hi(D_JP_80155820) +/* C2A3C 8012DBAC D4225820 */ ldc1 $f2, %lo(D_JP_80155820)($at) +/* C2A40 8012DBB0 46220000 */ add.d $f0, $f0, $f2 +/* C2A44 8012DBB4 44922000 */ mtc1 $s2, $f4 +/* C2A48 8012DBB8 00000000 */ nop +/* C2A4C 8012DBBC 46802120 */ cvt.s.w $f4, $f4 +/* C2A50 8012DBC0 462002A0 */ cvt.s.d $f10, $f0 +/* C2A54 8012DBC4 460A2102 */ mul.s $f4, $f4, $f10 +/* C2A58 8012DBC8 00000000 */ nop +/* C2A5C 8012DBCC 3C013FE0 */ lui $at, (0x3FE00000 >> 16) +/* C2A60 8012DBD0 44816800 */ mtc1 $at, $f13 +/* C2A64 8012DBD4 44806000 */ mtc1 $zero, $f12 +/* C2A68 8012DBD8 46002121 */ cvt.d.s $f4, $f4 +/* C2A6C 8012DBDC 462C2002 */ mul.d $f0, $f4, $f12 +/* C2A70 8012DBE0 00000000 */ nop +/* C2A74 8012DBE4 44933000 */ mtc1 $s3, $f6 +/* C2A78 8012DBE8 00000000 */ nop +/* C2A7C 8012DBEC 468031A0 */ cvt.s.w $f6, $f6 +/* C2A80 8012DBF0 460A3182 */ mul.s $f6, $f6, $f10 +/* C2A84 8012DBF4 00000000 */ nop +/* C2A88 8012DBF8 87C3041A */ lh $v1, 0x41A($fp) +/* C2A8C 8012DBFC 001217C2 */ srl $v0, $s2, 31 +/* C2A90 8012DC00 02421021 */ addu $v0, $s2, $v0 +/* C2A94 8012DC04 460031A1 */ cvt.d.s $f6, $f6 +/* C2A98 8012DC08 462C3202 */ mul.d $f8, $f6, $f12 +/* C2A9C 8012DC0C 00000000 */ nop +/* C2AA0 8012DC10 00021043 */ sra $v0, $v0, 1 +/* C2AA4 8012DC14 00621821 */ addu $v1, $v1, $v0 +/* C2AA8 8012DC18 001317C2 */ srl $v0, $s3, 31 +/* C2AAC 8012DC1C 02621021 */ addu $v0, $s3, $v0 +/* C2AB0 8012DC20 00021043 */ sra $v0, $v0, 1 +/* C2AB4 8012DC24 44831000 */ mtc1 $v1, $f2 +/* C2AB8 8012DC28 00000000 */ nop +/* C2ABC 8012DC2C 468010A0 */ cvt.s.w $f2, $f2 +/* C2AC0 8012DC30 87C3041C */ lh $v1, 0x41C($fp) +/* C2AC4 8012DC34 462C2100 */ add.d $f4, $f4, $f12 +/* C2AC8 8012DC38 460010A1 */ cvt.d.s $f2, $f2 +/* C2ACC 8012DC3C 00621821 */ addu $v1, $v1, $v0 +/* C2AD0 8012DC40 46201081 */ sub.d $f2, $f2, $f0 +/* C2AD4 8012DC44 44830000 */ mtc1 $v1, $f0 +/* C2AD8 8012DC48 00000000 */ nop +/* C2ADC 8012DC4C 46800020 */ cvt.s.w $f0, $f0 +/* C2AE0 8012DC50 46000021 */ cvt.d.s $f0, $f0 +/* C2AE4 8012DC54 46280001 */ sub.d $f0, $f0, $f8 +/* C2AE8 8012DC58 462010A0 */ cvt.s.d $f2, $f2 +/* C2AEC 8012DC5C 460010A1 */ cvt.d.s $f2, $f2 +/* C2AF0 8012DC60 462C1080 */ add.d $f2, $f2, $f12 +/* C2AF4 8012DC64 4620230D */ trunc.w.d $f12, $f4 +/* C2AF8 8012DC68 44126000 */ mfc1 $s2, $f12 +/* C2AFC 8012DC6C 3C013FE0 */ lui $at, (0x3FE00000 >> 16) +/* C2B00 8012DC70 44816800 */ mtc1 $at, $f13 +/* C2B04 8012DC74 44806000 */ mtc1 $zero, $f12 +/* C2B08 8012DC78 46200020 */ cvt.s.d $f0, $f0 +/* C2B0C 8012DC7C 462C3180 */ add.d $f6, $f6, $f12 +/* C2B10 8012DC80 46000021 */ cvt.d.s $f0, $f0 +/* C2B14 8012DC84 2A420018 */ slti $v0, $s2, 0x18 +/* C2B18 8012DC88 462C0000 */ add.d $f0, $f0, $f12 +/* C2B1C 8012DC8C 4620330D */ trunc.w.d $f12, $f6 +/* C2B20 8012DC90 44136000 */ mfc1 $s3, $f12 +/* C2B24 8012DC94 4620130D */ trunc.w.d $f12, $f2 +/* C2B28 8012DC98 44116000 */ mfc1 $s1, $f12 +/* C2B2C 8012DC9C 4620030D */ trunc.w.d $f12, $f0 +/* C2B30 8012DCA0 44106000 */ mfc1 $s0, $f12 +/* C2B34 8012DCA4 54400001 */ bnel $v0, $zero, .LJP_8012DCAC +/* C2B38 8012DCA8 24120018 */ addiu $s2, $zero, 0x18 +.LJP_8012DCAC: +/* C2B3C 8012DCAC 2A620018 */ slti $v0, $s3, 0x18 +/* C2B40 8012DCB0 54400001 */ bnel $v0, $zero, .LJP_8012DCB8 +/* C2B44 8012DCB4 24130018 */ addiu $s3, $zero, 0x18 +.LJP_8012DCB8: +/* C2B48 8012DCB8 3C018015 */ lui $at, %hi(D_JP_80155828) +/* C2B4C 8012DCBC D4225828 */ ldc1 $f2, %lo(D_JP_80155828)($at) +/* C2B50 8012DCC0 46005021 */ cvt.d.s $f0, $f10 +/* C2B54 8012DCC4 46220002 */ mul.d $f0, $f0, $f2 +/* C2B58 8012DCC8 00000000 */ nop +/* C2B5C 8012DCCC 3C0141E0 */ lui $at, (0x41E00000 >> 16) +/* C2B60 8012DCD0 44811800 */ mtc1 $at, $f3 +/* C2B64 8012DCD4 44801000 */ mtc1 $zero, $f2 +/* C2B68 8012DCD8 00000000 */ nop +/* C2B6C 8012DCDC 4620103E */ c.le.d $f2, $f0 +/* C2B70 8012DCE0 00000000 */ nop +/* C2B74 8012DCE4 45030005 */ bc1tl .LJP_8012DCFC +/* C2B78 8012DCE8 46220001 */ sub.d $f0, $f0, $f2 +/* C2B7C 8012DCEC 4620030D */ trunc.w.d $f12, $f0 +/* C2B80 8012DCF0 44036000 */ mfc1 $v1, $f12 +/* C2B84 8012DCF4 0804B745 */ j .LJP_8012DD14 +/* C2B88 8012DCF8 306200FF */ andi $v0, $v1, 0xFF +.LJP_8012DCFC: +/* C2B8C 8012DCFC 3C028000 */ lui $v0, (0x80000000 >> 16) +/* C2B90 8012DD00 4620030D */ trunc.w.d $f12, $f0 +/* C2B94 8012DD04 44036000 */ mfc1 $v1, $f12 +/* C2B98 8012DD08 00000000 */ nop +/* C2B9C 8012DD0C 00621825 */ or $v1, $v1, $v0 +/* C2BA0 8012DD10 306200FF */ andi $v0, $v1, 0xFF +.LJP_8012DD14: +/* C2BA4 8012DD14 3C018015 */ lui $at, %hi(D_JP_80155830) +/* C2BA8 8012DD18 D4225830 */ ldc1 $f2, %lo(D_JP_80155830)($at) +/* C2BAC 8012DD1C 44820000 */ mtc1 $v0, $f0 +/* C2BB0 8012DD20 00000000 */ nop +/* C2BB4 8012DD24 46800021 */ cvt.d.w $f0, $f0 +/* C2BB8 8012DD28 46220002 */ mul.d $f0, $f0, $f2 +/* C2BBC 8012DD2C 00000000 */ nop +/* C2BC0 8012DD30 4620030D */ trunc.w.d $f12, $f0 +/* C2BC4 8012DD34 44186000 */ mfc1 $t8, $f12 +/* C2BC8 8012DD38 0804B78D */ j .LJP_8012DE34 +/* C2BCC 8012DD3C A7B8008E */ sh $t8, 0x8E($sp) +.LJP_8012DD40: +/* C2BD0 8012DD40 24020003 */ addiu $v0, $zero, 0x3 +/* C2BD4 8012DD44 14620029 */ bne $v1, $v0, .LJP_8012DDEC +/* C2BD8 8012DD48 240400FF */ addiu $a0, $zero, 0xFF +/* C2BDC 8012DD4C 93C204D2 */ lbu $v0, 0x4D2($fp) +/* C2BE0 8012DD50 24420001 */ addiu $v0, $v0, 0x1 +/* C2BE4 8012DD54 A3C204D2 */ sb $v0, 0x4D2($fp) +/* C2BE8 8012DD58 304200FF */ andi $v0, $v0, 0xFF +/* C2BEC 8012DD5C 2C420005 */ sltiu $v0, $v0, 0x5 +/* C2BF0 8012DD60 14400004 */ bnez $v0, .LJP_8012DD74 +/* C2BF4 8012DD64 00000000 */ nop +/* C2BF8 8012DD68 8FC204BC */ lw $v0, 0x4BC($fp) +/* C2BFC 8012DD6C 34420001 */ ori $v0, $v0, 0x1 +/* C2C00 8012DD70 AFC204BC */ sw $v0, 0x4BC($fp) +.LJP_8012DD74: +/* C2C04 8012DD74 93C304D2 */ lbu $v1, 0x4D2($fp) +/* C2C08 8012DD78 3C018015 */ lui $at, %hi(D_JP_80155838) +/* C2C0C 8012DD7C D4225838 */ ldc1 $f2, %lo(D_JP_80155838)($at) +/* C2C10 8012DD80 00031040 */ sll $v0, $v1, 1 +/* C2C14 8012DD84 00431021 */ addu $v0, $v0, $v1 +/* C2C18 8012DD88 000210C0 */ sll $v0, $v0, 3 +/* C2C1C 8012DD8C 00431023 */ subu $v0, $v0, $v1 +/* C2C20 8012DD90 00021040 */ sll $v0, $v0, 1 +/* C2C24 8012DD94 0002A027 */ nor $s4, $zero, $v0 +/* C2C28 8012DD98 328200FF */ andi $v0, $s4, 0xFF +/* C2C2C 8012DD9C 44820000 */ mtc1 $v0, $f0 +/* C2C30 8012DDA0 00000000 */ nop +/* C2C34 8012DDA4 46800021 */ cvt.d.w $f0, $f0 +/* C2C38 8012DDA8 46220002 */ mul.d $f0, $f0, $f2 +/* C2C3C 8012DDAC 00000000 */ nop +/* C2C40 8012DDB0 24150001 */ addiu $s5, $zero, 0x1 +/* C2C44 8012DDB4 4620030D */ trunc.w.d $f12, $f0 +/* C2C48 8012DDB8 44036000 */ mfc1 $v1, $f12 +/* C2C4C 8012DDBC 00000000 */ nop +/* C2C50 8012DDC0 00031400 */ sll $v0, $v1, 16 +/* C2C54 8012DDC4 00021403 */ sra $v0, $v0, 16 +/* C2C58 8012DDC8 28420020 */ slti $v0, $v0, 0x20 +/* C2C5C 8012DDCC 14400003 */ bnez $v0, .LJP_8012DDDC +/* C2C60 8012DDD0 A7A3008E */ sh $v1, 0x8E($sp) +/* C2C64 8012DDD4 2463FFE0 */ addiu $v1, $v1, -0x20 +/* C2C68 8012DDD8 A7A3008E */ sh $v1, 0x8E($sp) +.LJP_8012DDDC: +/* C2C6C 8012DDDC 87D1041A */ lh $s1, 0x41A($fp) +/* C2C70 8012DDE0 87D0041C */ lh $s0, 0x41C($fp) +/* C2C74 8012DDE4 0804B78E */ j .LJP_8012DE38 +/* C2C78 8012DDE8 0220202D */ daddu $a0, $s1, $zero +.LJP_8012DDEC: +/* C2C7C 8012DDEC 24050020 */ addiu $a1, $zero, 0x20 +/* C2C80 8012DDF0 00A0302D */ daddu $a2, $a1, $zero +/* C2C84 8012DDF4 0000382D */ daddu $a3, $zero, $zero +/* C2C88 8012DDF8 26420002 */ addiu $v0, $s2, 0x2 +/* C2C8C 8012DDFC 87D1041A */ lh $s1, 0x41A($fp) +/* C2C90 8012DE00 87D0041C */ lh $s0, 0x41C($fp) +/* C2C94 8012DE04 3042FFFF */ andi $v0, $v0, 0xFFFF +/* C2C98 8012DE08 AFA20018 */ sw $v0, 0x18($sp) +/* C2C9C 8012DE0C 26620002 */ addiu $v0, $s3, 0x2 +/* C2CA0 8012DE10 3042FFFF */ andi $v0, $v0, 0xFFFF +/* C2CA4 8012DE14 AFA2001C */ sw $v0, 0x1C($sp) +/* C2CA8 8012DE18 2622FFFF */ addiu $v0, $s1, -0x1 +/* C2CAC 8012DE1C 3042FFFF */ andi $v0, $v0, 0xFFFF +/* C2CB0 8012DE20 AFA20010 */ sw $v0, 0x10($sp) +/* C2CB4 8012DE24 2602FFFF */ addiu $v0, $s0, -0x1 +/* C2CB8 8012DE28 3042FFFF */ andi $v0, $v0, 0xFFFF +/* C2CBC 8012DE2C 0C04C6C8 */ jal msg_draw_prim_rect +/* C2CC0 8012DE30 AFA20014 */ sw $v0, 0x14($sp) +.LJP_8012DE34: +/* C2CC4 8012DE34 0220202D */ daddu $a0, $s1, $zero +.LJP_8012DE38: +/* C2CC8 8012DE38 0200282D */ daddu $a1, $s0, $zero +/* C2CCC 8012DE3C 0240302D */ daddu $a2, $s2, $zero +/* C2CD0 8012DE40 24820002 */ addiu $v0, $a0, 0x2 +/* C2CD4 8012DE44 3C038016 */ lui $v1, %hi(msg_drawState) +/* C2CD8 8012DE48 8C63ACF4 */ lw $v1, %lo(msg_drawState)($v1) +/* C2CDC 8012DE4C 0260382D */ daddu $a3, $s3, $zero +/* C2CE0 8012DE50 AC620000 */ sw $v0, 0x0($v1) +/* C2CE4 8012DE54 24A20002 */ addiu $v0, $a1, 0x2 +/* C2CE8 8012DE58 AC620008 */ sw $v0, 0x8($v1) +/* C2CEC 8012DE5C 00861021 */ addu $v0, $a0, $a2 +/* C2CF0 8012DE60 2442FFFE */ addiu $v0, $v0, -0x2 +/* C2CF4 8012DE64 AC620004 */ sw $v0, 0x4($v1) +/* C2CF8 8012DE68 00B31021 */ addu $v0, $a1, $s3 +/* C2CFC 8012DE6C 2442FFFE */ addiu $v0, $v0, -0x2 +/* C2D00 8012DE70 AC62000C */ sw $v0, 0xC($v1) +/* C2D04 8012DE74 24190005 */ addiu $t9, $zero, 0x5 +/* C2D08 8012DE78 AFB90010 */ sw $t9, 0x10($sp) +/* C2D0C 8012DE7C 9063002B */ lbu $v1, 0x2B($v1) +/* C2D10 8012DE80 328200FF */ andi $v0, $s4, 0xFF +/* C2D14 8012DE84 AFB50018 */ sw $s5, 0x18($sp) +/* C2D18 8012DE88 AFA2001C */ sw $v0, 0x1C($sp) +/* C2D1C 8012DE8C AFA20020 */ sw $v0, 0x20($sp) +/* C2D20 8012DE90 0C04CB34 */ jal msg_draw_frame +/* C2D24 8012DE94 AFA30014 */ sw $v1, 0x14($sp) +/* C2D28 8012DE98 0C04C516 */ jal msg_reset_gfx_state +/* C2D2C 8012DE9C 329400FF */ andi $s4, $s4, 0xFF +/* C2D30 8012DEA0 3C048016 */ lui $a0, %hi(msg_drawState) +/* C2D34 8012DEA4 8C84ACF4 */ lw $a0, %lo(msg_drawState)($a0) +/* C2D38 8012DEA8 A7B400AE */ sh $s4, 0xAE($sp) +/* C2D3C 8012DEAC 8C820020 */ lw $v0, 0x20($a0) +/* C2D40 8012DEB0 94830034 */ lhu $v1, 0x34($a0) +/* C2D44 8012DEB4 2418000A */ addiu $t8, $zero, 0xA +/* C2D48 8012DEB8 A498004A */ sh $t8, 0x4A($a0) +/* C2D4C 8012DEBC 24420002 */ addiu $v0, $v0, 0x2 +/* C2D50 8012DEC0 34630010 */ ori $v1, $v1, 0x10 +/* C2D54 8012DEC4 AC820020 */ sw $v0, 0x20($a0) +/* C2D58 8012DEC8 0804C43A */ j .LJP_801310E8 +/* C2D5C 8012DECC A4830034 */ sh $v1, 0x34($a0) +.LJP_8012DED0: +/* C2D60 8012DED0 3C058016 */ lui $a1, %hi(msg_drawState) +/* C2D64 8012DED4 8CA5ACF4 */ lw $a1, %lo(msg_drawState)($a1) +/* C2D68 8012DED8 24020010 */ addiu $v0, $zero, 0x10 +/* C2D6C 8012DEDC 24190005 */ addiu $t9, $zero, 0x5 +/* C2D70 8012DEE0 A4A20046 */ sh $v0, 0x46($a1) +/* C2D74 8012DEE4 A4B90048 */ sh $t9, 0x48($a1) +/* C2D78 8012DEE8 87C2041A */ lh $v0, 0x41A($fp) +/* C2D7C 8012DEEC 24420005 */ addiu $v0, $v0, 0x5 +/* C2D80 8012DEF0 ACA20000 */ sw $v0, 0x0($a1) +/* C2D84 8012DEF4 87C2041C */ lh $v0, 0x41C($fp) +/* C2D88 8012DEF8 24420004 */ addiu $v0, $v0, 0x4 +/* C2D8C 8012DEFC ACA20008 */ sw $v0, 0x8($a1) +/* C2D90 8012DF00 87C2041A */ lh $v0, 0x41A($fp) +/* C2D94 8012DF04 97C304D4 */ lhu $v1, 0x4D4($fp) +/* C2D98 8012DF08 0000882D */ daddu $s1, $zero, $zero +/* C2D9C 8012DF0C 00431021 */ addu $v0, $v0, $v1 +/* C2DA0 8012DF10 2442FFF8 */ addiu $v0, $v0, -0x8 +/* C2DA4 8012DF14 ACA20004 */ sw $v0, 0x4($a1) +/* C2DA8 8012DF18 87C2041C */ lh $v0, 0x41C($fp) +/* C2DAC 8012DF1C 97C304D6 */ lhu $v1, 0x4D6($fp) +/* C2DB0 8012DF20 240400FF */ addiu $a0, $zero, 0xFF +/* C2DB4 8012DF24 00431021 */ addu $v0, $v0, $v1 +/* C2DB8 8012DF28 94A30006 */ lhu $v1, 0x6($a1) +/* C2DBC 8012DF2C 2442FFFB */ addiu $v0, $v0, -0x5 +/* C2DC0 8012DF30 ACA2000C */ sw $v0, 0xC($a1) +/* C2DC4 8012DF34 2463FFEF */ addiu $v1, $v1, -0x11 +/* C2DC8 8012DF38 A7C30442 */ sh $v1, 0x442($fp) +/* C2DCC 8012DF3C 94A2000E */ lhu $v0, 0xE($a1) +/* C2DD0 8012DF40 0000382D */ daddu $a3, $zero, $zero +/* C2DD4 8012DF44 2442FFEF */ addiu $v0, $v0, -0x11 +/* C2DD8 8012DF48 A7C20444 */ sh $v0, 0x444($fp) +/* C2DDC 8012DF4C A4A0004A */ sh $zero, 0x4A($a1) +/* C2DE0 8012DF50 97C2041A */ lhu $v0, 0x41A($fp) +/* C2DE4 8012DF54 24050020 */ addiu $a1, $zero, 0x20 +/* C2DE8 8012DF58 24420003 */ addiu $v0, $v0, 0x3 +/* C2DEC 8012DF5C 3042FFFF */ andi $v0, $v0, 0xFFFF +/* C2DF0 8012DF60 AFA20010 */ sw $v0, 0x10($sp) +/* C2DF4 8012DF64 97C2041C */ lhu $v0, 0x41C($fp) +/* C2DF8 8012DF68 00A0302D */ daddu $a2, $a1, $zero +/* C2DFC 8012DF6C 2442FFFF */ addiu $v0, $v0, -0x1 +/* C2E00 8012DF70 3042FFFF */ andi $v0, $v0, 0xFFFF +/* C2E04 8012DF74 AFA20014 */ sw $v0, 0x14($sp) +/* C2E08 8012DF78 97C204D4 */ lhu $v0, 0x4D4($fp) +/* C2E0C 8012DF7C 24180001 */ addiu $t8, $zero, 0x1 +/* C2E10 8012DF80 AFB8001C */ sw $t8, 0x1C($sp) +/* C2E14 8012DF84 2442FFFA */ addiu $v0, $v0, -0x6 +/* C2E18 8012DF88 3042FFFF */ andi $v0, $v0, 0xFFFF +/* C2E1C 8012DF8C 0C04C6C8 */ jal msg_draw_prim_rect +/* C2E20 8012DF90 AFA20018 */ sw $v0, 0x18($sp) +/* C2E24 8012DF94 24040020 */ addiu $a0, $zero, 0x20 +/* C2E28 8012DF98 240500FF */ addiu $a1, $zero, 0xFF +/* C2E2C 8012DF9C 97C2041A */ lhu $v0, 0x41A($fp) +/* C2E30 8012DFA0 0080302D */ daddu $a2, $a0, $zero +/* C2E34 8012DFA4 24420003 */ addiu $v0, $v0, 0x3 +/* C2E38 8012DFA8 3042FFFF */ andi $v0, $v0, 0xFFFF +/* C2E3C 8012DFAC AFA20010 */ sw $v0, 0x10($sp) +/* C2E40 8012DFB0 97C2041C */ lhu $v0, 0x41C($fp) +/* C2E44 8012DFB4 97C304D6 */ lhu $v1, 0x4D6($fp) +/* C2E48 8012DFB8 0000382D */ daddu $a3, $zero, $zero +/* C2E4C 8012DFBC 00431021 */ addu $v0, $v0, $v1 +/* C2E50 8012DFC0 3042FFFF */ andi $v0, $v0, 0xFFFF +/* C2E54 8012DFC4 AFA20014 */ sw $v0, 0x14($sp) +/* C2E58 8012DFC8 97C204D4 */ lhu $v0, 0x4D4($fp) +/* C2E5C 8012DFCC 24190001 */ addiu $t9, $zero, 0x1 +/* C2E60 8012DFD0 AFB9001C */ sw $t9, 0x1C($sp) +/* C2E64 8012DFD4 2442FFFA */ addiu $v0, $v0, -0x6 +/* C2E68 8012DFD8 3042FFFF */ andi $v0, $v0, 0xFFFF +/* C2E6C 8012DFDC 0C04C6C8 */ jal msg_draw_prim_rect +/* C2E70 8012DFE0 AFA20018 */ sw $v0, 0x18($sp) +/* C2E74 8012DFE4 93C304B8 */ lbu $v1, 0x4B8($fp) +/* C2E78 8012DFE8 24180002 */ addiu $t8, $zero, 0x2 +/* C2E7C 8012DFEC 14780011 */ bne $v1, $t8, .LJP_8012E034 +/* C2E80 8012DFF0 241000FF */ addiu $s0, $zero, 0xFF +/* C2E84 8012DFF4 93C304C9 */ lbu $v1, 0x4C9($fp) +/* C2E88 8012DFF8 00031040 */ sll $v0, $v1, 1 +/* C2E8C 8012DFFC 00431021 */ addu $v0, $v0, $v1 +/* C2E90 8012E000 00021100 */ sll $v0, $v0, 4 +/* C2E94 8012E004 24500050 */ addiu $s0, $v0, 0x50 +/* C2E98 8012E008 320200FF */ andi $v0, $s0, 0xFF +/* C2E9C 8012E00C 2442FFD0 */ addiu $v0, $v0, -0x30 +/* C2EA0 8012E010 24630001 */ addiu $v1, $v1, 0x1 +/* C2EA4 8012E014 A7A2008E */ sh $v0, 0x8E($sp) +/* C2EA8 8012E018 A3C304C9 */ sb $v1, 0x4C9($fp) +/* C2EAC 8012E01C 306300FF */ andi $v1, $v1, 0xFF +/* C2EB0 8012E020 24020004 */ addiu $v0, $zero, 0x4 +/* C2EB4 8012E024 14620017 */ bne $v1, $v0, .LJP_8012E084 +/* C2EB8 8012E028 24110001 */ addiu $s1, $zero, 0x1 +/* C2EBC 8012E02C 0804B821 */ j .LJP_8012E084 +/* C2EC0 8012E030 A3C304B8 */ sb $v1, 0x4B8($fp) +.LJP_8012E034: +/* C2EC4 8012E034 24020003 */ addiu $v0, $zero, 0x3 +/* C2EC8 8012E038 14620012 */ bne $v1, $v0, .LJP_8012E084 +/* C2ECC 8012E03C 2403FFD0 */ addiu $v1, $zero, -0x30 +/* C2ED0 8012E040 93C404D2 */ lbu $a0, 0x4D2($fp) +/* C2ED4 8012E044 00041080 */ sll $v0, $a0, 2 +/* C2ED8 8012E048 00441021 */ addu $v0, $v0, $a0 +/* C2EDC 8012E04C 000210C0 */ sll $v0, $v0, 3 +/* C2EE0 8012E050 00628023 */ subu $s0, $v1, $v0 +/* C2EE4 8012E054 320200FF */ andi $v0, $s0, 0xFF +/* C2EE8 8012E058 00431021 */ addu $v0, $v0, $v1 +/* C2EEC 8012E05C 24840001 */ addiu $a0, $a0, 0x1 +/* C2EF0 8012E060 A7A2008E */ sh $v0, 0x8E($sp) +/* C2EF4 8012E064 A3C404D2 */ sb $a0, 0x4D2($fp) +/* C2EF8 8012E068 308400FF */ andi $a0, $a0, 0xFF +/* C2EFC 8012E06C 24020004 */ addiu $v0, $zero, 0x4 +/* C2F00 8012E070 14820004 */ bne $a0, $v0, .LJP_8012E084 +/* C2F04 8012E074 24110001 */ addiu $s1, $zero, 0x1 +/* C2F08 8012E078 8FC204BC */ lw $v0, 0x4BC($fp) +/* C2F0C 8012E07C 34420001 */ ori $v0, $v0, 0x1 +/* C2F10 8012E080 AFC204BC */ sw $v0, 0x4BC($fp) +.LJP_8012E084: +/* C2F14 8012E084 87C4041A */ lh $a0, 0x41A($fp) +/* C2F18 8012E088 87C5041C */ lh $a1, 0x41C($fp) +/* C2F1C 8012E08C 97C604D4 */ lhu $a2, 0x4D4($fp) +/* C2F20 8012E090 97C704D6 */ lhu $a3, 0x4D6($fp) +/* C2F24 8012E094 24020006 */ addiu $v0, $zero, 0x6 +/* C2F28 8012E098 AFA20010 */ sw $v0, 0x10($sp) +/* C2F2C 8012E09C 3C028016 */ lui $v0, %hi(msg_drawState) +/* C2F30 8012E0A0 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) +/* C2F34 8012E0A4 9043002B */ lbu $v1, 0x2B($v0) +/* C2F38 8012E0A8 320200FF */ andi $v0, $s0, 0xFF +/* C2F3C 8012E0AC AFB10018 */ sw $s1, 0x18($sp) +/* C2F40 8012E0B0 AFA2001C */ sw $v0, 0x1C($sp) +/* C2F44 8012E0B4 AFA20020 */ sw $v0, 0x20($sp) +/* C2F48 8012E0B8 0C04CB34 */ jal msg_draw_frame +/* C2F4C 8012E0BC AFA30014 */ sw $v1, 0x14($sp) +/* C2F50 8012E0C0 0C04C516 */ jal msg_reset_gfx_state +/* C2F54 8012E0C4 321000FF */ andi $s0, $s0, 0xFF +/* C2F58 8012E0C8 3C038016 */ lui $v1, %hi(msg_drawState) +/* C2F5C 8012E0CC 8C63ACF4 */ lw $v1, %lo(msg_drawState)($v1) +/* C2F60 8012E0D0 8C620020 */ lw $v0, 0x20($v1) +/* C2F64 8012E0D4 0804BF3D */ j .LJP_8012FCF4 +/* C2F68 8012E0D8 A7B000AE */ sh $s0, 0xAE($sp) +.LJP_8012E0DC: +/* C2F6C 8012E0DC 24020012 */ addiu $v0, $zero, 0x12 +/* C2F70 8012E0E0 2404001C */ addiu $a0, $zero, 0x1C +/* C2F74 8012E0E4 3C038016 */ lui $v1, %hi(msg_drawState) +/* C2F78 8012E0E8 8C63ACF4 */ lw $v1, %lo(msg_drawState)($v1) +/* C2F7C 8012E0EC A4620046 */ sh $v0, 0x46($v1) +/* C2F80 8012E0F0 2402000D */ addiu $v0, $zero, 0xD +/* C2F84 8012E0F4 A4620048 */ sh $v0, 0x48($v1) +/* C2F88 8012E0F8 24020028 */ addiu $v0, $zero, 0x28 +/* C2F8C 8012E0FC A7C2041A */ sh $v0, 0x41A($fp) +/* C2F90 8012E100 240200F0 */ addiu $v0, $zero, 0xF0 +/* C2F94 8012E104 A7C204D4 */ sh $v0, 0x4D4($fp) +/* C2F98 8012E108 2402000F */ addiu $v0, $zero, 0xF +/* C2F9C 8012E10C A7C4041C */ sh $a0, 0x41C($fp) +/* C2FA0 8012E110 A062002B */ sb $v0, 0x2B($v1) +/* C2FA4 8012E114 93C204C8 */ lbu $v0, 0x4C8($fp) +/* C2FA8 8012E118 24190007 */ addiu $t9, $zero, 0x7 +/* C2FAC 8012E11C 1459000D */ bne $v0, $t9, .LJP_8012E154 +/* C2FB0 8012E120 241100FF */ addiu $s1, $zero, 0xFF +/* C2FB4 8012E124 3C18802E */ lui $t8, %hi(D_802E7890) +/* C2FB8 8012E128 27187890 */ addiu $t8, $t8, %lo(D_802E7890) +/* C2FBC 8012E12C 3C16802E */ lui $s6, %hi(D_802E7E30) +/* C2FC0 8012E130 26D67E30 */ addiu $s6, $s6, %lo(D_802E7E30) +/* C2FC4 8012E134 3C038016 */ lui $v1, %hi(msg_drawState) +/* C2FC8 8012E138 8C63ACF4 */ lw $v1, %lo(msg_drawState)($v1) +/* C2FCC 8012E13C 24020048 */ addiu $v0, $zero, 0x48 +/* C2FD0 8012E140 AFB800C0 */ sw $t8, 0xC0($sp) +/* C2FD4 8012E144 A7C204D6 */ sh $v0, 0x4D6($fp) +/* C2FD8 8012E148 24020018 */ addiu $v0, $zero, 0x18 +/* C2FDC 8012E14C 0804B85D */ j .LJP_8012E174 +/* C2FE0 8012E150 A462004A */ sh $v0, 0x4A($v1) +.LJP_8012E154: +/* C2FE4 8012E154 3C19802E */ lui $t9, %hi(D_802E7910) +/* C2FE8 8012E158 27397910 */ addiu $t9, $t9, %lo(D_802E7910) +/* C2FEC 8012E15C 3C028016 */ lui $v0, %hi(msg_drawState) +/* C2FF0 8012E160 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) +/* C2FF4 8012E164 3C16802E */ lui $s6, %hi(D_802E7E50) +/* C2FF8 8012E168 26D67E50 */ addiu $s6, $s6, %lo(D_802E7E50) +/* C2FFC 8012E16C AFB900C0 */ sw $t9, 0xC0($sp) +/* C3000 8012E170 A444004A */ sh $a0, 0x4A($v0) +.LJP_8012E174: +/* C3004 8012E174 24020036 */ addiu $v0, $zero, 0x36 +/* C3008 8012E178 3C048016 */ lui $a0, %hi(msg_drawState) +/* C300C 8012E17C 8C84ACF4 */ lw $a0, %lo(msg_drawState)($a0) +/* C3010 8012E180 24180002 */ addiu $t8, $zero, 0x2 +/* C3014 8012E184 AC820000 */ sw $v0, 0x0($a0) +/* C3018 8012E188 24020028 */ addiu $v0, $zero, 0x28 +/* C301C 8012E18C AC820008 */ sw $v0, 0x8($a0) +/* C3020 8012E190 24020107 */ addiu $v0, $zero, 0x107 +/* C3024 8012E194 AC820004 */ sw $v0, 0x4($a0) +/* C3028 8012E198 97C204D6 */ lhu $v0, 0x4D6($fp) +/* C302C 8012E19C 94830006 */ lhu $v1, 0x6($a0) +/* C3030 8012E1A0 24420011 */ addiu $v0, $v0, 0x11 +/* C3034 8012E1A4 2463FFF0 */ addiu $v1, $v1, -0x10 +/* C3038 8012E1A8 AC82000C */ sw $v0, 0xC($a0) +/* C303C 8012E1AC A7C30442 */ sh $v1, 0x442($fp) +/* C3040 8012E1B0 9482000E */ lhu $v0, 0xE($a0) +/* C3044 8012E1B4 93C504B8 */ lbu $a1, 0x4B8($fp) +/* C3048 8012E1B8 2442FFF7 */ addiu $v0, $v0, -0x9 +/* C304C 8012E1BC 14B80010 */ bne $a1, $t8, .LJP_8012E200 +/* C3050 8012E1C0 A7C20444 */ sh $v0, 0x444($fp) +/* C3054 8012E1C4 93C304C9 */ lbu $v1, 0x4C9($fp) +/* C3058 8012E1C8 00031180 */ sll $v0, $v1, 6 +/* C305C 8012E1CC 24510050 */ addiu $s1, $v0, 0x50 +/* C3060 8012E1D0 322200FF */ andi $v0, $s1, 0xFF +/* C3064 8012E1D4 2442FFD0 */ addiu $v0, $v0, -0x30 +/* C3068 8012E1D8 24630001 */ addiu $v1, $v1, 0x1 +/* C306C 8012E1DC A7A2008E */ sh $v0, 0x8E($sp) +/* C3070 8012E1E0 A3C304C9 */ sb $v1, 0x4C9($fp) +/* C3074 8012E1E4 306300FF */ andi $v1, $v1, 0xFF +/* C3078 8012E1E8 24020003 */ addiu $v0, $zero, 0x3 +/* C307C 8012E1EC 14620018 */ bne $v1, $v0, .LJP_8012E250 +/* C3080 8012E1F0 323900FF */ andi $t9, $s1, 0xFF +/* C3084 8012E1F4 24020004 */ addiu $v0, $zero, 0x4 +/* C3088 8012E1F8 0804B894 */ j .LJP_8012E250 +/* C308C 8012E1FC A3C204B8 */ sb $v0, 0x4B8($fp) +.LJP_8012E200: +/* C3090 8012E200 24020003 */ addiu $v0, $zero, 0x3 +/* C3094 8012E204 14A20012 */ bne $a1, $v0, .LJP_8012E250 +/* C3098 8012E208 323900FF */ andi $t9, $s1, 0xFF +/* C309C 8012E20C 93C404D2 */ lbu $a0, 0x4D2($fp) +/* C30A0 8012E210 2403FFD0 */ addiu $v1, $zero, -0x30 +/* C30A4 8012E214 00041040 */ sll $v0, $a0, 1 +/* C30A8 8012E218 00441021 */ addu $v0, $v0, $a0 +/* C30AC 8012E21C 00021100 */ sll $v0, $v0, 4 +/* C30B0 8012E220 00628823 */ subu $s1, $v1, $v0 +/* C30B4 8012E224 322200FF */ andi $v0, $s1, 0xFF +/* C30B8 8012E228 00431021 */ addu $v0, $v0, $v1 +/* C30BC 8012E22C 24840001 */ addiu $a0, $a0, 0x1 +/* C30C0 8012E230 A7A2008E */ sh $v0, 0x8E($sp) +/* C30C4 8012E234 A3C404D2 */ sb $a0, 0x4D2($fp) +/* C30C8 8012E238 308400FF */ andi $a0, $a0, 0xFF +/* C30CC 8012E23C 14850004 */ bne $a0, $a1, .LJP_8012E250 +/* C30D0 8012E240 323900FF */ andi $t9, $s1, 0xFF +/* C30D4 8012E244 8FC204BC */ lw $v0, 0x4BC($fp) +/* C30D8 8012E248 34420001 */ ori $v0, $v0, 0x1 +/* C30DC 8012E24C AFC204BC */ sw $v0, 0x4BC($fp) +.LJP_8012E250: +/* C30E0 8012E250 3C04802E */ lui $a0, %hi(D_802E7710) +/* C30E4 8012E254 24847710 */ addiu $a0, $a0, %lo(D_802E7710) +/* C30E8 8012E258 24050010 */ addiu $a1, $zero, 0x10 +/* C30EC 8012E25C 00A0302D */ daddu $a2, $a1, $zero +/* C30F0 8012E260 24070002 */ addiu $a3, $zero, 0x2 +/* C30F4 8012E264 24150028 */ addiu $s5, $zero, 0x28 +/* C30F8 8012E268 2410001C */ addiu $s0, $zero, 0x1C +/* C30FC 8012E26C 2418000A */ addiu $t8, $zero, 0xA +/* C3100 8012E270 A7B900AE */ sh $t9, 0xAE($sp) +/* C3104 8012E274 0300C82D */ daddu $t9, $t8, $zero +/* C3108 8012E278 24130136 */ addiu $s3, $zero, 0x136 +/* C310C 8012E27C 241200E6 */ addiu $s2, $zero, 0xE6 +/* C3110 8012E280 323100FF */ andi $s1, $s1, 0xFF +/* C3114 8012E284 AFA00010 */ sw $zero, 0x10($sp) +/* C3118 8012E288 AFB60014 */ sw $s6, 0x14($sp) +/* C311C 8012E28C AFB50018 */ sw $s5, 0x18($sp) +/* C3120 8012E290 AFB0001C */ sw $s0, 0x1C($sp) +/* C3124 8012E294 AFB80020 */ sw $t8, 0x20($sp) +/* C3128 8012E298 AFB90024 */ sw $t9, 0x24($sp) +/* C312C 8012E29C AFB30028 */ sw $s3, 0x28($sp) +/* C3130 8012E2A0 AFB2002C */ sw $s2, 0x2C($sp) +/* C3134 8012E2A4 0C04CEC8 */ jal draw_ci_image_with_clipping +/* C3138 8012E2A8 AFB10030 */ sw $s1, 0x30($sp) +/* C313C 8012E2AC 3C04802E */ lui $a0, %hi(D_802E7790) +/* C3140 8012E2B0 24847790 */ addiu $a0, $a0, %lo(D_802E7790) +/* C3144 8012E2B4 24050010 */ addiu $a1, $zero, 0x10 +/* C3148 8012E2B8 00A0302D */ daddu $a2, $a1, $zero +/* C314C 8012E2BC 24070002 */ addiu $a3, $zero, 0x2 +/* C3150 8012E2C0 24140108 */ addiu $s4, $zero, 0x108 +/* C3154 8012E2C4 2418000A */ addiu $t8, $zero, 0xA +/* C3158 8012E2C8 0300C82D */ daddu $t9, $t8, $zero +/* C315C 8012E2CC AFA00010 */ sw $zero, 0x10($sp) +/* C3160 8012E2D0 AFB60014 */ sw $s6, 0x14($sp) +/* C3164 8012E2D4 AFB40018 */ sw $s4, 0x18($sp) +/* C3168 8012E2D8 AFB0001C */ sw $s0, 0x1C($sp) +/* C316C 8012E2DC AFB80020 */ sw $t8, 0x20($sp) +/* C3170 8012E2E0 AFB90024 */ sw $t9, 0x24($sp) +/* C3174 8012E2E4 AFB30028 */ sw $s3, 0x28($sp) +/* C3178 8012E2E8 AFB2002C */ sw $s2, 0x2C($sp) +/* C317C 8012E2EC 0C04CEC8 */ jal draw_ci_image_with_clipping +/* C3180 8012E2F0 AFB10030 */ sw $s1, 0x30($sp) +/* C3184 8012E2F4 3C04802E */ lui $a0, %hi(D_802E7810) +/* C3188 8012E2F8 24847810 */ addiu $a0, $a0, %lo(D_802E7810) +/* C318C 8012E2FC 24050010 */ addiu $a1, $zero, 0x10 +/* C3190 8012E300 00A0302D */ daddu $a2, $a1, $zero +/* C3194 8012E304 24070002 */ addiu $a3, $zero, 0x2 +/* C3198 8012E308 AFA00010 */ sw $zero, 0x10($sp) +/* C319C 8012E30C AFB60014 */ sw $s6, 0x14($sp) +/* C31A0 8012E310 AFB50018 */ sw $s5, 0x18($sp) +/* C31A4 8012E314 97C204D6 */ lhu $v0, 0x4D6($fp) +/* C31A8 8012E318 2418000A */ addiu $t8, $zero, 0xA +/* C31AC 8012E31C 0300C82D */ daddu $t9, $t8, $zero +/* C31B0 8012E320 AFB80020 */ sw $t8, 0x20($sp) +/* C31B4 8012E324 AFB90024 */ sw $t9, 0x24($sp) +/* C31B8 8012E328 AFB30028 */ sw $s3, 0x28($sp) +/* C31BC 8012E32C AFB2002C */ sw $s2, 0x2C($sp) +/* C31C0 8012E330 AFB10030 */ sw $s1, 0x30($sp) +/* C31C4 8012E334 2442000C */ addiu $v0, $v0, 0xC +/* C31C8 8012E338 00A21004 */ sllv $v0, $v0, $a1 +/* C31CC 8012E33C 00A21007 */ srav $v0, $v0, $a1 +/* C31D0 8012E340 0C04CEC8 */ jal draw_ci_image_with_clipping +/* C31D4 8012E344 AFA2001C */ sw $v0, 0x1C($sp) +/* C31D8 8012E348 24050010 */ addiu $a1, $zero, 0x10 +/* C31DC 8012E34C 00A0302D */ daddu $a2, $a1, $zero +/* C31E0 8012E350 24070002 */ addiu $a3, $zero, 0x2 +/* C31E4 8012E354 AFA00010 */ sw $zero, 0x10($sp) +/* C31E8 8012E358 AFB60014 */ sw $s6, 0x14($sp) +/* C31EC 8012E35C AFB40018 */ sw $s4, 0x18($sp) +/* C31F0 8012E360 97C204D6 */ lhu $v0, 0x4D6($fp) +/* C31F4 8012E364 2418000A */ addiu $t8, $zero, 0xA +/* C31F8 8012E368 8FA400C0 */ lw $a0, 0xC0($sp) +/* C31FC 8012E36C 0300C82D */ daddu $t9, $t8, $zero +/* C3200 8012E370 AFB80020 */ sw $t8, 0x20($sp) +/* C3204 8012E374 AFB90024 */ sw $t9, 0x24($sp) +/* C3208 8012E378 AFB30028 */ sw $s3, 0x28($sp) +/* C320C 8012E37C AFB2002C */ sw $s2, 0x2C($sp) +/* C3210 8012E380 AFB10030 */ sw $s1, 0x30($sp) +/* C3214 8012E384 2442000C */ addiu $v0, $v0, 0xC +/* C3218 8012E388 00A21004 */ sllv $v0, $v0, $a1 +/* C321C 8012E38C 00A21007 */ srav $v0, $v0, $a1 +/* C3220 8012E390 0C04CEC8 */ jal draw_ci_image_with_clipping +/* C3224 8012E394 AFA2001C */ sw $v0, 0x1C($sp) +/* C3228 8012E398 3C120703 */ lui $s2, (0x703E03C >> 16) +/* C322C 8012E39C 3652E03C */ ori $s2, $s2, (0x703E03C & 0xFFFF) +/* C3230 8012E3A0 3C14F540 */ lui $s4, (0xF5400400 >> 16) +/* C3234 8012E3A4 36940400 */ ori $s4, $s4, (0xF5400400 & 0xFFFF) +/* C3238 8012E3A8 3C130001 */ lui $s3, (0x10050 >> 16) +/* C323C 8012E3AC 36730050 */ ori $s3, $s3, (0x10050 & 0xFFFF) +/* C3240 8012E3B0 3C150007 */ lui $s5, (0x7C03C >> 16) +/* C3244 8012E3B4 36B5C03C */ ori $s5, $s5, (0x7C03C & 0xFFFF) +/* C3248 8012E3B8 3C06E442 */ lui $a2, (0xE44200B0 >> 16) +/* C324C 8012E3BC 34C600B0 */ ori $a2, $a2, (0xE44200B0 & 0xFFFF) +/* C3250 8012E3C0 3C05000E */ lui $a1, (0xE0070 >> 16) +/* C3254 8012E3C4 34A50070 */ ori $a1, $a1, (0xE0070 & 0xFFFF) +/* C3258 8012E3C8 3C090400 */ lui $t1, (0x4000400 >> 16) +/* C325C 8012E3CC 35290400 */ ori $t1, $t1, (0x4000400 & 0xFFFF) +/* C3260 8012E3D0 3C0BFD48 */ lui $t3, (0xFD480007 >> 16) +/* C3264 8012E3D4 356B0007 */ ori $t3, $t3, (0xFD480007 & 0xFFFF) +/* C3268 8012E3D8 3C0AF548 */ lui $t2, (0xF5480200 >> 16) +/* C326C 8012E3DC 354A0200 */ ori $t2, $t2, (0xF5480200 & 0xFFFF) +/* C3270 8012E3E0 3C0D0701 */ lui $t5, (0x7014040 >> 16) +/* C3274 8012E3E4 35AD4040 */ ori $t5, $t5, (0x7014040 & 0xFFFF) +/* C3278 8012E3E8 3C0E0701 */ lui $t6, (0x701E07C >> 16) +/* C327C 8012E3EC 35CEE07C */ ori $t6, $t6, (0x701E07C & 0xFFFF) +/* C3280 8012E3F0 3C0CF540 */ lui $t4, (0xF5400200 >> 16) +/* C3284 8012E3F4 358C0200 */ ori $t4, $t4, (0xF5400200 & 0xFFFF) +/* C3288 8012E3F8 3C0F0001 */ lui $t7, (0x14040 >> 16) +/* C328C 8012E3FC 35EF4040 */ ori $t7, $t7, (0x14040 & 0xFFFF) +/* C3290 8012E400 3C100003 */ lui $s0, (0x3C07C >> 16) +/* C3294 8012E404 3610C07C */ ori $s0, $s0, (0x3C07C & 0xFFFF) +/* C3298 8012E408 3C11000A */ lui $s1, (0xA00B0 >> 16) +/* C329C 8012E40C 363100B0 */ ori $s1, $s1, (0xA00B0 & 0xFFFF) +/* C32A0 8012E410 3C160042 */ lui $s6, (0x4200B0 >> 16) +/* C32A4 8012E414 36D600B0 */ ori $s6, $s6, (0x4200B0 & 0xFFFF) +/* C32A8 8012E418 3C18FD48 */ lui $t8, (0xFD480003 >> 16) +/* C32AC 8012E41C 37180003 */ ori $t8, $t8, (0xFD480003 & 0xFFFF) +/* C32B0 8012E420 3C190700 */ lui $t9, (0x700C030 >> 16) +/* C32B4 8012E424 3739C030 */ ori $t9, $t9, (0x700C030 & 0xFFFF) +/* C32B8 8012E428 AFB800D0 */ sw $t8, 0xD0($sp) +/* C32BC 8012E42C 3C180700 */ lui $t8, (0x700E01C >> 16) +/* C32C0 8012E430 3718E01C */ ori $t8, $t8, (0x700E01C & 0xFFFF) +/* C32C4 8012E434 AFB900E0 */ sw $t9, 0xE0($sp) +/* C32C8 8012E438 3C190001 */ lui $t9, (0x1C01C >> 16) +/* C32CC 8012E43C 3739C01C */ ori $t9, $t9, (0x1C01C & 0xFFFF) +/* C32D0 8012E440 AFB800E4 */ sw $t8, 0xE4($sp) +/* C32D4 8012E444 3C18000E */ lui $t8, (0xE00B0 >> 16) +/* C32D8 8012E448 371800B0 */ ori $t8, $t8, (0xE00B0 & 0xFFFF) +/* C32DC 8012E44C 3C03802E */ lui $v1, %hi(D_802E7990) +/* C32E0 8012E450 24637990 */ addiu $v1, $v1, %lo(D_802E7990) +/* C32E4 8012E454 AFB900D4 */ sw $t9, 0xD4($sp) +/* C32E8 8012E458 8EE20000 */ lw $v0, 0x0($s7) +/* C32EC 8012E45C 3C08F200 */ lui $t0, (0xF2000000 >> 16) +/* C32F0 8012E460 AFB800D8 */ sw $t8, 0xD8($sp) +/* C32F4 8012E464 0040202D */ daddu $a0, $v0, $zero +/* C32F8 8012E468 24420008 */ addiu $v0, $v0, 0x8 +/* C32FC 8012E46C AEE20000 */ sw $v0, 0x0($s7) +/* C3300 8012E470 8FB900C4 */ lw $t9, 0xC4($sp) +/* C3304 8012E474 3C07E100 */ lui $a3, (0xE1000000 >> 16) +/* C3308 8012E478 AC830004 */ sw $v1, 0x4($a0) +/* C330C 8012E47C 24430008 */ addiu $v1, $v0, 0x8 +/* C3310 8012E480 AC990000 */ sw $t9, 0x0($a0) +/* C3314 8012E484 AEE30000 */ sw $v1, 0x0($s7) +/* C3318 8012E488 8FB800C8 */ lw $t8, 0xC8($sp) +/* C331C 8012E48C 24430010 */ addiu $v1, $v0, 0x10 +/* C3320 8012E490 AC580000 */ sw $t8, 0x0($v0) +/* C3324 8012E494 8FB900CC */ lw $t9, 0xCC($sp) +/* C3328 8012E498 3C18E600 */ lui $t8, (0xE6000000 >> 16) +/* C332C 8012E49C AC590004 */ sw $t9, 0x4($v0) +/* C3330 8012E4A0 AEE30000 */ sw $v1, 0x0($s7) +/* C3334 8012E4A4 24430018 */ addiu $v1, $v0, 0x18 +/* C3338 8012E4A8 3C19F400 */ lui $t9, (0xF4000000 >> 16) +/* C333C 8012E4AC AC580008 */ sw $t8, 0x8($v0) +/* C3340 8012E4B0 AC40000C */ sw $zero, 0xC($v0) +/* C3344 8012E4B4 AEE30000 */ sw $v1, 0x0($s7) +/* C3348 8012E4B8 24430020 */ addiu $v1, $v0, 0x20 +/* C334C 8012E4BC 3C18E700 */ lui $t8, (0xE7000000 >> 16) +/* C3350 8012E4C0 AC590010 */ sw $t9, 0x10($v0) +/* C3354 8012E4C4 AC520014 */ sw $s2, 0x14($v0) +/* C3358 8012E4C8 AEE30000 */ sw $v1, 0x0($s7) +/* C335C 8012E4CC 24430028 */ addiu $v1, $v0, 0x28 +/* C3360 8012E4D0 AC580018 */ sw $t8, 0x18($v0) +/* C3364 8012E4D4 AC40001C */ sw $zero, 0x1C($v0) +/* C3368 8012E4D8 AEE30000 */ sw $v1, 0x0($s7) +/* C336C 8012E4DC 24430030 */ addiu $v1, $v0, 0x30 +/* C3370 8012E4E0 AC540020 */ sw $s4, 0x20($v0) +/* C3374 8012E4E4 AC530024 */ sw $s3, 0x24($v0) +/* C3378 8012E4E8 AEE30000 */ sw $v1, 0x0($s7) +/* C337C 8012E4EC 24430038 */ addiu $v1, $v0, 0x38 +/* C3380 8012E4F0 AC480028 */ sw $t0, 0x28($v0) +/* C3384 8012E4F4 AC55002C */ sw $s5, 0x2C($v0) +/* C3388 8012E4F8 AEE30000 */ sw $v1, 0x0($s7) +/* C338C 8012E4FC 24430040 */ addiu $v1, $v0, 0x40 +/* C3390 8012E500 AC460030 */ sw $a2, 0x30($v0) +/* C3394 8012E504 AC450034 */ sw $a1, 0x34($v0) +/* C3398 8012E508 AEE30000 */ sw $v1, 0x0($s7) +/* C339C 8012E50C 24430048 */ addiu $v1, $v0, 0x48 +/* C33A0 8012E510 3C06F100 */ lui $a2, (0xF1000000 >> 16) +/* C33A4 8012E514 AC470038 */ sw $a3, 0x38($v0) +/* C33A8 8012E518 AC40003C */ sw $zero, 0x3C($v0) +/* C33AC 8012E51C AEE30000 */ sw $v1, 0x0($s7) +/* C33B0 8012E520 24430050 */ addiu $v1, $v0, 0x50 +/* C33B4 8012E524 AC460040 */ sw $a2, 0x40($v0) +/* C33B8 8012E528 AC490044 */ sw $t1, 0x44($v0) +/* C33BC 8012E52C AEE30000 */ sw $v1, 0x0($s7) +/* C33C0 8012E530 3C03802E */ lui $v1, %hi(D_802E7A90) +/* C33C4 8012E534 24637A90 */ addiu $v1, $v1, %lo(D_802E7A90) +/* C33C8 8012E538 AC4B0048 */ sw $t3, 0x48($v0) +/* C33CC 8012E53C AC43004C */ sw $v1, 0x4C($v0) +/* C33D0 8012E540 24430058 */ addiu $v1, $v0, 0x58 +/* C33D4 8012E544 AEE30000 */ sw $v1, 0x0($s7) +/* C33D8 8012E548 24430060 */ addiu $v1, $v0, 0x60 +/* C33DC 8012E54C 3C19E600 */ lui $t9, (0xE6000000 >> 16) +/* C33E0 8012E550 AC4A0050 */ sw $t2, 0x50($v0) +/* C33E4 8012E554 AC4D0054 */ sw $t5, 0x54($v0) +/* C33E8 8012E558 AEE30000 */ sw $v1, 0x0($s7) +/* C33EC 8012E55C 24430068 */ addiu $v1, $v0, 0x68 +/* C33F0 8012E560 3C18F400 */ lui $t8, (0xF4000000 >> 16) +/* C33F4 8012E564 AC590058 */ sw $t9, 0x58($v0) +/* C33F8 8012E568 AC40005C */ sw $zero, 0x5C($v0) +/* C33FC 8012E56C AEE30000 */ sw $v1, 0x0($s7) +/* C3400 8012E570 24430070 */ addiu $v1, $v0, 0x70 +/* C3404 8012E574 3C19E700 */ lui $t9, (0xE7000000 >> 16) +/* C3408 8012E578 AC580060 */ sw $t8, 0x60($v0) +/* C340C 8012E57C AC4E0064 */ sw $t6, 0x64($v0) +/* C3410 8012E580 AEE30000 */ sw $v1, 0x0($s7) +/* C3414 8012E584 24430078 */ addiu $v1, $v0, 0x78 +/* C3418 8012E588 AC590068 */ sw $t9, 0x68($v0) +/* C341C 8012E58C AC40006C */ sw $zero, 0x6C($v0) +/* C3420 8012E590 AEE30000 */ sw $v1, 0x0($s7) +/* C3424 8012E594 24430080 */ addiu $v1, $v0, 0x80 +/* C3428 8012E598 AC4C0070 */ sw $t4, 0x70($v0) +/* C342C 8012E59C AC4F0074 */ sw $t7, 0x74($v0) +/* C3430 8012E5A0 AEE30000 */ sw $v1, 0x0($s7) +/* C3434 8012E5A4 AC480078 */ sw $t0, 0x78($v0) +/* C3438 8012E5A8 AC50007C */ sw $s0, 0x7C($v0) +/* C343C 8012E5AC 97C404D6 */ lhu $a0, 0x4D6($fp) +/* C3440 8012E5B0 24430088 */ addiu $v1, $v0, 0x88 +/* C3444 8012E5B4 AEE30000 */ sw $v1, 0x0($s7) +/* C3448 8012E5B8 24430090 */ addiu $v1, $v0, 0x90 +/* C344C 8012E5BC AC510084 */ sw $s1, 0x84($v0) +/* C3450 8012E5C0 AEE30000 */ sw $v1, 0x0($s7) +/* C3454 8012E5C4 24430098 */ addiu $v1, $v0, 0x98 +/* C3458 8012E5C8 AC470088 */ sw $a3, 0x88($v0) +/* C345C 8012E5CC AC40008C */ sw $zero, 0x8C($v0) +/* C3460 8012E5D0 AEE30000 */ sw $v1, 0x0($s7) +/* C3464 8012E5D4 244300A0 */ addiu $v1, $v0, 0xA0 +/* C3468 8012E5D8 AC460090 */ sw $a2, 0x90($v0) +/* C346C 8012E5DC AC490094 */ sw $t1, 0x94($v0) +/* C3470 8012E5E0 AEE30000 */ sw $v1, 0x0($s7) +/* C3474 8012E5E4 3C03802E */ lui $v1, %hi(D_802E7BD0) +/* C3478 8012E5E8 24637BD0 */ addiu $v1, $v1, %lo(D_802E7BD0) +/* C347C 8012E5EC AC43009C */ sw $v1, 0x9C($v0) +/* C3480 8012E5F0 244300A8 */ addiu $v1, $v0, 0xA8 +/* C3484 8012E5F4 AC4B0098 */ sw $t3, 0x98($v0) +/* C3488 8012E5F8 AEE30000 */ sw $v1, 0x0($s7) +/* C348C 8012E5FC 3C03E40E */ lui $v1, (0xE40E0000 >> 16) +/* C3490 8012E600 3C05E442 */ lui $a1, (0xE4420000 >> 16) +/* C3494 8012E604 AC4A00A0 */ sw $t2, 0xA0($v0) +/* C3498 8012E608 2484000C */ addiu $a0, $a0, 0xC +/* C349C 8012E60C 00042080 */ sll $a0, $a0, 2 +/* C34A0 8012E610 30840FFF */ andi $a0, $a0, 0xFFF +/* C34A4 8012E614 00832025 */ or $a0, $a0, $v1 +/* C34A8 8012E618 244300B0 */ addiu $v1, $v0, 0xB0 +/* C34AC 8012E61C AC440080 */ sw $a0, 0x80($v0) +/* C34B0 8012E620 AC4D00A4 */ sw $t5, 0xA4($v0) +/* C34B4 8012E624 3C18E600 */ lui $t8, (0xE6000000 >> 16) +/* C34B8 8012E628 AEE30000 */ sw $v1, 0x0($s7) +/* C34BC 8012E62C 244300B8 */ addiu $v1, $v0, 0xB8 +/* C34C0 8012E630 3C19F400 */ lui $t9, (0xF4000000 >> 16) +/* C34C4 8012E634 AC5800A8 */ sw $t8, 0xA8($v0) +/* C34C8 8012E638 AC4000AC */ sw $zero, 0xAC($v0) +/* C34CC 8012E63C AEE30000 */ sw $v1, 0x0($s7) +/* C34D0 8012E640 244300C0 */ addiu $v1, $v0, 0xC0 +/* C34D4 8012E644 3C18E700 */ lui $t8, (0xE7000000 >> 16) +/* C34D8 8012E648 AC5900B0 */ sw $t9, 0xB0($v0) +/* C34DC 8012E64C AC4E00B4 */ sw $t6, 0xB4($v0) +/* C34E0 8012E650 AEE30000 */ sw $v1, 0x0($s7) +/* C34E4 8012E654 244300C8 */ addiu $v1, $v0, 0xC8 +/* C34E8 8012E658 AC5800B8 */ sw $t8, 0xB8($v0) +/* C34EC 8012E65C AC4000BC */ sw $zero, 0xBC($v0) +/* C34F0 8012E660 AEE30000 */ sw $v1, 0x0($s7) +/* C34F4 8012E664 244300D0 */ addiu $v1, $v0, 0xD0 +/* C34F8 8012E668 AC4C00C0 */ sw $t4, 0xC0($v0) +/* C34FC 8012E66C AC4F00C4 */ sw $t7, 0xC4($v0) +/* C3500 8012E670 AEE30000 */ sw $v1, 0x0($s7) +/* C3504 8012E674 AC4800C8 */ sw $t0, 0xC8($v0) +/* C3508 8012E678 AC5000CC */ sw $s0, 0xCC($v0) +/* C350C 8012E67C 97C404D6 */ lhu $a0, 0x4D6($fp) +/* C3510 8012E680 244300D8 */ addiu $v1, $v0, 0xD8 +/* C3514 8012E684 AEE30000 */ sw $v1, 0x0($s7) +/* C3518 8012E688 244300E0 */ addiu $v1, $v0, 0xE0 +/* C351C 8012E68C AC5600D4 */ sw $s6, 0xD4($v0) +/* C3520 8012E690 AEE30000 */ sw $v1, 0x0($s7) +/* C3524 8012E694 244300E8 */ addiu $v1, $v0, 0xE8 +/* C3528 8012E698 AC4700D8 */ sw $a3, 0xD8($v0) +/* C352C 8012E69C AC4000DC */ sw $zero, 0xDC($v0) +/* C3530 8012E6A0 AEE30000 */ sw $v1, 0x0($s7) +/* C3534 8012E6A4 244300F0 */ addiu $v1, $v0, 0xF0 +/* C3538 8012E6A8 AC4600E0 */ sw $a2, 0xE0($v0) +/* C353C 8012E6AC AC4900E4 */ sw $t1, 0xE4($v0) +/* C3540 8012E6B0 AEE30000 */ sw $v1, 0x0($s7) +/* C3544 8012E6B4 8FB900C4 */ lw $t9, 0xC4($sp) +/* C3548 8012E6B8 3C03802E */ lui $v1, %hi(D_802E7D10) +/* C354C 8012E6BC 24637D10 */ addiu $v1, $v1, %lo(D_802E7D10) +/* C3550 8012E6C0 AC5900E8 */ sw $t9, 0xE8($v0) +/* C3554 8012E6C4 AC4300EC */ sw $v1, 0xEC($v0) +/* C3558 8012E6C8 244300F8 */ addiu $v1, $v0, 0xF8 +/* C355C 8012E6CC AEE30000 */ sw $v1, 0x0($s7) +/* C3560 8012E6D0 24430100 */ addiu $v1, $v0, 0x100 +/* C3564 8012E6D4 2484000C */ addiu $a0, $a0, 0xC +/* C3568 8012E6D8 00042080 */ sll $a0, $a0, 2 +/* C356C 8012E6DC 8FB800C8 */ lw $t8, 0xC8($sp) +/* C3570 8012E6E0 30840FFF */ andi $a0, $a0, 0xFFF +/* C3574 8012E6E4 AC5800F0 */ sw $t8, 0xF0($v0) +/* C3578 8012E6E8 8FB900CC */ lw $t9, 0xCC($sp) +/* C357C 8012E6EC 3C18E600 */ lui $t8, (0xE6000000 >> 16) +/* C3580 8012E6F0 AC5900F4 */ sw $t9, 0xF4($v0) +/* C3584 8012E6F4 AEE30000 */ sw $v1, 0x0($s7) +/* C3588 8012E6F8 3C03E446 */ lui $v1, (0xE4460000 >> 16) +/* C358C 8012E6FC 00832025 */ or $a0, $a0, $v1 +/* C3590 8012E700 24430108 */ addiu $v1, $v0, 0x108 +/* C3594 8012E704 AC4400D0 */ sw $a0, 0xD0($v0) +/* C3598 8012E708 AC4000FC */ sw $zero, 0xFC($v0) +/* C359C 8012E70C 3C19F400 */ lui $t9, (0xF4000000 >> 16) +/* C35A0 8012E710 AC5800F8 */ sw $t8, 0xF8($v0) +/* C35A4 8012E714 AEE30000 */ sw $v1, 0x0($s7) +/* C35A8 8012E718 24430110 */ addiu $v1, $v0, 0x110 +/* C35AC 8012E71C 3C18E700 */ lui $t8, (0xE7000000 >> 16) +/* C35B0 8012E720 AC590100 */ sw $t9, 0x100($v0) +/* C35B4 8012E724 AC520104 */ sw $s2, 0x104($v0) +/* C35B8 8012E728 AEE30000 */ sw $v1, 0x0($s7) +/* C35BC 8012E72C 24430118 */ addiu $v1, $v0, 0x118 +/* C35C0 8012E730 AC580108 */ sw $t8, 0x108($v0) +/* C35C4 8012E734 AC40010C */ sw $zero, 0x10C($v0) +/* C35C8 8012E738 AEE30000 */ sw $v1, 0x0($s7) +/* C35CC 8012E73C 24430120 */ addiu $v1, $v0, 0x120 +/* C35D0 8012E740 AC540110 */ sw $s4, 0x110($v0) +/* C35D4 8012E744 AC530114 */ sw $s3, 0x114($v0) +/* C35D8 8012E748 AEE30000 */ sw $v1, 0x0($s7) +/* C35DC 8012E74C 24430128 */ addiu $v1, $v0, 0x128 +/* C35E0 8012E750 AC480118 */ sw $t0, 0x118($v0) +/* C35E4 8012E754 AC55011C */ sw $s5, 0x11C($v0) +/* C35E8 8012E758 AEE30000 */ sw $v1, 0x0($s7) +/* C35EC 8012E75C 24430130 */ addiu $v1, $v0, 0x130 +/* C35F0 8012E760 AEE30000 */ sw $v1, 0x0($s7) +/* C35F4 8012E764 24430138 */ addiu $v1, $v0, 0x138 +/* C35F8 8012E768 AEE30000 */ sw $v1, 0x0($s7) +/* C35FC 8012E76C 24430140 */ addiu $v1, $v0, 0x140 +/* C3600 8012E770 AEE30000 */ sw $v1, 0x0($s7) +/* C3604 8012E774 24430148 */ addiu $v1, $v0, 0x148 +/* C3608 8012E778 AEE30000 */ sw $v1, 0x0($s7) +/* C360C 8012E77C 97C304D6 */ lhu $v1, 0x4D6($fp) +/* C3610 8012E780 24440150 */ addiu $a0, $v0, 0x150 +/* C3614 8012E784 AEE40000 */ sw $a0, 0x0($s7) +/* C3618 8012E788 2463001C */ addiu $v1, $v1, 0x1C +/* C361C 8012E78C 00031880 */ sll $v1, $v1, 2 +/* C3620 8012E790 30630FFF */ andi $v1, $v1, 0xFFF +/* C3624 8012E794 00651825 */ or $v1, $v1, $a1 +/* C3628 8012E798 AC430120 */ sw $v1, 0x120($v0) +/* C362C 8012E79C 97C404D6 */ lhu $a0, 0x4D6($fp) +/* C3630 8012E7A0 24430158 */ addiu $v1, $v0, 0x158 +/* C3634 8012E7A4 AEE30000 */ sw $v1, 0x0($s7) +/* C3638 8012E7A8 AC470128 */ sw $a3, 0x128($v0) +/* C363C 8012E7AC AC40012C */ sw $zero, 0x12C($v0) +/* C3640 8012E7B0 AC460130 */ sw $a2, 0x130($v0) +/* C3644 8012E7B4 AC490134 */ sw $t1, 0x134($v0) +/* C3648 8012E7B8 8FB900D0 */ lw $t9, 0xD0($sp) +/* C364C 8012E7BC 3C03802E */ lui $v1, %hi(D_802E7E10) +/* C3650 8012E7C0 24637E10 */ addiu $v1, $v1, %lo(D_802E7E10) +/* C3654 8012E7C4 AC590138 */ sw $t9, 0x138($v0) +/* C3658 8012E7C8 3C19E600 */ lui $t9, (0xE6000000 >> 16) +/* C365C 8012E7CC 2484000C */ addiu $a0, $a0, 0xC +/* C3660 8012E7D0 00042080 */ sll $a0, $a0, 2 +/* C3664 8012E7D4 30840FFF */ andi $a0, $a0, 0xFFF +/* C3668 8012E7D8 AC43013C */ sw $v1, 0x13C($v0) +/* C366C 8012E7DC 3C03000E */ lui $v1, (0xE0000 >> 16) +/* C3670 8012E7E0 00832025 */ or $a0, $a0, $v1 +/* C3674 8012E7E4 AC4A0140 */ sw $t2, 0x140($v0) +/* C3678 8012E7E8 8FB800E0 */ lw $t8, 0xE0($sp) +/* C367C 8012E7EC 24430160 */ addiu $v1, $v0, 0x160 +/* C3680 8012E7F0 AC580144 */ sw $t8, 0x144($v0) +/* C3684 8012E7F4 AC40014C */ sw $zero, 0x14C($v0) +/* C3688 8012E7F8 AC440124 */ sw $a0, 0x124($v0) +/* C368C 8012E7FC 3C18F400 */ lui $t8, (0xF4000000 >> 16) +/* C3690 8012E800 AC590148 */ sw $t9, 0x148($v0) +/* C3694 8012E804 AC580150 */ sw $t8, 0x150($v0) +/* C3698 8012E808 8FB900E4 */ lw $t9, 0xE4($sp) +/* C369C 8012E80C 3C18E700 */ lui $t8, (0xE7000000 >> 16) +/* C36A0 8012E810 AC590154 */ sw $t9, 0x154($v0) +/* C36A4 8012E814 AEE30000 */ sw $v1, 0x0($s7) +/* C36A8 8012E818 24430168 */ addiu $v1, $v0, 0x168 +/* C36AC 8012E81C AC580158 */ sw $t8, 0x158($v0) +/* C36B0 8012E820 AC40015C */ sw $zero, 0x15C($v0) +/* C36B4 8012E824 AEE30000 */ sw $v1, 0x0($s7) +/* C36B8 8012E828 3403C030 */ ori $v1, $zero, 0xC030 +/* C36BC 8012E82C AC430164 */ sw $v1, 0x164($v0) +/* C36C0 8012E830 24430170 */ addiu $v1, $v0, 0x170 +/* C36C4 8012E834 AC4C0160 */ sw $t4, 0x160($v0) +/* C36C8 8012E838 AEE30000 */ sw $v1, 0x0($s7) +/* C36CC 8012E83C AC480168 */ sw $t0, 0x168($v0) +/* C36D0 8012E840 8FB900D4 */ lw $t9, 0xD4($sp) +/* C36D4 8012E844 AC59016C */ sw $t9, 0x16C($v0) +/* C36D8 8012E848 97C404D6 */ lhu $a0, 0x4D6($fp) +/* C36DC 8012E84C 24430178 */ addiu $v1, $v0, 0x178 +/* C36E0 8012E850 AEE30000 */ sw $v1, 0x0($s7) +/* C36E4 8012E854 8FB800D8 */ lw $t8, 0xD8($sp) +/* C36E8 8012E858 24430180 */ addiu $v1, $v0, 0x180 +/* C36EC 8012E85C AC580174 */ sw $t8, 0x174($v0) +/* C36F0 8012E860 AEE30000 */ sw $v1, 0x0($s7) +/* C36F4 8012E864 24430188 */ addiu $v1, $v0, 0x188 +/* C36F8 8012E868 2484000C */ addiu $a0, $a0, 0xC +/* C36FC 8012E86C 00042080 */ sll $a0, $a0, 2 +/* C3700 8012E870 30840FFF */ andi $a0, $a0, 0xFFF +/* C3704 8012E874 00852025 */ or $a0, $a0, $a1 +/* C3708 8012E878 AC470178 */ sw $a3, 0x178($v0) +/* C370C 8012E87C AC40017C */ sw $zero, 0x17C($v0) +/* C3710 8012E880 AEE30000 */ sw $v1, 0x0($s7) +/* C3714 8012E884 AC460180 */ sw $a2, 0x180($v0) +/* C3718 8012E888 AC490184 */ sw $t1, 0x184($v0) +/* C371C 8012E88C 0804BB1C */ j .LJP_8012EC70 +/* C3720 8012E890 AC440170 */ sw $a0, 0x170($v0) +.LJP_8012E894: +/* C3724 8012E894 0000902D */ daddu $s2, $zero, $zero +/* C3728 8012E898 240400FF */ addiu $a0, $zero, 0xFF +/* C372C 8012E89C 24050020 */ addiu $a1, $zero, 0x20 +/* C3730 8012E8A0 2402000C */ addiu $v0, $zero, 0xC +/* C3734 8012E8A4 00A0302D */ daddu $a2, $a1, $zero +/* C3738 8012E8A8 3C078016 */ lui $a3, %hi(msg_drawState) +/* C373C 8012E8AC 8CE7ACF4 */ lw $a3, %lo(msg_drawState)($a3) +/* C3740 8012E8B0 2411002B */ addiu $s1, $zero, 0x2B +/* C3744 8012E8B4 24190005 */ addiu $t9, $zero, 0x5 +/* C3748 8012E8B8 A4E20046 */ sh $v0, 0x46($a3) +/* C374C 8012E8BC 24020028 */ addiu $v0, $zero, 0x28 +/* C3750 8012E8C0 A4F90048 */ sh $t9, 0x48($a3) +/* C3754 8012E8C4 A7C2041A */ sh $v0, 0x41A($fp) +/* C3758 8012E8C8 2402001C */ addiu $v0, $zero, 0x1C +/* C375C 8012E8CC A7C2041C */ sh $v0, 0x41C($fp) +/* C3760 8012E8D0 2402002D */ addiu $v0, $zero, 0x2D +/* C3764 8012E8D4 ACE20000 */ sw $v0, 0x0($a3) +/* C3768 8012E8D8 00A0102D */ daddu $v0, $a1, $zero +/* C376C 8012E8DC ACE20008 */ sw $v0, 0x8($a3) +/* C3770 8012E8E0 24020110 */ addiu $v0, $zero, 0x110 +/* C3774 8012E8E4 ACE20004 */ sw $v0, 0x4($a3) +/* C3778 8012E8E8 94E30006 */ lhu $v1, 0x6($a3) +/* C377C 8012E8EC 24020051 */ addiu $v0, $zero, 0x51 +/* C3780 8012E8F0 ACE2000C */ sw $v0, 0xC($a3) +/* C3784 8012E8F4 2463FFEB */ addiu $v1, $v1, -0x15 +/* C3788 8012E8F8 A7C30442 */ sh $v1, 0x442($fp) +/* C378C 8012E8FC 94E2000E */ lhu $v0, 0xE($a3) +/* C3790 8012E900 241000EA */ addiu $s0, $zero, 0xEA +/* C3794 8012E904 2442FFEC */ addiu $v0, $v0, -0x14 +/* C3798 8012E908 A7C20444 */ sh $v0, 0x444($fp) +/* C379C 8012E90C A0E0002B */ sb $zero, 0x2B($a3) +/* C37A0 8012E910 3C028016 */ lui $v0, %hi(msg_drawState) +/* C37A4 8012E914 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) +/* C37A8 8012E918 0000382D */ daddu $a3, $zero, $zero +/* C37AC 8012E91C A440004A */ sh $zero, 0x4A($v0) +/* C37B0 8012E920 2402001B */ addiu $v0, $zero, 0x1B +/* C37B4 8012E924 24180001 */ addiu $t8, $zero, 0x1 +/* C37B8 8012E928 AFB10010 */ sw $s1, 0x10($sp) +/* C37BC 8012E92C AFA20014 */ sw $v0, 0x14($sp) +/* C37C0 8012E930 AFB00018 */ sw $s0, 0x18($sp) +/* C37C4 8012E934 0C04C6C8 */ jal msg_draw_prim_rect +/* C37C8 8012E938 AFB8001C */ sw $t8, 0x1C($sp) +/* C37CC 8012E93C 24040020 */ addiu $a0, $zero, 0x20 +/* C37D0 8012E940 240500FF */ addiu $a1, $zero, 0xFF +/* C37D4 8012E944 0080302D */ daddu $a2, $a0, $zero +/* C37D8 8012E948 0000382D */ daddu $a3, $zero, $zero +/* C37DC 8012E94C 24020056 */ addiu $v0, $zero, 0x56 +/* C37E0 8012E950 24190001 */ addiu $t9, $zero, 0x1 +/* C37E4 8012E954 AFB10010 */ sw $s1, 0x10($sp) +/* C37E8 8012E958 AFA20014 */ sw $v0, 0x14($sp) +/* C37EC 8012E95C AFB00018 */ sw $s0, 0x18($sp) +/* C37F0 8012E960 0C04C6C8 */ jal msg_draw_prim_rect +/* C37F4 8012E964 AFB9001C */ sw $t9, 0x1C($sp) +/* C37F8 8012E968 93C504B8 */ lbu $a1, 0x4B8($fp) +/* C37FC 8012E96C 24180002 */ addiu $t8, $zero, 0x2 +/* C3800 8012E970 14B80010 */ bne $a1, $t8, .LJP_8012E9B4 +/* C3804 8012E974 241300FF */ addiu $s3, $zero, 0xFF +/* C3808 8012E978 93C304C9 */ lbu $v1, 0x4C9($fp) +/* C380C 8012E97C 00031180 */ sll $v0, $v1, 6 +/* C3810 8012E980 24530050 */ addiu $s3, $v0, 0x50 +/* C3814 8012E984 326200FF */ andi $v0, $s3, 0xFF +/* C3818 8012E988 2442FFD0 */ addiu $v0, $v0, -0x30 +/* C381C 8012E98C 24630001 */ addiu $v1, $v1, 0x1 +/* C3820 8012E990 A7A2008E */ sh $v0, 0x8E($sp) +/* C3824 8012E994 A3C304C9 */ sb $v1, 0x4C9($fp) +/* C3828 8012E998 306300FF */ andi $v1, $v1, 0xFF +/* C382C 8012E99C 24020003 */ addiu $v0, $zero, 0x3 +/* C3830 8012E9A0 14620018 */ bne $v1, $v0, .LJP_8012EA04 +/* C3834 8012E9A4 24120001 */ addiu $s2, $zero, 0x1 +/* C3838 8012E9A8 24020004 */ addiu $v0, $zero, 0x4 +/* C383C 8012E9AC 0804BA81 */ j .LJP_8012EA04 +/* C3840 8012E9B0 A3C204B8 */ sb $v0, 0x4B8($fp) +.LJP_8012E9B4: +/* C3844 8012E9B4 24020003 */ addiu $v0, $zero, 0x3 +/* C3848 8012E9B8 14A20013 */ bne $a1, $v0, .LJP_8012EA08 +/* C384C 8012E9BC 24040028 */ addiu $a0, $zero, 0x28 +/* C3850 8012E9C0 93C404D2 */ lbu $a0, 0x4D2($fp) +/* C3854 8012E9C4 2403FFD0 */ addiu $v1, $zero, -0x30 +/* C3858 8012E9C8 00041040 */ sll $v0, $a0, 1 +/* C385C 8012E9CC 00441021 */ addu $v0, $v0, $a0 +/* C3860 8012E9D0 00021100 */ sll $v0, $v0, 4 +/* C3864 8012E9D4 00629823 */ subu $s3, $v1, $v0 +/* C3868 8012E9D8 326200FF */ andi $v0, $s3, 0xFF +/* C386C 8012E9DC 00431021 */ addu $v0, $v0, $v1 +/* C3870 8012E9E0 24840001 */ addiu $a0, $a0, 0x1 +/* C3874 8012E9E4 A7A2008E */ sh $v0, 0x8E($sp) +/* C3878 8012E9E8 A3C404D2 */ sb $a0, 0x4D2($fp) +/* C387C 8012E9EC 308400FF */ andi $a0, $a0, 0xFF +/* C3880 8012E9F0 14850004 */ bne $a0, $a1, .LJP_8012EA04 +/* C3884 8012E9F4 24120001 */ addiu $s2, $zero, 0x1 +/* C3888 8012E9F8 8FC204BC */ lw $v0, 0x4BC($fp) +/* C388C 8012E9FC 34420001 */ ori $v0, $v0, 0x1 +/* C3890 8012EA00 AFC204BC */ sw $v0, 0x4BC($fp) +.LJP_8012EA04: +/* C3894 8012EA04 24040028 */ addiu $a0, $zero, 0x28 +.LJP_8012EA08: +/* C3898 8012EA08 2405001C */ addiu $a1, $zero, 0x1C +/* C389C 8012EA0C 240600F0 */ addiu $a2, $zero, 0xF0 +/* C38A0 8012EA10 24020006 */ addiu $v0, $zero, 0x6 +/* C38A4 8012EA14 3C038016 */ lui $v1, %hi(msg_drawState) +/* C38A8 8012EA18 8C63ACF4 */ lw $v1, %lo(msg_drawState)($v1) +/* C38AC 8012EA1C 2407003A */ addiu $a3, $zero, 0x3A +/* C38B0 8012EA20 AFA20010 */ sw $v0, 0x10($sp) +/* C38B4 8012EA24 9062002B */ lbu $v0, 0x2B($v1) +/* C38B8 8012EA28 327000FF */ andi $s0, $s3, 0xFF +/* C38BC 8012EA2C AFB20018 */ sw $s2, 0x18($sp) +/* C38C0 8012EA30 AFB0001C */ sw $s0, 0x1C($sp) +/* C38C4 8012EA34 AFB00020 */ sw $s0, 0x20($sp) +/* C38C8 8012EA38 0C04CB34 */ jal msg_draw_frame +/* C38CC 8012EA3C AFA20014 */ sw $v0, 0x14($sp) +/* C38D0 8012EA40 24050096 */ addiu $a1, $zero, 0x96 +/* C38D4 8012EA44 24060069 */ addiu $a2, $zero, 0x69 +/* C38D8 8012EA48 AFA00010 */ sw $zero, 0x10($sp) +/* C38DC 8012EA4C 8FC30508 */ lw $v1, 0x508($fp) +/* C38E0 8012EA50 24020055 */ addiu $v0, $zero, 0x55 +/* C38E4 8012EA54 AFA20018 */ sw $v0, 0x18($sp) +/* C38E8 8012EA58 24020061 */ addiu $v0, $zero, 0x61 +/* C38EC 8012EA5C 2419000A */ addiu $t9, $zero, 0xA +/* C38F0 8012EA60 0320C02D */ daddu $t8, $t9, $zero +/* C38F4 8012EA64 2412012C */ addiu $s2, $zero, 0x12C +/* C38F8 8012EA68 241100DC */ addiu $s1, $zero, 0xDC +/* C38FC 8012EA6C AFA2001C */ sw $v0, 0x1C($sp) +/* C3900 8012EA70 AFB90020 */ sw $t9, 0x20($sp) +/* C3904 8012EA74 AFB80024 */ sw $t8, 0x24($sp) +/* C3908 8012EA78 AFB20028 */ sw $s2, 0x28($sp) +/* C390C 8012EA7C AFB1002C */ sw $s1, 0x2C($sp) +/* C3910 8012EA80 AFB00030 */ sw $s0, 0x30($sp) +/* C3914 8012EA84 AFA30014 */ sw $v1, 0x14($sp) +/* C3918 8012EA88 8FC40504 */ lw $a0, 0x504($fp) +/* C391C 8012EA8C 0C04CEC8 */ jal draw_ci_image_with_clipping +/* C3920 8012EA90 24070002 */ addiu $a3, $zero, 0x2 +/* C3924 8012EA94 24050046 */ addiu $a1, $zero, 0x46 +/* C3928 8012EA98 2406005F */ addiu $a2, $zero, 0x5F +/* C392C 8012EA9C 24190001 */ addiu $t9, $zero, 0x1 +/* C3930 8012EAA0 AFB90010 */ sw $t9, 0x10($sp) +/* C3934 8012EAA4 8FC30510 */ lw $v1, 0x510($fp) +/* C3938 8012EAA8 240200A0 */ addiu $v0, $zero, 0xA0 +/* C393C 8012EAAC AFA20018 */ sw $v0, 0x18($sp) +/* C3940 8012EAB0 24020066 */ addiu $v0, $zero, 0x66 +/* C3944 8012EAB4 2418000A */ addiu $t8, $zero, 0xA +/* C3948 8012EAB8 0300C82D */ daddu $t9, $t8, $zero +/* C394C 8012EABC AFA2001C */ sw $v0, 0x1C($sp) +/* C3950 8012EAC0 AFB80020 */ sw $t8, 0x20($sp) +/* C3954 8012EAC4 AFB90024 */ sw $t9, 0x24($sp) +/* C3958 8012EAC8 AFB20028 */ sw $s2, 0x28($sp) +/* C395C 8012EACC AFB1002C */ sw $s1, 0x2C($sp) +/* C3960 8012EAD0 AFB00030 */ sw $s0, 0x30($sp) +/* C3964 8012EAD4 AFA30014 */ sw $v1, 0x14($sp) +/* C3968 8012EAD8 8FC4050C */ lw $a0, 0x50C($fp) +/* C396C 8012EADC 0C04CEC8 */ jal draw_ci_image_with_clipping +/* C3970 8012EAE0 24070002 */ addiu $a3, $zero, 0x2 +/* C3974 8012EAE4 0C04C516 */ jal msg_reset_gfx_state +/* C3978 8012EAE8 327300FF */ andi $s3, $s3, 0xFF +/* C397C 8012EAEC 3C038016 */ lui $v1, %hi(msg_drawState) +/* C3980 8012EAF0 8C63ACF4 */ lw $v1, %lo(msg_drawState)($v1) +/* C3984 8012EAF4 8C620020 */ lw $v0, 0x20($v1) +/* C3988 8012EAF8 0804BF3D */ j .LJP_8012FCF4 +/* C398C 8012EAFC A7B300AE */ sh $s3, 0xAE($sp) +.LJP_8012EB00: +/* C3990 8012EB00 3C038016 */ lui $v1, %hi(msg_drawState) +/* C3994 8012EB04 8C63ACF4 */ lw $v1, %lo(msg_drawState)($v1) +/* C3998 8012EB08 94640034 */ lhu $a0, 0x34($v1) +/* C399C 8012EB0C 24020010 */ addiu $v0, $zero, 0x10 +/* C39A0 8012EB10 A4620046 */ sh $v0, 0x46($v1) +/* C39A4 8012EB14 24020008 */ addiu $v0, $zero, 0x8 +/* C39A8 8012EB18 A4620048 */ sh $v0, 0x48($v1) +/* C39AC 8012EB1C 2402013F */ addiu $v0, $zero, 0x13F +/* C39B0 8012EB20 AC620004 */ sw $v0, 0x4($v1) +/* C39B4 8012EB24 240200EF */ addiu $v0, $zero, 0xEF +/* C39B8 8012EB28 AC600000 */ sw $zero, 0x0($v1) +/* C39BC 8012EB2C AC600008 */ sw $zero, 0x8($v1) +/* C39C0 8012EB30 AC62000C */ sw $v0, 0xC($v1) +/* C39C4 8012EB34 A460004A */ sh $zero, 0x4A($v1) +/* C39C8 8012EB38 34840010 */ ori $a0, $a0, 0x10 +/* C39CC 8012EB3C A4640034 */ sh $a0, 0x34($v1) +/* C39D0 8012EB40 93C204B8 */ lbu $v0, 0x4B8($fp) +/* C39D4 8012EB44 2442FFF3 */ addiu $v0, $v0, -0xD +/* C39D8 8012EB48 2C420002 */ sltiu $v0, $v0, 0x2 +/* C39DC 8012EB4C 10400004 */ beqz $v0, .LJP_8012EB60 +/* C39E0 8012EB50 0000202D */ daddu $a0, $zero, $zero +/* C39E4 8012EB54 A7C0041A */ sh $zero, 0x41A($fp) +/* C39E8 8012EB58 0804BB1C */ j .LJP_8012EC70 +/* C39EC 8012EB5C A7C0041C */ sh $zero, 0x41C($fp) +.LJP_8012EB60: +/* C39F0 8012EB60 0080282D */ daddu $a1, $a0, $zero +/* C39F4 8012EB64 97C304D4 */ lhu $v1, 0x4D4($fp) +/* C39F8 8012EB68 240200A0 */ addiu $v0, $zero, 0xA0 +/* C39FC 8012EB6C 00031842 */ srl $v1, $v1, 1 +/* C3A00 8012EB70 00431023 */ subu $v0, $v0, $v1 +/* C3A04 8012EB74 A7C2041A */ sh $v0, 0x41A($fp) +/* C3A08 8012EB78 87C6041A */ lh $a2, 0x41A($fp) +/* C3A0C 8012EB7C 24020038 */ addiu $v0, $zero, 0x38 +/* C3A10 8012EB80 A7C2041C */ sh $v0, 0x41C($fp) +/* C3A14 8012EB84 AFA00010 */ sw $zero, 0x10($sp) +/* C3A18 8012EB88 97C204D4 */ lhu $v0, 0x4D4($fp) +/* C3A1C 8012EB8C 24070038 */ addiu $a3, $zero, 0x38 +/* C3A20 8012EB90 AFA20014 */ sw $v0, 0x14($sp) +/* C3A24 8012EB94 97C304D6 */ lhu $v1, 0x4D6($fp) +/* C3A28 8012EB98 241800FF */ addiu $t8, $zero, 0xFF +/* C3A2C 8012EB9C 24020140 */ addiu $v0, $zero, 0x140 +/* C3A30 8012EBA0 AFA20044 */ sw $v0, 0x44($sp) +/* C3A34 8012EBA4 240200F0 */ addiu $v0, $zero, 0xF0 +/* C3A38 8012EBA8 AFB8001C */ sw $t8, 0x1C($sp) +/* C3A3C 8012EBAC AFA00020 */ sw $zero, 0x20($sp) +/* C3A40 8012EBB0 AFA00024 */ sw $zero, 0x24($sp) +/* C3A44 8012EBB4 AFA00028 */ sw $zero, 0x28($sp) +/* C3A48 8012EBB8 AFA0002C */ sw $zero, 0x2C($sp) +/* C3A4C 8012EBBC AFA00030 */ sw $zero, 0x30($sp) +/* C3A50 8012EBC0 AFA00034 */ sw $zero, 0x34($sp) +/* C3A54 8012EBC4 AFA00038 */ sw $zero, 0x38($sp) +/* C3A58 8012EBC8 AFA0003C */ sw $zero, 0x3C($sp) +/* C3A5C 8012EBCC AFA00040 */ sw $zero, 0x40($sp) +/* C3A60 8012EBD0 AFA20048 */ sw $v0, 0x48($sp) +/* C3A64 8012EBD4 AFA0004C */ sw $zero, 0x4C($sp) +/* C3A68 8012EBD8 0C03D51C */ jal draw_box +/* C3A6C 8012EBDC AFA30018 */ sw $v1, 0x18($sp) +/* C3A70 8012EBE0 0804BB1C */ j .LJP_8012EC70 +/* C3A74 8012EBE4 00000000 */ nop +.LJP_8012EBE8: +/* C3A78 8012EBE8 3C048016 */ lui $a0, %hi(msg_drawState) +/* C3A7C 8012EBEC 8C84ACF4 */ lw $a0, %lo(msg_drawState)($a0) +/* C3A80 8012EBF0 2402003C */ addiu $v0, $zero, 0x3C +/* C3A84 8012EBF4 A7C2041A */ sh $v0, 0x41A($fp) +/* C3A88 8012EBF8 2402006E */ addiu $v0, $zero, 0x6E +/* C3A8C 8012EBFC A7C2041C */ sh $v0, 0x41C($fp) +/* C3A90 8012EC00 240200C8 */ addiu $v0, $zero, 0xC8 +/* C3A94 8012EC04 A7C204D4 */ sh $v0, 0x4D4($fp) +/* C3A98 8012EC08 24020032 */ addiu $v0, $zero, 0x32 +/* C3A9C 8012EC0C A7C204D6 */ sh $v0, 0x4D6($fp) +/* C3AA0 8012EC10 A4800046 */ sh $zero, 0x46($a0) +/* C3AA4 8012EC14 A4800048 */ sh $zero, 0x48($a0) +/* C3AA8 8012EC18 87C2041A */ lh $v0, 0x41A($fp) +/* C3AAC 8012EC1C AC820000 */ sw $v0, 0x0($a0) +/* C3AB0 8012EC20 87C2041C */ lh $v0, 0x41C($fp) +/* C3AB4 8012EC24 AC820008 */ sw $v0, 0x8($a0) +/* C3AB8 8012EC28 87C2041A */ lh $v0, 0x41A($fp) +/* C3ABC 8012EC2C 97C304D4 */ lhu $v1, 0x4D4($fp) +/* C3AC0 8012EC30 00431021 */ addu $v0, $v0, $v1 +/* C3AC4 8012EC34 AC820004 */ sw $v0, 0x4($a0) +/* C3AC8 8012EC38 87C2041C */ lh $v0, 0x41C($fp) +/* C3ACC 8012EC3C 97C304D6 */ lhu $v1, 0x4D6($fp) +/* C3AD0 8012EC40 00431021 */ addu $v0, $v0, $v1 +/* C3AD4 8012EC44 AC82000C */ sw $v0, 0xC($a0) +/* C3AD8 8012EC48 97C3041A */ lhu $v1, 0x41A($fp) +/* C3ADC 8012EC4C 97C204D4 */ lhu $v0, 0x4D4($fp) +/* C3AE0 8012EC50 97C404D6 */ lhu $a0, 0x4D6($fp) +/* C3AE4 8012EC54 00621821 */ addu $v1, $v1, $v0 +/* C3AE8 8012EC58 97C2041C */ lhu $v0, 0x41C($fp) +/* C3AEC 8012EC5C 2463FFF6 */ addiu $v1, $v1, -0xA +/* C3AF0 8012EC60 A7C30442 */ sh $v1, 0x442($fp) +/* C3AF4 8012EC64 00441021 */ addu $v0, $v0, $a0 +/* C3AF8 8012EC68 2442FFF6 */ addiu $v0, $v0, -0xA +/* C3AFC 8012EC6C A7C20444 */ sh $v0, 0x444($fp) +.LJP_8012EC70: +/* C3B00 8012EC70 0C04C516 */ jal msg_reset_gfx_state +/* C3B04 8012EC74 00000000 */ nop +/* C3B08 8012EC78 0804BF3A */ j .LJP_8012FCE8 +/* C3B0C 8012EC7C 00000000 */ nop +.LJP_8012EC80: +/* C3B10 8012EC80 93C304B8 */ lbu $v1, 0x4B8($fp) +/* C3B14 8012EC84 2402000C */ addiu $v0, $zero, 0xC +/* C3B18 8012EC88 1462000A */ bne $v1, $v0, .LJP_8012ECB4 +/* C3B1C 8012EC8C 2402000B */ addiu $v0, $zero, 0xB +/* C3B20 8012EC90 3C028016 */ lui $v0, %hi(msg_drawState) +/* C3B24 8012EC94 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) +/* C3B28 8012EC98 93C30447 */ lbu $v1, 0x447($fp) +/* C3B2C 8012EC9C 90420050 */ lbu $v0, 0x50($v0) +/* C3B30 8012ECA0 0043102B */ sltu $v0, $v0, $v1 +/* C3B34 8012ECA4 14400037 */ bnez $v0, .LJP_8012ED84 +/* C3B38 8012ECA8 24190001 */ addiu $t9, $zero, 0x1 +/* C3B3C 8012ECAC 0804BB61 */ j .LJP_8012ED84 +/* C3B40 8012ECB0 A7B90080 */ sh $t9, 0x80($sp) +.LJP_8012ECB4: +/* C3B44 8012ECB4 14620033 */ bne $v1, $v0, .LJP_8012ED84 +/* C3B48 8012ECB8 00000000 */ nop +/* C3B4C 8012ECBC 93C50447 */ lbu $a1, 0x447($fp) +/* C3B50 8012ECC0 00051040 */ sll $v0, $a1, 1 +/* C3B54 8012ECC4 03C21021 */ addu $v0, $fp, $v0 +/* C3B58 8012ECC8 94430448 */ lhu $v1, 0x448($v0) +/* C3B5C 8012ECCC 8FC20420 */ lw $v0, 0x420($fp) +/* C3B60 8012ECD0 0043102A */ slt $v0, $v0, $v1 +/* C3B64 8012ECD4 10400009 */ beqz $v0, .LJP_8012ECFC +/* C3B68 8012ECD8 00A0182D */ daddu $v1, $a1, $zero +/* C3B6C 8012ECDC 3C028016 */ lui $v0, %hi(msg_drawState) +/* C3B70 8012ECE0 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) +/* C3B74 8012ECE4 90420050 */ lbu $v0, 0x50($v0) +/* C3B78 8012ECE8 0045102B */ sltu $v0, $v0, $a1 +/* C3B7C 8012ECEC 14400025 */ bnez $v0, .LJP_8012ED84 +/* C3B80 8012ECF0 24180001 */ addiu $t8, $zero, 0x1 +/* C3B84 8012ECF4 0804BB61 */ j .LJP_8012ED84 +/* C3B88 8012ECF8 A7B80080 */ sh $t8, 0x80($sp) +.LJP_8012ECFC: +/* C3B8C 8012ECFC 3C028016 */ lui $v0, %hi(msg_drawState) +/* C3B90 8012ED00 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) +/* C3B94 8012ED04 90440050 */ lbu $a0, 0x50($v0) +/* C3B98 8012ED08 0064102B */ sltu $v0, $v1, $a0 +/* C3B9C 8012ED0C 10400003 */ beqz $v0, .LJP_8012ED1C +/* C3BA0 8012ED10 24190001 */ addiu $t9, $zero, 0x1 +/* C3BA4 8012ED14 0804BB61 */ j .LJP_8012ED84 +/* C3BA8 8012ED18 A7B90080 */ sh $t9, 0x80($sp) +.LJP_8012ED1C: +/* C3BAC 8012ED1C 0083102B */ sltu $v0, $a0, $v1 +/* C3BB0 8012ED20 14400018 */ bnez $v0, .LJP_8012ED84 +/* C3BB4 8012ED24 00000000 */ nop +/* C3BB8 8012ED28 93C304FC */ lbu $v1, 0x4FC($fp) +/* C3BBC 8012ED2C 2C620002 */ sltiu $v0, $v1, 0x2 +/* C3BC0 8012ED30 14400014 */ bnez $v0, .LJP_8012ED84 +/* C3BC4 8012ED34 24040024 */ addiu $a0, $zero, 0x24 +/* C3BC8 8012ED38 24180002 */ addiu $t8, $zero, 0x2 +/* C3BCC 8012ED3C 14780002 */ bne $v1, $t8, .LJP_8012ED48 +/* C3BD0 8012ED40 24020030 */ addiu $v0, $zero, 0x30 +/* C3BD4 8012ED44 24020020 */ addiu $v0, $zero, 0x20 +.LJP_8012ED48: +/* C3BD8 8012ED48 97C30488 */ lhu $v1, 0x488($fp) +/* C3BDC 8012ED4C 0062102A */ slt $v0, $v1, $v0 +/* C3BE0 8012ED50 1040000C */ beqz $v0, .LJP_8012ED84 +/* C3BE4 8012ED54 2C620011 */ sltiu $v0, $v1, 0x11 +/* C3BE8 8012ED58 54400001 */ bnel $v0, $zero, .LJP_8012ED60 +/* C3BEC 8012ED5C 24040038 */ addiu $a0, $zero, 0x38 +.LJP_8012ED60: +/* C3BF0 8012ED60 97C2048C */ lhu $v0, 0x48C($fp) +/* C3BF4 8012ED64 00820018 */ mult $a0, $v0 +/* C3BF8 8012ED68 241800FF */ addiu $t8, $zero, 0xFF +/* C3BFC 8012ED6C 0000C812 */ mflo $t9 +/* C3C00 8012ED70 03191023 */ subu $v0, $t8, $t9 +/* C3C04 8012ED74 A7A2008E */ sh $v0, 0x8E($sp) +/* C3C08 8012ED78 00021400 */ sll $v0, $v0, 16 +/* C3C0C 8012ED7C 04420001 */ bltzl $v0, .LJP_8012ED84 +/* C3C10 8012ED80 A7A0008E */ sh $zero, 0x8E($sp) +.LJP_8012ED84: +/* C3C14 8012ED84 3C038016 */ lui $v1, %hi(msg_drawState) +/* C3C18 8012ED88 8C63ACF4 */ lw $v1, %lo(msg_drawState)($v1) +/* C3C1C 8012ED8C 90620050 */ lbu $v0, 0x50($v1) +/* C3C20 8012ED90 24420001 */ addiu $v0, $v0, 0x1 +/* C3C24 8012ED94 0804BE1A */ j .LJP_8012F868 +/* C3C28 8012ED98 A0620050 */ sb $v0, 0x50($v1) +.LJP_8012ED9C: +/* C3C2C 8012ED9C 24180001 */ addiu $t8, $zero, 0x1 +/* C3C30 8012EDA0 0804C43A */ j .LJP_801310E8 +/* C3C34 8012EDA4 A7B80080 */ sh $t8, 0x80($sp) +.LJP_8012EDA8: +/* C3C38 8012EDA8 3C038016 */ lui $v1, %hi(msg_drawState) +/* C3C3C 8012EDAC 8C63ACF4 */ lw $v1, %lo(msg_drawState)($v1) +/* C3C40 8012EDB0 8C620020 */ lw $v0, 0x20($v1) +/* C3C44 8012EDB4 8C64004C */ lw $a0, 0x4C($v1) +/* C3C48 8012EDB8 24420001 */ addiu $v0, $v0, 0x1 +/* C3C4C 8012EDBC 00822021 */ addu $a0, $a0, $v0 +/* C3C50 8012EDC0 AC620020 */ sw $v0, 0x20($v1) +/* C3C54 8012EDC4 90830000 */ lbu $v1, 0x0($a0) +/* C3C58 8012EDC8 2C62001F */ sltiu $v0, $v1, 0x1F +/* C3C5C 8012EDCC 104008C6 */ beqz $v0, .LJP_801310E8 +/* C3C60 8012EDD0 00031080 */ sll $v0, $v1, 2 +/* C3C64 8012EDD4 3C018015 */ lui $at, %hi(jtbl_JP_80155840) +/* C3C68 8012EDD8 00220821 */ addu $at, $at, $v0 +/* C3C6C 8012EDDC 8C225840 */ lw $v0, %lo(jtbl_JP_80155840)($at) +/* C3C70 8012EDE0 00400008 */ jr $v0 +/* C3C74 8012EDE4 00000000 */ nop +.LJP_8012EDE8: +/* C3C78 8012EDE8 3C048016 */ lui $a0, %hi(msg_drawState) +/* C3C7C 8012EDEC 8C84ACF4 */ lw $a0, %lo(msg_drawState)($a0) +/* C3C80 8012EDF0 8C820020 */ lw $v0, 0x20($a0) +/* C3C84 8012EDF4 8C83004C */ lw $v1, 0x4C($a0) +/* C3C88 8012EDF8 00431021 */ addu $v0, $v0, $v1 +/* C3C8C 8012EDFC 90450001 */ lbu $a1, 0x1($v0) +/* C3C90 8012EE00 8C820020 */ lw $v0, 0x20($a0) +/* C3C94 8012EE04 94830034 */ lhu $v1, 0x34($a0) +/* C3C98 8012EE08 24420002 */ addiu $v0, $v0, 0x2 +/* C3C9C 8012EE0C 34630010 */ ori $v1, $v1, 0x10 +/* C3CA0 8012EE10 AC820020 */ sw $v0, 0x20($a0) +/* C3CA4 8012EE14 A4830034 */ sh $v1, 0x34($a0) +/* C3CA8 8012EE18 0804C43A */ j .LJP_801310E8 +/* C3CAC 8012EE1C A485003C */ sh $a1, 0x3C($a0) +.LJP_8012EE20: +/* C3CB0 8012EE20 3C048016 */ lui $a0, %hi(msg_drawState) +/* C3CB4 8012EE24 8C84ACF4 */ lw $a0, %lo(msg_drawState)($a0) +/* C3CB8 8012EE28 8C830020 */ lw $v1, 0x20($a0) +/* C3CBC 8012EE2C 8C82004C */ lw $v0, 0x4C($a0) +/* C3CC0 8012EE30 00621821 */ addu $v1, $v1, $v0 +/* C3CC4 8012EE34 8C820020 */ lw $v0, 0x20($a0) +/* C3CC8 8012EE38 90630001 */ lbu $v1, 0x1($v1) +/* C3CCC 8012EE3C 24420002 */ addiu $v0, $v0, 0x2 +/* C3CD0 8012EE40 AC820020 */ sw $v0, 0x20($a0) +/* C3CD4 8012EE44 0804C43A */ j .LJP_801310E8 +/* C3CD8 8012EE48 A483003E */ sh $v1, 0x3E($a0) +.LJP_8012EE4C: +/* C3CDC 8012EE4C 3C048016 */ lui $a0, %hi(msg_drawState) +/* C3CE0 8012EE50 8C84ACF4 */ lw $a0, %lo(msg_drawState)($a0) +/* C3CE4 8012EE54 8C820020 */ lw $v0, 0x20($a0) +/* C3CE8 8012EE58 8C83004C */ lw $v1, 0x4C($a0) +/* C3CEC 8012EE5C 00431021 */ addu $v0, $v0, $v1 +/* C3CF0 8012EE60 90450001 */ lbu $a1, 0x1($v0) +/* C3CF4 8012EE64 94820034 */ lhu $v0, 0x34($a0) +/* C3CF8 8012EE68 8C830020 */ lw $v1, 0x20($a0) +/* C3CFC 8012EE6C 34420010 */ ori $v0, $v0, 0x10 +/* C3D00 8012EE70 24630002 */ addiu $v1, $v1, 0x2 +/* C3D04 8012EE74 A4820034 */ sh $v0, 0x34($a0) +/* C3D08 8012EE78 AC830020 */ sw $v1, 0x20($a0) +/* C3D0C 8012EE7C 0804C43A */ j .LJP_801310E8 +/* C3D10 8012EE80 A485004A */ sh $a1, 0x4A($a0) +.LJP_8012EE84: +/* C3D14 8012EE84 3C048016 */ lui $a0, %hi(msg_drawState) +/* C3D18 8012EE88 8C84ACF4 */ lw $a0, %lo(msg_drawState)($a0) +/* C3D1C 8012EE8C 8C820020 */ lw $v0, 0x20($a0) +/* C3D20 8012EE90 8C83004C */ lw $v1, 0x4C($a0) +/* C3D24 8012EE94 00431021 */ addu $v0, $v0, $v1 +/* C3D28 8012EE98 90420001 */ lbu $v0, 0x1($v0) +/* C3D2C 8012EE9C 0804BF3A */ j .LJP_8012FCE8 +/* C3D30 8012EEA0 A0820040 */ sb $v0, 0x40($a0) +.LJP_8012EEA4: +/* C3D34 8012EEA4 3C048016 */ lui $a0, %hi(msg_drawState) +/* C3D38 8012EEA8 8C84ACF4 */ lw $a0, %lo(msg_drawState)($a0) +/* C3D3C 8012EEAC 8C820020 */ lw $v0, 0x20($a0) +/* C3D40 8012EEB0 8C83004C */ lw $v1, 0x4C($a0) +/* C3D44 8012EEB4 00431021 */ addu $v0, $v0, $v1 +/* C3D48 8012EEB8 90420001 */ lbu $v0, 0x1($v0) +/* C3D4C 8012EEBC 3C013D80 */ lui $at, (0x3D800000 >> 16) +/* C3D50 8012EEC0 44812000 */ mtc1 $at, $f4 +/* C3D54 8012EEC4 3043000F */ andi $v1, $v0, 0xF +/* C3D58 8012EEC8 44830000 */ mtc1 $v1, $f0 +/* C3D5C 8012EECC 00000000 */ nop +/* C3D60 8012EED0 46800020 */ cvt.s.w $f0, $f0 +/* C3D64 8012EED4 46040002 */ mul.s $f0, $f0, $f4 +/* C3D68 8012EED8 00000000 */ nop +/* C3D6C 8012EEDC 00021102 */ srl $v0, $v0, 4 +/* C3D70 8012EEE0 44821000 */ mtc1 $v0, $f2 +/* C3D74 8012EEE4 00000000 */ nop +/* C3D78 8012EEE8 468010A0 */ cvt.s.w $f2, $f2 +/* C3D7C 8012EEEC 8C820020 */ lw $v0, 0x20($a0) +/* C3D80 8012EEF0 8C83004C */ lw $v1, 0x4C($a0) +/* C3D84 8012EEF4 46001080 */ add.s $f2, $f2, $f0 +/* C3D88 8012EEF8 00431021 */ addu $v0, $v0, $v1 +/* C3D8C 8012EEFC E4820010 */ swc1 $f2, 0x10($a0) +/* C3D90 8012EF00 90420002 */ lbu $v0, 0x2($v0) +/* C3D94 8012EF04 00021902 */ srl $v1, $v0, 4 +/* C3D98 8012EF08 3042000F */ andi $v0, $v0, 0xF +/* C3D9C 8012EF0C 44820000 */ mtc1 $v0, $f0 +/* C3DA0 8012EF10 00000000 */ nop +/* C3DA4 8012EF14 46800020 */ cvt.s.w $f0, $f0 +/* C3DA8 8012EF18 46040002 */ mul.s $f0, $f0, $f4 +/* C3DAC 8012EF1C 00000000 */ nop +/* C3DB0 8012EF20 3C013FF0 */ lui $at, (0x3FF00000 >> 16) +/* C3DB4 8012EF24 44816800 */ mtc1 $at, $f13 +/* C3DB8 8012EF28 44806000 */ mtc1 $zero, $f12 +/* C3DBC 8012EF2C 44831000 */ mtc1 $v1, $f2 +/* C3DC0 8012EF30 00000000 */ nop +/* C3DC4 8012EF34 468010A0 */ cvt.s.w $f2, $f2 +/* C3DC8 8012EF38 8C820020 */ lw $v0, 0x20($a0) +/* C3DCC 8012EF3C C4840010 */ lwc1 $f4, 0x10($a0) +/* C3DD0 8012EF40 46001080 */ add.s $f2, $f2, $f0 +/* C3DD4 8012EF44 24420003 */ addiu $v0, $v0, 0x3 +/* C3DD8 8012EF48 46002121 */ cvt.d.s $f4, $f4 +/* C3DDC 8012EF4C 4624603C */ c.lt.d $f12, $f4 +/* C3DE0 8012EF50 AC820020 */ sw $v0, 0x20($a0) +/* C3DE4 8012EF54 45010007 */ bc1t .LJP_8012EF74 +/* C3DE8 8012EF58 E4820014 */ swc1 $f2, 0x14($a0) +/* C3DEC 8012EF5C 46001006 */ mov.s $f0, $f2 +/* C3DF0 8012EF60 46000021 */ cvt.d.s $f0, $f0 +/* C3DF4 8012EF64 4620603C */ c.lt.d $f12, $f0 +/* C3DF8 8012EF68 00000000 */ nop +/* C3DFC 8012EF6C 4500000A */ bc1f .LJP_8012EF98 +/* C3E00 8012EF70 00000000 */ nop +.LJP_8012EF74: +/* C3E04 8012EF74 3C02E300 */ lui $v0, (0xE3001201 >> 16) +/* C3E08 8012EF78 8EE30000 */ lw $v1, 0x0($s7) +/* C3E0C 8012EF7C 34421201 */ ori $v0, $v0, (0xE3001201 & 0xFFFF) +/* C3E10 8012EF80 0060202D */ daddu $a0, $v1, $zero +/* C3E14 8012EF84 24630008 */ addiu $v1, $v1, 0x8 +/* C3E18 8012EF88 AEE30000 */ sw $v1, 0x0($s7) +/* C3E1C 8012EF8C AC820000 */ sw $v0, 0x0($a0) +/* C3E20 8012EF90 0804C43A */ j .LJP_801310E8 +/* C3E24 8012EF94 AC800004 */ sw $zero, 0x4($a0) +.LJP_8012EF98: +/* C3E28 8012EF98 462C203C */ c.lt.d $f4, $f12 +/* C3E2C 8012EF9C 00000000 */ nop +/* C3E30 8012EFA0 45010005 */ bc1t .LJP_8012EFB8 +/* C3E34 8012EFA4 3C04E300 */ lui $a0, (0xE3001201 >> 16) +/* C3E38 8012EFA8 462C003C */ c.lt.d $f0, $f12 +/* C3E3C 8012EFAC 00000000 */ nop +/* C3E40 8012EFB0 4500084D */ bc1f .LJP_801310E8 +/* C3E44 8012EFB4 00000000 */ nop +.LJP_8012EFB8: +/* C3E48 8012EFB8 8EE20000 */ lw $v0, 0x0($s7) +/* C3E4C 8012EFBC 34841201 */ ori $a0, $a0, (0xE3001201 & 0xFFFF) +/* C3E50 8012EFC0 0040182D */ daddu $v1, $v0, $zero +/* C3E54 8012EFC4 24420008 */ addiu $v0, $v0, 0x8 +/* C3E58 8012EFC8 AEE20000 */ sw $v0, 0x0($s7) +/* C3E5C 8012EFCC 24023000 */ addiu $v0, $zero, 0x3000 +/* C3E60 8012EFD0 AC640000 */ sw $a0, 0x0($v1) +/* C3E64 8012EFD4 0804C43A */ j .LJP_801310E8 +/* C3E68 8012EFD8 AC620004 */ sw $v0, 0x4($v1) +.LJP_8012EFDC: +/* C3E6C 8012EFDC 3C06E300 */ lui $a2, (0xE3001201 >> 16) +/* C3E70 8012EFE0 34C61201 */ ori $a2, $a2, (0xE3001201 & 0xFFFF) +/* C3E74 8012EFE4 8EE20000 */ lw $v0, 0x0($s7) +/* C3E78 8012EFE8 3C048016 */ lui $a0, %hi(msg_drawState) +/* C3E7C 8012EFEC 8C84ACF4 */ lw $a0, %lo(msg_drawState)($a0) +/* C3E80 8012EFF0 0040282D */ daddu $a1, $v0, $zero +/* C3E84 8012EFF4 24420008 */ addiu $v0, $v0, 0x8 +/* C3E88 8012EFF8 8C830020 */ lw $v1, 0x20($a0) +/* C3E8C 8012EFFC 3C013F80 */ lui $at, (0x3F800000 >> 16) +/* C3E90 8012F000 44816000 */ mtc1 $at, $f12 +/* C3E94 8012F004 24630001 */ addiu $v1, $v1, 0x1 +/* C3E98 8012F008 E48C0010 */ swc1 $f12, 0x10($a0) +/* C3E9C 8012F00C E48C0014 */ swc1 $f12, 0x14($a0) +/* C3EA0 8012F010 AEE20000 */ sw $v0, 0x0($s7) +/* C3EA4 8012F014 24023000 */ addiu $v0, $zero, 0x3000 +/* C3EA8 8012F018 AC830020 */ sw $v1, 0x20($a0) +/* C3EAC 8012F01C ACA60000 */ sw $a2, 0x0($a1) +/* C3EB0 8012F020 0804C43A */ j .LJP_801310E8 +/* C3EB4 8012F024 ACA20004 */ sw $v0, 0x4($a1) +.LJP_8012F028: +/* C3EB8 8012F028 3C058016 */ lui $a1, %hi(msg_drawState) +/* C3EBC 8012F02C 8CA5ACF4 */ lw $a1, %lo(msg_drawState)($a1) +/* C3EC0 8012F030 8CA30020 */ lw $v1, 0x20($a1) +/* C3EC4 8012F034 8CA2004C */ lw $v0, 0x4C($a1) +/* C3EC8 8012F038 00621821 */ addu $v1, $v1, $v0 +/* C3ECC 8012F03C 90640001 */ lbu $a0, 0x1($v1) +/* C3ED0 8012F040 8CA20020 */ lw $v0, 0x20($a1) +/* C3ED4 8012F044 90630002 */ lbu $v1, 0x2($v1) +/* C3ED8 8012F048 24420003 */ addiu $v0, $v0, 0x3 +/* C3EDC 8012F04C 00042200 */ sll $a0, $a0, 8 +/* C3EE0 8012F050 00641821 */ addu $v1, $v1, $a0 +/* C3EE4 8012F054 ACA20020 */ sw $v0, 0x20($a1) +/* C3EE8 8012F058 0804C43A */ j .LJP_801310E8 +/* C3EEC 8012F05C A4A30042 */ sh $v1, 0x42($a1) +.LJP_8012F060: +/* C3EF0 8012F060 3C048016 */ lui $a0, %hi(msg_drawState) +/* C3EF4 8012F064 8C84ACF4 */ lw $a0, %lo(msg_drawState)($a0) +/* C3EF8 8012F068 8C830020 */ lw $v1, 0x20($a0) +/* C3EFC 8012F06C 8C82004C */ lw $v0, 0x4C($a0) +/* C3F00 8012F070 00621821 */ addu $v1, $v1, $v0 +/* C3F04 8012F074 8C820020 */ lw $v0, 0x20($a0) +/* C3F08 8012F078 90630001 */ lbu $v1, 0x1($v1) +/* C3F0C 8012F07C 0804BC43 */ j .LJP_8012F10C +/* C3F10 8012F080 24420002 */ addiu $v0, $v0, 0x2 +.LJP_8012F084: +/* C3F14 8012F084 3C048016 */ lui $a0, %hi(msg_drawState) +/* C3F18 8012F088 8C84ACF4 */ lw $a0, %lo(msg_drawState)($a0) +/* C3F1C 8012F08C 8C820020 */ lw $v0, 0x20($a0) +/* C3F20 8012F090 8C83004C */ lw $v1, 0x4C($a0) +/* C3F24 8012F094 00431021 */ addu $v0, $v0, $v1 +/* C3F28 8012F098 90450001 */ lbu $a1, 0x1($v0) +/* C3F2C 8012F09C 8C820020 */ lw $v0, 0x20($a0) +/* C3F30 8012F0A0 94830042 */ lhu $v1, 0x42($a0) +/* C3F34 8012F0A4 24420002 */ addiu $v0, $v0, 0x2 +/* C3F38 8012F0A8 00651821 */ addu $v1, $v1, $a1 +/* C3F3C 8012F0AC AC820020 */ sw $v0, 0x20($a0) +/* C3F40 8012F0B0 0804C43A */ j .LJP_801310E8 +/* C3F44 8012F0B4 A4830042 */ sh $v1, 0x42($a0) +.LJP_8012F0B8: +/* C3F48 8012F0B8 3C048016 */ lui $a0, %hi(msg_drawState) +/* C3F4C 8012F0BC 8C84ACF4 */ lw $a0, %lo(msg_drawState)($a0) +/* C3F50 8012F0C0 8C820020 */ lw $v0, 0x20($a0) +/* C3F54 8012F0C4 8C83004C */ lw $v1, 0x4C($a0) +/* C3F58 8012F0C8 00431021 */ addu $v0, $v0, $v1 +/* C3F5C 8012F0CC 90450001 */ lbu $a1, 0x1($v0) +/* C3F60 8012F0D0 8C820020 */ lw $v0, 0x20($a0) +/* C3F64 8012F0D4 94830044 */ lhu $v1, 0x44($a0) +/* C3F68 8012F0D8 24420002 */ addiu $v0, $v0, 0x2 +/* C3F6C 8012F0DC 0804BC43 */ j .LJP_8012F10C +/* C3F70 8012F0E0 00651821 */ addu $v1, $v1, $a1 +.LJP_8012F0E4: +/* C3F74 8012F0E4 3C048016 */ lui $a0, %hi(msg_drawState) +/* C3F78 8012F0E8 8C84ACF4 */ lw $a0, %lo(msg_drawState)($a0) +/* C3F7C 8012F0EC 8C820020 */ lw $v0, 0x20($a0) +/* C3F80 8012F0F0 8C83004C */ lw $v1, 0x4C($a0) +/* C3F84 8012F0F4 00431021 */ addu $v0, $v0, $v1 +/* C3F88 8012F0F8 90450001 */ lbu $a1, 0x1($v0) +/* C3F8C 8012F0FC 8C820020 */ lw $v0, 0x20($a0) +/* C3F90 8012F100 94830044 */ lhu $v1, 0x44($a0) +/* C3F94 8012F104 24420002 */ addiu $v0, $v0, 0x2 +/* C3F98 8012F108 00651823 */ subu $v1, $v1, $a1 +.LJP_8012F10C: +/* C3F9C 8012F10C AC820020 */ sw $v0, 0x20($a0) +/* C3FA0 8012F110 0804C43A */ j .LJP_801310E8 +/* C3FA4 8012F114 A4830044 */ sh $v1, 0x44($a0) +.LJP_8012F118: +/* C3FA8 8012F118 3C0B8016 */ lui $t3, %hi(msg_drawState) +/* C3FAC 8012F11C 8D6BACF4 */ lw $t3, %lo(msg_drawState)($t3) +/* C3FB0 8012F120 8D620020 */ lw $v0, 0x20($t3) +/* C3FB4 8012F124 8D63004C */ lw $v1, 0x4C($t3) +/* C3FB8 8012F128 00431021 */ addu $v0, $v0, $v1 +/* C3FBC 8012F12C 90430001 */ lbu $v1, 0x1($v0) +/* C3FC0 8012F130 97AD008E */ lhu $t5, 0x8E($sp) +/* C3FC4 8012F134 00031080 */ sll $v0, $v1, 2 +/* C3FC8 8012F138 00431021 */ addu $v0, $v0, $v1 +/* C3FCC 8012F13C 3C038015 */ lui $v1, %hi(gMsgVarImages) +/* C3FD0 8012F140 8C636354 */ lw $v1, %lo(gMsgVarImages)($v1) +/* C3FD4 8012F144 00021080 */ sll $v0, $v0, 2 +/* C3FD8 8012F148 00626021 */ addu $t4, $v1, $v0 +/* C3FDC 8012F14C 000D1400 */ sll $v0, $t5, 16 +/* C3FE0 8012F150 00021C03 */ sra $v1, $v0, 16 +/* C3FE4 8012F154 286200FF */ slti $v0, $v1, 0xFF +/* C3FE8 8012F158 1040000A */ beqz $v0, .LJP_8012F184 +/* C3FEC 8012F15C 00000000 */ nop +/* C3FF0 8012F160 3C018015 */ lui $at, %hi(D_JP_801558C0) +/* C3FF4 8012F164 D42258C0 */ ldc1 $f2, %lo(D_JP_801558C0)($at) +/* C3FF8 8012F168 44830000 */ mtc1 $v1, $f0 +/* C3FFC 8012F16C 00000000 */ nop +/* C4000 8012F170 46800021 */ cvt.d.w $f0, $f0 +/* C4004 8012F174 46220002 */ mul.d $f0, $f0, $f2 +/* C4008 8012F178 00000000 */ nop +/* C400C 8012F17C 4620030D */ trunc.w.d $f12, $f0 +/* C4010 8012F180 440D6000 */ mfc1 $t5, $f12 +.LJP_8012F184: +/* C4014 8012F184 8D8A0010 */ lw $t2, 0x10($t4) +/* C4018 8012F188 97C4041A */ lhu $a0, 0x41A($fp) +/* C401C 8012F18C 95670046 */ lhu $a3, 0x46($t3) +/* C4020 8012F190 95620042 */ lhu $v0, 0x42($t3) +/* C4024 8012F194 97C8041C */ lhu $t0, 0x41C($fp) +/* C4028 8012F198 95690048 */ lhu $t1, 0x48($t3) +/* C402C 8012F19C 95630044 */ lhu $v1, 0x44($t3) +/* C4030 8012F1A0 95850008 */ lhu $a1, 0x8($t4) +/* C4034 8012F1A4 9586000A */ lhu $a2, 0xA($t4) +/* C4038 8012F1A8 97B90066 */ lhu $t9, 0x66($sp) +/* C403C 8012F1AC 97B80076 */ lhu $t8, 0x76($sp) +/* C4040 8012F1B0 00992021 */ addu $a0, $a0, $t9 +/* C4044 8012F1B4 00E43821 */ addu $a3, $a3, $a0 +/* C4048 8012F1B8 00471021 */ addu $v0, $v0, $a3 +/* C404C 8012F1BC 00581023 */ subu $v0, $v0, $t8 +/* C4050 8012F1C0 00021400 */ sll $v0, $v0, 16 +/* C4054 8012F1C4 AFAA0010 */ sw $t2, 0x10($sp) +/* C4058 8012F1C8 8D840004 */ lw $a0, 0x4($t4) +/* C405C 8012F1CC 97B9006E */ lhu $t9, 0x6E($sp) +/* C4060 8012F1D0 97B8007E */ lhu $t8, 0x7E($sp) +/* C4064 8012F1D4 00021403 */ sra $v0, $v0, 16 +/* C4068 8012F1D8 AFA20018 */ sw $v0, 0x18($sp) +/* C406C 8012F1DC 01194021 */ addu $t0, $t0, $t9 +/* C4070 8012F1E0 01284821 */ addu $t1, $t1, $t0 +/* C4074 8012F1E4 00691821 */ addu $v1, $v1, $t1 +/* C4078 8012F1E8 00781823 */ subu $v1, $v1, $t8 +/* C407C 8012F1EC 00031C00 */ sll $v1, $v1, 16 +/* C4080 8012F1F0 00031C03 */ sra $v1, $v1, 16 +/* C4084 8012F1F4 AFA3001C */ sw $v1, 0x1C($sp) +/* C4088 8012F1F8 AFA40014 */ sw $a0, 0x14($sp) +/* C408C 8012F1FC 95620002 */ lhu $v0, 0x2($t3) +/* C4090 8012F200 AFA20020 */ sw $v0, 0x20($sp) +/* C4094 8012F204 9562000A */ lhu $v0, 0xA($t3) +/* C4098 8012F208 AFA20024 */ sw $v0, 0x24($sp) +/* C409C 8012F20C 95620006 */ lhu $v0, 0x6($t3) +/* C40A0 8012F210 95630002 */ lhu $v1, 0x2($t3) +/* C40A4 8012F214 00431023 */ subu $v0, $v0, $v1 +/* C40A8 8012F218 3042FFFF */ andi $v0, $v0, 0xFFFF +/* C40AC 8012F21C AFA20028 */ sw $v0, 0x28($sp) +/* C40B0 8012F220 9563000E */ lhu $v1, 0xE($t3) +/* C40B4 8012F224 9564000A */ lhu $a0, 0xA($t3) +/* C40B8 8012F228 31A200FF */ andi $v0, $t5, 0xFF +/* C40BC 8012F22C AFA20030 */ sw $v0, 0x30($sp) +/* C40C0 8012F230 00641823 */ subu $v1, $v1, $a0 +/* C40C4 8012F234 3063FFFF */ andi $v1, $v1, 0xFFFF +/* C40C8 8012F238 AFA3002C */ sw $v1, 0x2C($sp) +/* C40CC 8012F23C 8D840000 */ lw $a0, 0x0($t4) +/* C40D0 8012F240 0C04CEC8 */ jal draw_ci_image_with_clipping +/* C40D4 8012F244 8D87000C */ lw $a3, 0xC($t4) +/* C40D8 8012F248 3C048016 */ lui $a0, %hi(msg_drawState) +/* C40DC 8012F24C 8C84ACF4 */ lw $a0, %lo(msg_drawState)($a0) +/* C40E0 8012F250 94820034 */ lhu $v0, 0x34($a0) +/* C40E4 8012F254 8C830020 */ lw $v1, 0x20($a0) +/* C40E8 8012F258 34420012 */ ori $v0, $v0, 0x12 +/* C40EC 8012F25C 24630002 */ addiu $v1, $v1, 0x2 +/* C40F0 8012F260 A4820034 */ sh $v0, 0x34($a0) +/* C40F4 8012F264 0804C43A */ j .LJP_801310E8 +/* C40F8 8012F268 AC830020 */ sw $v1, 0x20($a0) +.LJP_8012F26C: +/* C40FC 8012F26C 97B0008E */ lhu $s0, 0x8E($sp) +/* C4100 8012F270 00101400 */ sll $v0, $s0, 16 +/* C4104 8012F274 00021C03 */ sra $v1, $v0, 16 +/* C4108 8012F278 286200FF */ slti $v0, $v1, 0xFF +/* C410C 8012F27C 1040000A */ beqz $v0, .LJP_8012F2A8 +/* C4110 8012F280 00000000 */ nop +/* C4114 8012F284 3C018015 */ lui $at, %hi(D_JP_801558C8) +/* C4118 8012F288 D42258C8 */ ldc1 $f2, %lo(D_JP_801558C8)($at) +/* C411C 8012F28C 44830000 */ mtc1 $v1, $f0 +/* C4120 8012F290 00000000 */ nop +/* C4124 8012F294 46800021 */ cvt.d.w $f0, $f0 +/* C4128 8012F298 46220002 */ mul.d $f0, $f0, $f2 +/* C412C 8012F29C 00000000 */ nop +/* C4130 8012F2A0 4620030D */ trunc.w.d $f12, $f0 +/* C4134 8012F2A4 44106000 */ mfc1 $s0, $f12 +.LJP_8012F2A8: +/* C4138 8012F2A8 3C028016 */ lui $v0, %hi(msg_drawState) +/* C413C 8012F2AC 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) +/* C4140 8012F2B0 8C430020 */ lw $v1, 0x20($v0) +/* C4144 8012F2B4 8C42004C */ lw $v0, 0x4C($v0) +/* C4148 8012F2B8 27A40050 */ addiu $a0, $sp, 0x50 +/* C414C 8012F2BC 00621821 */ addu $v1, $v1, $v0 +/* C4150 8012F2C0 90660003 */ lbu $a2, 0x3($v1) +/* C4154 8012F2C4 90650001 */ lbu $a1, 0x1($v1) +/* C4158 8012F2C8 90620002 */ lbu $v0, 0x2($v1) +/* C415C 8012F2CC 00052A00 */ sll $a1, $a1, 8 +/* C4160 8012F2D0 0C04494A */ jal spr_get_npc_raster_info +/* C4164 8012F2D4 00A22825 */ or $a1, $a1, $v0 +/* C4168 8012F2D8 104000FA */ beqz $v0, .LJP_8012F6C4 +/* C416C 8012F2DC 00000000 */ nop +/* C4170 8012F2E0 3C058016 */ lui $a1, %hi(msg_drawState) +/* C4174 8012F2E4 8CA5ACF4 */ lw $a1, %lo(msg_drawState)($a1) +/* C4178 8012F2E8 97C6041A */ lhu $a2, 0x41A($fp) +/* C417C 8012F2EC 97C8041C */ lhu $t0, 0x41C($fp) +/* C4180 8012F2F0 97B90066 */ lhu $t9, 0x66($sp) +/* C4184 8012F2F4 97B80076 */ lhu $t8, 0x76($sp) +/* C4188 8012F2F8 94A70046 */ lhu $a3, 0x46($a1) +/* C418C 8012F2FC 94A30042 */ lhu $v1, 0x42($a1) +/* C4190 8012F300 94A90048 */ lhu $t1, 0x48($a1) +/* C4194 8012F304 94A40044 */ lhu $a0, 0x44($a1) +/* C4198 8012F308 00D93021 */ addu $a2, $a2, $t9 +/* C419C 8012F30C AFA00010 */ sw $zero, 0x10($sp) +/* C41A0 8012F310 8FA20054 */ lw $v0, 0x54($sp) +/* C41A4 8012F314 97B9006E */ lhu $t9, 0x6E($sp) +/* C41A8 8012F318 00E63821 */ addu $a3, $a3, $a2 +/* C41AC 8012F31C 00671821 */ addu $v1, $v1, $a3 +/* C41B0 8012F320 00781823 */ subu $v1, $v1, $t8 +/* C41B4 8012F324 00031C00 */ sll $v1, $v1, 16 +/* C41B8 8012F328 00031C03 */ sra $v1, $v1, 16 +/* C41BC 8012F32C 01194021 */ addu $t0, $t0, $t9 +/* C41C0 8012F330 01284821 */ addu $t1, $t1, $t0 +/* C41C4 8012F334 97B8007E */ lhu $t8, 0x7E($sp) +/* C41C8 8012F338 00892021 */ addu $a0, $a0, $t1 +/* C41CC 8012F33C AFA20014 */ sw $v0, 0x14($sp) +/* C41D0 8012F340 AFA30018 */ sw $v1, 0x18($sp) +/* C41D4 8012F344 00982023 */ subu $a0, $a0, $t8 +/* C41D8 8012F348 00042400 */ sll $a0, $a0, 16 +/* C41DC 8012F34C 00042403 */ sra $a0, $a0, 16 +/* C41E0 8012F350 AFA4001C */ sw $a0, 0x1C($sp) +/* C41E4 8012F354 94A20002 */ lhu $v0, 0x2($a1) +/* C41E8 8012F358 AFA20020 */ sw $v0, 0x20($sp) +/* C41EC 8012F35C 94A2000A */ lhu $v0, 0xA($a1) +/* C41F0 8012F360 AFA20024 */ sw $v0, 0x24($sp) +/* C41F4 8012F364 94A20006 */ lhu $v0, 0x6($a1) +/* C41F8 8012F368 94A30002 */ lhu $v1, 0x2($a1) +/* C41FC 8012F36C 00431023 */ subu $v0, $v0, $v1 +/* C4200 8012F370 3042FFFF */ andi $v0, $v0, 0xFFFF +/* C4204 8012F374 AFA20028 */ sw $v0, 0x28($sp) +/* C4208 8012F378 94A3000E */ lhu $v1, 0xE($a1) +/* C420C 8012F37C 94A4000A */ lhu $a0, 0xA($a1) +/* C4210 8012F380 320200FF */ andi $v0, $s0, 0xFF +/* C4214 8012F384 AFA20030 */ sw $v0, 0x30($sp) +/* C4218 8012F388 00641823 */ subu $v1, $v1, $a0 +/* C421C 8012F38C 3063FFFF */ andi $v1, $v1, 0xFFFF +/* C4220 8012F390 AFA3002C */ sw $v1, 0x2C($sp) +/* C4224 8012F394 8FA40050 */ lw $a0, 0x50($sp) +/* C4228 8012F398 8FA50058 */ lw $a1, 0x58($sp) +/* C422C 8012F39C 8FA6005C */ lw $a2, 0x5C($sp) +/* C4230 8012F3A0 0C04CEC8 */ jal draw_ci_image_with_clipping +/* C4234 8012F3A4 24070002 */ addiu $a3, $zero, 0x2 +/* C4238 8012F3A8 3C038016 */ lui $v1, %hi(msg_drawState) +/* C423C 8012F3AC 8C63ACF4 */ lw $v1, %lo(msg_drawState)($v1) +/* C4240 8012F3B0 94620034 */ lhu $v0, 0x34($v1) +/* C4244 8012F3B4 34420010 */ ori $v0, $v0, 0x10 +/* C4248 8012F3B8 0804BDB1 */ j .LJP_8012F6C4 +/* C424C 8012F3BC A4620034 */ sh $v0, 0x34($v1) +.LJP_8012F3C0: +/* C4250 8012F3C0 3C028015 */ lui $v0, %hi(D_8015131C) +/* C4254 8012F3C4 8C42637C */ lw $v0, %lo(D_8015131C)($v0) +/* C4258 8012F3C8 10400127 */ beqz $v0, .LJP_8012F868 +/* C425C 8012F3CC 00000000 */ nop +/* C4260 8012F3D0 97AB008E */ lhu $t3, 0x8E($sp) +/* C4264 8012F3D4 000B1400 */ sll $v0, $t3, 16 +/* C4268 8012F3D8 00021C03 */ sra $v1, $v0, 16 +/* C426C 8012F3DC 286200FF */ slti $v0, $v1, 0xFF +/* C4270 8012F3E0 1040000A */ beqz $v0, .LJP_8012F40C +/* C4274 8012F3E4 00000000 */ nop +/* C4278 8012F3E8 3C018015 */ lui $at, %hi(D_JP_801558D0) +/* C427C 8012F3EC D42258D0 */ ldc1 $f2, %lo(D_JP_801558D0)($at) +/* C4280 8012F3F0 44830000 */ mtc1 $v1, $f0 +/* C4284 8012F3F4 00000000 */ nop +/* C4288 8012F3F8 46800021 */ cvt.d.w $f0, $f0 +/* C428C 8012F3FC 46220002 */ mul.d $f0, $f0, $f2 +/* C4290 8012F400 00000000 */ nop +/* C4294 8012F404 4620030D */ trunc.w.d $f12, $f0 +/* C4298 8012F408 440B6000 */ mfc1 $t3, $f12 +.LJP_8012F40C: +/* C429C 8012F40C 3C048016 */ lui $a0, %hi(D_80159B50) +/* C42A0 8012F410 2484EAD0 */ addiu $a0, $a0, %lo(D_80159B50) +/* C42A4 8012F414 3C088016 */ lui $t0, %hi(msg_drawState) +/* C42A8 8012F418 8D08ACF4 */ lw $t0, %lo(msg_drawState)($t0) +/* C42AC 8012F41C 97C6041A */ lhu $a2, 0x41A($fp) +/* C42B0 8012F420 97C9041C */ lhu $t1, 0x41C($fp) +/* C42B4 8012F424 97B90066 */ lhu $t9, 0x66($sp) +/* C42B8 8012F428 97B80076 */ lhu $t8, 0x76($sp) +/* C42BC 8012F42C 00D93021 */ addu $a2, $a2, $t9 +/* C42C0 8012F430 95070046 */ lhu $a3, 0x46($t0) +/* C42C4 8012F434 95030042 */ lhu $v1, 0x42($t0) +/* C42C8 8012F438 950A0048 */ lhu $t2, 0x48($t0) +/* C42CC 8012F43C 95050044 */ lhu $a1, 0x44($t0) +/* C42D0 8012F440 97B9006E */ lhu $t9, 0x6E($sp) +/* C42D4 8012F444 3C028016 */ lui $v0, %hi(D_8015C7E0) +/* C42D8 8012F448 24421760 */ addiu $v0, $v0, %lo(D_8015C7E0) +/* C42DC 8012F44C AFA00010 */ sw $zero, 0x10($sp) +/* C42E0 8012F450 AFA20014 */ sw $v0, 0x14($sp) +/* C42E4 8012F454 00E63821 */ addu $a3, $a3, $a2 +/* C42E8 8012F458 00671821 */ addu $v1, $v1, $a3 +/* C42EC 8012F45C 00781823 */ subu $v1, $v1, $t8 +/* C42F0 8012F460 00031C00 */ sll $v1, $v1, 16 +/* C42F4 8012F464 00031C03 */ sra $v1, $v1, 16 +/* C42F8 8012F468 01394821 */ addu $t1, $t1, $t9 +/* C42FC 8012F46C 01495021 */ addu $t2, $t2, $t1 +/* C4300 8012F470 97B8007E */ lhu $t8, 0x7E($sp) +/* C4304 8012F474 00AA2821 */ addu $a1, $a1, $t2 +/* C4308 8012F478 AFA30018 */ sw $v1, 0x18($sp) +/* C430C 8012F47C 00B82823 */ subu $a1, $a1, $t8 +/* C4310 8012F480 00052C00 */ sll $a1, $a1, 16 +/* C4314 8012F484 00052C03 */ sra $a1, $a1, 16 +/* C4318 8012F488 AFA5001C */ sw $a1, 0x1C($sp) +/* C431C 8012F48C 95020002 */ lhu $v0, 0x2($t0) +/* C4320 8012F490 24070002 */ addiu $a3, $zero, 0x2 +/* C4324 8012F494 AFA20020 */ sw $v0, 0x20($sp) +/* C4328 8012F498 9502000A */ lhu $v0, 0xA($t0) +/* C432C 8012F49C 24050020 */ addiu $a1, $zero, 0x20 +/* C4330 8012F4A0 AFA20024 */ sw $v0, 0x24($sp) +/* C4334 8012F4A4 95020006 */ lhu $v0, 0x6($t0) +/* C4338 8012F4A8 95030002 */ lhu $v1, 0x2($t0) +/* C433C 8012F4AC 00A0302D */ daddu $a2, $a1, $zero +/* C4340 8012F4B0 00431023 */ subu $v0, $v0, $v1 +/* C4344 8012F4B4 3042FFFF */ andi $v0, $v0, 0xFFFF +/* C4348 8012F4B8 AFA20028 */ sw $v0, 0x28($sp) +/* C434C 8012F4BC 9503000E */ lhu $v1, 0xE($t0) +/* C4350 8012F4C0 9508000A */ lhu $t0, 0xA($t0) +/* C4354 8012F4C4 316200FF */ andi $v0, $t3, 0xFF +/* C4358 8012F4C8 AFA20030 */ sw $v0, 0x30($sp) +/* C435C 8012F4CC 00681823 */ subu $v1, $v1, $t0 +/* C4360 8012F4D0 3063FFFF */ andi $v1, $v1, 0xFFFF +/* C4364 8012F4D4 0C04CEC8 */ jal draw_ci_image_with_clipping +/* C4368 8012F4D8 AFA3002C */ sw $v1, 0x2C($sp) +/* C436C 8012F4DC 3C038016 */ lui $v1, %hi(msg_drawState) +/* C4370 8012F4E0 8C63ACF4 */ lw $v1, %lo(msg_drawState)($v1) +/* C4374 8012F4E4 94620034 */ lhu $v0, 0x34($v1) +/* C4378 8012F4E8 34420010 */ ori $v0, $v0, 0x10 +/* C437C 8012F4EC 0804BE1A */ j .LJP_8012F868 +/* C4380 8012F4F0 A4620034 */ sh $v0, 0x34($v1) +.LJP_8012F4F4: +/* C4384 8012F4F4 3C028016 */ lui $v0, %hi(msg_drawState) +/* C4388 8012F4F8 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) +/* C438C 8012F4FC 8C430020 */ lw $v1, 0x20($v0) +/* C4390 8012F500 8C42004C */ lw $v0, 0x4C($v0) +/* C4394 8012F504 00622821 */ addu $a1, $v1, $v0 +/* C4398 8012F508 90A70001 */ lbu $a3, 0x1($a1) +/* C439C 8012F50C 00071040 */ sll $v0, $a3, 1 +/* C43A0 8012F510 03C22021 */ addu $a0, $fp, $v0 +/* C43A4 8012F514 84830434 */ lh $v1, 0x434($a0) +/* C43A8 8012F518 2402FFFF */ addiu $v0, $zero, -0x1 +/* C43AC 8012F51C 14620003 */ bne $v1, $v0, .LJP_8012F52C +/* C43B0 8012F520 00000000 */ nop +/* C43B4 8012F524 90A20003 */ lbu $v0, 0x3($a1) +/* C43B8 8012F528 A4820434 */ sh $v0, 0x434($a0) +.LJP_8012F52C: +/* C43BC 8012F52C 84820434 */ lh $v0, 0x434($a0) +/* C43C0 8012F530 14400005 */ bnez $v0, .LJP_8012F548 +/* C43C4 8012F534 240A0011 */ addiu $t2, $zero, 0x11 +/* C43C8 8012F538 03C71821 */ addu $v1, $fp, $a3 +/* C43CC 8012F53C 90620430 */ lbu $v0, 0x430($v1) +/* C43D0 8012F540 24420001 */ addiu $v0, $v0, 0x1 +/* C43D4 8012F544 A0620430 */ sb $v0, 0x430($v1) +.LJP_8012F548: +/* C43D8 8012F548 03C72821 */ addu $a1, $fp, $a3 +/* C43DC 8012F54C 24090012 */ addiu $t1, $zero, 0x12 +/* C43E0 8012F550 0080302D */ daddu $a2, $a0, $zero +/* C43E4 8012F554 3C028016 */ lui $v0, %hi(msg_drawState) +/* C43E8 8012F558 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) +/* C43EC 8012F55C 24080013 */ addiu $t0, $zero, 0x13 +.LJP_8012F560: +/* C43F0 8012F560 8C440020 */ lw $a0, 0x20($v0) +.LJP_8012F564: +/* C43F4 8012F564 3C028016 */ lui $v0, %hi(msg_drawState) +/* C43F8 8012F568 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) +/* C43FC 8012F56C 8C42004C */ lw $v0, 0x4C($v0) +/* C4400 8012F570 00821821 */ addu $v1, $a0, $v0 +/* C4404 8012F574 9062FFFF */ lbu $v0, -0x1($v1) +/* C4408 8012F578 241900FF */ addiu $t9, $zero, 0xFF +/* C440C 8012F57C 1459000D */ bne $v0, $t9, .LJP_8012F5B4 +/* C4410 8012F580 00000000 */ nop +/* C4414 8012F584 90620000 */ lbu $v0, 0x0($v1) +/* C4418 8012F588 144A000A */ bne $v0, $t2, .LJP_8012F5B4 +/* C441C 8012F58C 00000000 */ nop +/* C4420 8012F590 90620001 */ lbu $v0, 0x1($v1) +/* C4424 8012F594 14470007 */ bne $v0, $a3, .LJP_8012F5B4 +/* C4428 8012F598 00000000 */ nop +/* C442C 8012F59C 90630002 */ lbu $v1, 0x2($v1) +/* C4430 8012F5A0 90A20430 */ lbu $v0, 0x430($a1) +/* C4434 8012F5A4 1062002A */ beq $v1, $v0, .LJP_8012F650 +/* C4438 8012F5A8 00000000 */ nop +/* C443C 8012F5AC 0804BD92 */ j .LJP_8012F648 +/* C4440 8012F5B0 24840004 */ addiu $a0, $a0, 0x4 +.LJP_8012F5B4: +/* C4444 8012F5B4 3C028016 */ lui $v0, %hi(msg_drawState) +/* C4448 8012F5B8 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) +/* C444C 8012F5BC 8C42004C */ lw $v0, 0x4C($v0) +/* C4450 8012F5C0 00441821 */ addu $v1, $v0, $a0 +/* C4454 8012F5C4 90620000 */ lbu $v0, 0x0($v1) +/* C4458 8012F5C8 241800FF */ addiu $t8, $zero, 0xFF +/* C445C 8012F5CC 5458FFE5 */ bnel $v0, $t8, .LJP_8012F564 +/* C4460 8012F5D0 24840001 */ addiu $a0, $a0, 0x1 +/* C4464 8012F5D4 90620001 */ lbu $v0, 0x1($v1) +/* C4468 8012F5D8 1449000D */ bne $v0, $t1, .LJP_8012F610 +/* C446C 8012F5DC 00000000 */ nop +/* C4470 8012F5E0 90620002 */ lbu $v0, 0x2($v1) +/* C4474 8012F5E4 1447000A */ bne $v0, $a3, .LJP_8012F610 +/* C4478 8012F5E8 00000000 */ nop +/* C447C 8012F5EC 84C20434 */ lh $v0, 0x434($a2) +/* C4480 8012F5F0 14400017 */ bnez $v0, .LJP_8012F650 +/* C4484 8012F5F4 24840001 */ addiu $a0, $a0, 0x1 +/* C4488 8012F5F8 90620003 */ lbu $v0, 0x3($v1) +/* C448C 8012F5FC A0A20430 */ sb $v0, 0x430($a1) +/* C4490 8012F600 3C028016 */ lui $v0, %hi(msg_drawState) +/* C4494 8012F604 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) +/* C4498 8012F608 0804BD58 */ j .LJP_8012F560 +/* C449C 8012F60C 00000000 */ nop +.LJP_8012F610: +/* C44A0 8012F610 3C028016 */ lui $v0, %hi(msg_drawState) +/* C44A4 8012F614 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) +/* C44A8 8012F618 8C42004C */ lw $v0, 0x4C($v0) +/* C44AC 8012F61C 00441821 */ addu $v1, $v0, $a0 +/* C44B0 8012F620 90620000 */ lbu $v0, 0x0($v1) +/* C44B4 8012F624 241900FF */ addiu $t9, $zero, 0xFF +/* C44B8 8012F628 5459FFCE */ bnel $v0, $t9, .LJP_8012F564 +/* C44BC 8012F62C 24840001 */ addiu $a0, $a0, 0x1 +/* C44C0 8012F630 90620001 */ lbu $v0, 0x1($v1) +/* C44C4 8012F634 5448FFCB */ bnel $v0, $t0, .LJP_8012F564 +/* C44C8 8012F638 24840001 */ addiu $a0, $a0, 0x1 +/* C44CC 8012F63C 90620002 */ lbu $v0, 0x2($v1) +/* C44D0 8012F640 50470003 */ beql $v0, $a3, .LJP_8012F650 +/* C44D4 8012F644 24840001 */ addiu $a0, $a0, 0x1 +.LJP_8012F648: +/* C44D8 8012F648 0804BD59 */ j .LJP_8012F564 +/* C44DC 8012F64C 24840001 */ addiu $a0, $a0, 0x1 +.LJP_8012F650: +/* C44E0 8012F650 3C058016 */ lui $a1, %hi(msg_drawState) +/* C44E4 8012F654 8CA5ACF4 */ lw $a1, %lo(msg_drawState)($a1) +/* C44E8 8012F658 8CA2004C */ lw $v0, 0x4C($a1) +/* C44EC 8012F65C ACA40020 */ sw $a0, 0x20($a1) +/* C44F0 8012F660 00443021 */ addu $a2, $v0, $a0 +/* C44F4 8012F664 90C30000 */ lbu $v1, 0x0($a2) +/* C44F8 8012F668 24020012 */ addiu $v0, $zero, 0x12 +/* C44FC 8012F66C 1062001B */ beq $v1, $v0, .LJP_8012F6DC +/* C4500 8012F670 28620013 */ slti $v0, $v1, 0x13 +/* C4504 8012F674 10400005 */ beqz $v0, .LJP_8012F68C +/* C4508 8012F678 24020011 */ addiu $v0, $zero, 0x11 +/* C450C 8012F67C 10620008 */ beq $v1, $v0, .LJP_8012F6A0 +/* C4510 8012F680 00071040 */ sll $v0, $a3, 1 +/* C4514 8012F684 0804C43A */ j .LJP_801310E8 +/* C4518 8012F688 00000000 */ nop +.LJP_8012F68C: +/* C451C 8012F68C 24020013 */ addiu $v0, $zero, 0x13 +/* C4520 8012F690 10620015 */ beq $v1, $v0, .LJP_8012F6E8 +/* C4524 8012F694 24820002 */ addiu $v0, $a0, 0x2 +/* C4528 8012F698 0804C43A */ j .LJP_801310E8 +/* C452C 8012F69C 00000000 */ nop +.LJP_8012F6A0: +/* C4530 8012F6A0 03C21821 */ addu $v1, $fp, $v0 +/* C4534 8012F6A4 84620434 */ lh $v0, 0x434($v1) +/* C4538 8012F6A8 14400006 */ bnez $v0, .LJP_8012F6C4 +/* C453C 8012F6AC 00000000 */ nop +/* C4540 8012F6B0 90C20003 */ lbu $v0, 0x3($a2) +/* C4544 8012F6B4 10400002 */ beqz $v0, .LJP_8012F6C0 +/* C4548 8012F6B8 2402FFFE */ addiu $v0, $zero, -0x2 +/* C454C 8012F6BC 90C20003 */ lbu $v0, 0x3($a2) +.LJP_8012F6C0: +/* C4550 8012F6C0 A4620434 */ sh $v0, 0x434($v1) +.LJP_8012F6C4: +/* C4554 8012F6C4 3C038016 */ lui $v1, %hi(msg_drawState) +/* C4558 8012F6C8 8C63ACF4 */ lw $v1, %lo(msg_drawState)($v1) +/* C455C 8012F6CC 8C620020 */ lw $v0, 0x20($v1) +/* C4560 8012F6D0 24420004 */ addiu $v0, $v0, 0x4 +/* C4564 8012F6D4 0804C43A */ j .LJP_801310E8 +/* C4568 8012F6D8 AC620020 */ sw $v0, 0x20($v1) +.LJP_8012F6DC: +/* C456C 8012F6DC 24820003 */ addiu $v0, $a0, 0x3 +/* C4570 8012F6E0 0804C43A */ j .LJP_801310E8 +/* C4574 8012F6E4 ACA20020 */ sw $v0, 0x20($a1) +.LJP_8012F6E8: +/* C4578 8012F6E8 0804C43A */ j .LJP_801310E8 +/* C457C 8012F6EC ACA20020 */ sw $v0, 0x20($a1) +.LJP_8012F6F0: +/* C4580 8012F6F0 3C038016 */ lui $v1, %hi(msg_drawState) +/* C4584 8012F6F4 8C63ACF4 */ lw $v1, %lo(msg_drawState)($v1) +/* C4588 8012F6F8 8C620020 */ lw $v0, 0x20($v1) +/* C458C 8012F6FC 24420003 */ addiu $v0, $v0, 0x3 +/* C4590 8012F700 0804C43A */ j .LJP_801310E8 +/* C4594 8012F704 AC620020 */ sw $v0, 0x20($v1) +.LJP_8012F708: +/* C4598 8012F708 3C058016 */ lui $a1, %hi(msg_drawState) +/* C459C 8012F70C 8CA5ACF4 */ lw $a1, %lo(msg_drawState)($a1) +/* C45A0 8012F710 97B80076 */ lhu $t8, 0x76($sp) +/* C45A4 8012F714 8CA20020 */ lw $v0, 0x20($a1) +/* C45A8 8012F718 8CA3004C */ lw $v1, 0x4C($a1) +/* C45AC 8012F71C 94A40042 */ lhu $a0, 0x42($a1) +/* C45B0 8012F720 00431021 */ addu $v0, $v0, $v1 +/* C45B4 8012F724 90430001 */ lbu $v1, 0x1($v0) +/* C45B8 8012F728 94A20046 */ lhu $v0, 0x46($a1) +/* C45BC 8012F72C 00031840 */ sll $v1, $v1, 1 +/* C45C0 8012F730 03C31821 */ addu $v1, $fp, $v1 +/* C45C4 8012F734 00441021 */ addu $v0, $v0, $a0 +/* C45C8 8012F738 00581023 */ subu $v0, $v0, $t8 +/* C45CC 8012F73C 2442FFFA */ addiu $v0, $v0, -0x6 +/* C45D0 8012F740 A4620490 */ sh $v0, 0x490($v1) +/* C45D4 8012F744 8CA20020 */ lw $v0, 0x20($a1) +/* C45D8 8012F748 8CA3004C */ lw $v1, 0x4C($a1) +/* C45DC 8012F74C 94A40044 */ lhu $a0, 0x44($a1) +/* C45E0 8012F750 97B9007E */ lhu $t9, 0x7E($sp) +/* C45E4 8012F754 00431021 */ addu $v0, $v0, $v1 +/* C45E8 8012F758 90430001 */ lbu $v1, 0x1($v0) +/* C45EC 8012F75C 94A20048 */ lhu $v0, 0x48($a1) +/* C45F0 8012F760 00031840 */ sll $v1, $v1, 1 +/* C45F4 8012F764 03C31821 */ addu $v1, $fp, $v1 +/* C45F8 8012F768 00441021 */ addu $v0, $v0, $a0 +/* C45FC 8012F76C 00591023 */ subu $v0, $v0, $t9 +/* C4600 8012F770 2442FFFF */ addiu $v0, $v0, -0x1 +/* C4604 8012F774 A462049C */ sh $v0, 0x49C($v1) +/* C4608 8012F778 8CA20020 */ lw $v0, 0x20($a1) +/* C460C 8012F77C 0804BE52 */ j .LJP_8012F948 +/* C4610 8012F780 24420002 */ addiu $v0, $v0, 0x2 +.LJP_8012F784: +/* C4614 8012F784 3C048016 */ lui $a0, %hi(msg_drawState) +/* C4618 8012F788 8C84ACF4 */ lw $a0, %lo(msg_drawState)($a0) +/* C461C 8012F78C 8C820020 */ lw $v0, 0x20($a0) +/* C4620 8012F790 8C83004C */ lw $v1, 0x4C($a0) +/* C4624 8012F794 00431021 */ addu $v0, $v0, $v1 +/* C4628 8012F798 90420001 */ lbu $v0, 0x1($v0) +/* C462C 8012F79C 241800FF */ addiu $t8, $zero, 0xFF +/* C4630 8012F7A0 54580004 */ bnel $v0, $t8, .LJP_8012F7B4 +/* C4634 8012F7A4 A082002D */ sb $v0, 0x2D($a0) +/* C4638 8012F7A8 94820034 */ lhu $v0, 0x34($a0) +/* C463C 8012F7AC 0804BF39 */ j .LJP_8012FCE4 +/* C4640 8012F7B0 3042FFDF */ andi $v0, $v0, 0xFFDF +.LJP_8012F7B4: +/* C4644 8012F7B4 3C028016 */ lui $v0, %hi(msg_drawState) +/* C4648 8012F7B8 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) +/* C464C 8012F7BC 94430034 */ lhu $v1, 0x34($v0) +/* C4650 8012F7C0 94440042 */ lhu $a0, 0x42($v0) +/* C4654 8012F7C4 34630020 */ ori $v1, $v1, 0x20 +/* C4658 8012F7C8 2484000E */ addiu $a0, $a0, 0xE +/* C465C 8012F7CC A4430034 */ sh $v1, 0x34($v0) +/* C4660 8012F7D0 0804BF3A */ j .LJP_8012FCE8 +/* C4664 8012F7D4 A4440042 */ sh $a0, 0x42($v0) +.LJP_8012F7D8: +/* C4668 8012F7D8 3C048016 */ lui $a0, %hi(msg_drawState) +/* C466C 8012F7DC 8C84ACF4 */ lw $a0, %lo(msg_drawState)($a0) +/* C4670 8012F7E0 8C820020 */ lw $v0, 0x20($a0) +/* C4674 8012F7E4 8C83004C */ lw $v1, 0x4C($a0) +/* C4678 8012F7E8 00431021 */ addu $v0, $v0, $v1 +/* C467C 8012F7EC 90420001 */ lbu $v0, 0x1($v0) +/* C4680 8012F7F0 0804BF3A */ j .LJP_8012FCE8 +/* C4684 8012F7F4 A082002B */ sb $v0, 0x2B($a0) +.LJP_8012F7F8: +/* C4688 8012F7F8 0C04C516 */ jal msg_reset_gfx_state +/* C468C 8012F7FC 00000000 */ nop +/* C4690 8012F800 0804BE1A */ j .LJP_8012F868 +/* C4694 8012F804 00000000 */ nop +.LJP_8012F808: +/* C4698 8012F808 3C028016 */ lui $v0, %hi(msg_drawState) +/* C469C 8012F80C 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) +/* C46A0 8012F810 94440042 */ lhu $a0, 0x42($v0) +/* C46A4 8012F814 8C430020 */ lw $v1, 0x20($v0) +/* C46A8 8012F818 94450044 */ lhu $a1, 0x44($v0) +/* C46AC 8012F81C 24630001 */ addiu $v1, $v1, 0x1 +/* C46B0 8012F820 A4440024 */ sh $a0, 0x24($v0) +/* C46B4 8012F824 A4450026 */ sh $a1, 0x26($v0) +/* C46B8 8012F828 0804C43A */ j .LJP_801310E8 +/* C46BC 8012F82C AC430020 */ sw $v1, 0x20($v0) +.LJP_8012F830: +/* C46C0 8012F830 3C028016 */ lui $v0, %hi(msg_drawState) +/* C46C4 8012F834 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) +/* C46C8 8012F838 94440024 */ lhu $a0, 0x24($v0) +/* C46CC 8012F83C 8C430020 */ lw $v1, 0x20($v0) +/* C46D0 8012F840 94450026 */ lhu $a1, 0x26($v0) +/* C46D4 8012F844 24630001 */ addiu $v1, $v1, 0x1 +/* C46D8 8012F848 A4440042 */ sh $a0, 0x42($v0) +/* C46DC 8012F84C A4450044 */ sh $a1, 0x44($v0) +/* C46E0 8012F850 0804C43A */ j .LJP_801310E8 +/* C46E4 8012F854 AC430020 */ sw $v1, 0x20($v0) +.LJP_8012F858: +/* C46E8 8012F858 3C038016 */ lui $v1, %hi(msg_drawState) +/* C46EC 8012F85C 8C63ACF4 */ lw $v1, %lo(msg_drawState)($v1) +/* C46F0 8012F860 9062004B */ lbu $v0, 0x4B($v1) +/* C46F4 8012F864 A0620028 */ sb $v0, 0x28($v1) +.LJP_8012F868: +/* C46F8 8012F868 3C038016 */ lui $v1, %hi(msg_drawState) +/* C46FC 8012F86C 8C63ACF4 */ lw $v1, %lo(msg_drawState)($v1) +/* C4700 8012F870 8C620020 */ lw $v0, 0x20($v1) +/* C4704 8012F874 24420001 */ addiu $v0, $v0, 0x1 +/* C4708 8012F878 0804C43A */ j .LJP_801310E8 +/* C470C 8012F87C AC620020 */ sw $v0, 0x20($v1) +.LJP_8012F880: +/* C4710 8012F880 3C028016 */ lui $v0, %hi(msg_drawState) +/* C4714 8012F884 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) +/* C4718 8012F888 8C430020 */ lw $v1, 0x20($v0) +/* C471C 8012F88C 90440028 */ lbu $a0, 0x28($v0) +/* C4720 8012F890 24630001 */ addiu $v1, $v1, 0x1 +/* C4724 8012F894 A444004A */ sh $a0, 0x4A($v0) +/* C4728 8012F898 0804C43A */ j .LJP_801310E8 +/* C472C 8012F89C AC430020 */ sw $v1, 0x20($v0) +.LJP_8012F8A0: +/* C4730 8012F8A0 3C038016 */ lui $v1, %hi(msg_drawState) +/* C4734 8012F8A4 8C63ACF4 */ lw $v1, %lo(msg_drawState)($v1) +/* C4738 8012F8A8 8C620020 */ lw $v0, 0x20($v1) +/* C473C 8012F8AC 8C63004C */ lw $v1, 0x4C($v1) +/* C4740 8012F8B0 00431021 */ addu $v0, $v0, $v1 +/* C4744 8012F8B4 90430001 */ lbu $v1, 0x1($v0) +/* C4748 8012F8B8 2C62000F */ sltiu $v0, $v1, 0xF +/* C474C 8012F8BC 1040060A */ beqz $v0, .LJP_801310E8 +/* C4750 8012F8C0 00031080 */ sll $v0, $v1, 2 +/* C4754 8012F8C4 3C018015 */ lui $at, %hi(jtbl_JP_801558D8) +/* C4758 8012F8C8 00220821 */ addu $at, $at, $v0 +/* C475C 8012F8CC 8C2258D8 */ lw $v0, %lo(jtbl_JP_801558D8)($at) +/* C4760 8012F8D0 00400008 */ jr $v0 +/* C4764 8012F8D4 00000000 */ nop +.LJP_8012F8D8: +/* C4768 8012F8D8 3C028016 */ lui $v0, %hi(msg_drawState) +/* C476C 8012F8DC 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) +/* C4770 8012F8E0 8C430038 */ lw $v1, 0x38($v0) +/* C4774 8012F8E4 8C440020 */ lw $a0, 0x20($v0) +/* C4778 8012F8E8 0804BEBD */ j .LJP_8012FAF4 +/* C477C 8012F8EC 34630001 */ ori $v1, $v1, 0x1 +.LJP_8012F8F0: +/* C4780 8012F8F0 3C028016 */ lui $v0, %hi(msg_drawState) +/* C4784 8012F8F4 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) +/* C4788 8012F8F8 8C430038 */ lw $v1, 0x38($v0) +/* C478C 8012F8FC 8C440020 */ lw $a0, 0x20($v0) +/* C4790 8012F900 0804BEBD */ j .LJP_8012FAF4 +/* C4794 8012F904 34630002 */ ori $v1, $v1, 0x2 +.LJP_8012F908: +/* C4798 8012F908 3C06FC70 */ lui $a2, (0xFC70FEE1 >> 16) +/* C479C 8012F90C 34C6FEE1 */ ori $a2, $a2, (0xFC70FEE1 & 0xFFFF) +/* C47A0 8012F910 3C058016 */ lui $a1, %hi(msg_drawState) +/* C47A4 8012F914 8CA5ACF4 */ lw $a1, %lo(msg_drawState)($a1) +/* C47A8 8012F918 8EE40000 */ lw $a0, 0x0($s7) +/* C47AC 8012F91C 8CA20038 */ lw $v0, 0x38($a1) +/* C47B0 8012F920 0080182D */ daddu $v1, $a0, $zero +/* C47B4 8012F924 34420004 */ ori $v0, $v0, 0x4 +/* C47B8 8012F928 ACA20038 */ sw $v0, 0x38($a1) +/* C47BC 8012F92C 2402F3F9 */ addiu $v0, $zero, -0xC07 +/* C47C0 8012F930 AC660000 */ sw $a2, 0x0($v1) +/* C47C4 8012F934 AC620004 */ sw $v0, 0x4($v1) +/* C47C8 8012F938 8CA20020 */ lw $v0, 0x20($a1) +/* C47CC 8012F93C 24840008 */ addiu $a0, $a0, 0x8 +/* C47D0 8012F940 AEE40000 */ sw $a0, 0x0($s7) +/* C47D4 8012F944 24420002 */ addiu $v0, $v0, 0x2 +.LJP_8012F948: +/* C47D8 8012F948 0804C43A */ j .LJP_801310E8 +/* C47DC 8012F94C ACA20020 */ sw $v0, 0x20($a1) +.LJP_8012F950: +/* C47E0 8012F950 3C09FC72 */ lui $t1, (0xFC72FEE5 >> 16) +/* C47E4 8012F954 3529FEE5 */ ori $t1, $t1, (0xFC72FEE5 & 0xFFFF) +/* C47E8 8012F958 3C0811FC */ lui $t0, (0x11FCF279 >> 16) +/* C47EC 8012F95C 3C030001 */ lui $v1, (0x10000 >> 16) +/* C47F0 8012F960 3C068016 */ lui $a2, %hi(msg_drawState) +/* C47F4 8012F964 8CC6ACF4 */ lw $a2, %lo(msg_drawState)($a2) +/* C47F8 8012F968 8EE50000 */ lw $a1, 0x0($s7) +/* C47FC 8012F96C 8CC20038 */ lw $v0, 0x38($a2) +/* C4800 8012F970 00A0382D */ daddu $a3, $a1, $zero +/* C4804 8012F974 00431025 */ or $v0, $v0, $v1 +/* C4808 8012F978 ACC20038 */ sw $v0, 0x38($a2) +/* C480C 8012F97C 3C02FB00 */ lui $v0, (0xFB000000 >> 16) +/* C4810 8012F980 ACE20000 */ sw $v0, 0x0($a3) +/* C4814 8012F984 8CC20020 */ lw $v0, 0x20($a2) +/* C4818 8012F988 8CC3004C */ lw $v1, 0x4C($a2) +/* C481C 8012F98C 24A50008 */ addiu $a1, $a1, 0x8 +/* C4820 8012F990 AEE50000 */ sw $a1, 0x0($s7) +/* C4824 8012F994 00431021 */ addu $v0, $v0, $v1 +/* C4828 8012F998 90440002 */ lbu $a0, 0x2($v0) +/* C482C 8012F99C 3508F279 */ ori $t0, $t0, (0x11FCF279 & 0xFFFF) +/* C4830 8012F9A0 00041E00 */ sll $v1, $a0, 24 +/* C4834 8012F9A4 00041400 */ sll $v0, $a0, 16 +/* C4838 8012F9A8 00621825 */ or $v1, $v1, $v0 +/* C483C 8012F9AC 00042200 */ sll $a0, $a0, 8 +/* C4840 8012F9B0 00641825 */ or $v1, $v1, $a0 +/* C4844 8012F9B4 ACE30004 */ sw $v1, 0x4($a3) +/* C4848 8012F9B8 ACA90000 */ sw $t1, 0x0($a1) +/* C484C 8012F9BC ACA80004 */ sw $t0, 0x4($a1) +/* C4850 8012F9C0 8CC20020 */ lw $v0, 0x20($a2) +/* C4854 8012F9C4 24A50008 */ addiu $a1, $a1, 0x8 +/* C4858 8012F9C8 AEE50000 */ sw $a1, 0x0($s7) +/* C485C 8012F9CC 24420003 */ addiu $v0, $v0, 0x3 +/* C4860 8012F9D0 0804C43A */ j .LJP_801310E8 +/* C4864 8012F9D4 ACC20020 */ sw $v0, 0x20($a2) +.LJP_8012F9D8: +/* C4868 8012F9D8 3C058016 */ lui $a1, %hi(msg_drawState) +/* C486C 8012F9DC 8CA5ACF4 */ lw $a1, %lo(msg_drawState)($a1) +/* C4870 8012F9E0 8CA20038 */ lw $v0, 0x38($a1) +/* C4874 8012F9E4 8CA40020 */ lw $a0, 0x20($a1) +/* C4878 8012F9E8 8CA3004C */ lw $v1, 0x4C($a1) +/* C487C 8012F9EC 34420020 */ ori $v0, $v0, 0x20 +/* C4880 8012F9F0 00831821 */ addu $v1, $a0, $v1 +/* C4884 8012F9F4 ACA20038 */ sw $v0, 0x38($a1) +/* C4888 8012F9F8 90630002 */ lbu $v1, 0x2($v1) +/* C488C 8012F9FC 24840003 */ addiu $a0, $a0, 0x3 +/* C4890 8012FA00 0804C439 */ j .LJP_801310E4 +/* C4894 8012FA04 A3A300B8 */ sb $v1, 0xB8($sp) +.LJP_8012FA08: +/* C4898 8012FA08 3C028016 */ lui $v0, %hi(msg_drawState) +/* C489C 8012FA0C 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) +/* C48A0 8012FA10 8C430038 */ lw $v1, 0x38($v0) +/* C48A4 8012FA14 8C440020 */ lw $a0, 0x20($v0) +/* C48A8 8012FA18 0804BEBD */ j .LJP_8012FAF4 +/* C48AC 8012FA1C 34630040 */ ori $v1, $v1, 0x40 +.LJP_8012FA20: +/* C48B0 8012FA20 3C058016 */ lui $a1, %hi(msg_drawState) +/* C48B4 8012FA24 8CA5ACF4 */ lw $a1, %lo(msg_drawState)($a1) +/* C48B8 8012FA28 8CA20038 */ lw $v0, 0x38($a1) +/* C48BC 8012FA2C 8CA40020 */ lw $a0, 0x20($a1) +/* C48C0 8012FA30 8CA3004C */ lw $v1, 0x4C($a1) +/* C48C4 8012FA34 34420080 */ ori $v0, $v0, 0x80 +/* C48C8 8012FA38 00831821 */ addu $v1, $a0, $v1 +/* C48CC 8012FA3C ACA20038 */ sw $v0, 0x38($a1) +/* C48D0 8012FA40 90630002 */ lbu $v1, 0x2($v1) +/* C48D4 8012FA44 24840003 */ addiu $a0, $a0, 0x3 +/* C48D8 8012FA48 0804C439 */ j .LJP_801310E4 +/* C48DC 8012FA4C A7A300B6 */ sh $v1, 0xB6($sp) +.LJP_8012FA50: +/* C48E0 8012FA50 3C028016 */ lui $v0, %hi(msg_drawState) +/* C48E4 8012FA54 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) +/* C48E8 8012FA58 8C430038 */ lw $v1, 0x38($v0) +/* C48EC 8012FA5C 8C440020 */ lw $a0, 0x20($v0) +/* C48F0 8012FA60 0804BEBD */ j .LJP_8012FAF4 +/* C48F4 8012FA64 34630200 */ ori $v1, $v1, 0x200 +.LJP_8012FA68: +/* C48F8 8012FA68 3C028016 */ lui $v0, %hi(msg_drawState) +/* C48FC 8012FA6C 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) +/* C4900 8012FA70 8C430038 */ lw $v1, 0x38($v0) +/* C4904 8012FA74 8C440020 */ lw $a0, 0x20($v0) +/* C4908 8012FA78 0804BEBD */ j .LJP_8012FAF4 +/* C490C 8012FA7C 34630400 */ ori $v1, $v1, 0x400 +.LJP_8012FA80: +/* C4910 8012FA80 3C028016 */ lui $v0, %hi(msg_drawState) +/* C4914 8012FA84 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) +/* C4918 8012FA88 8C430038 */ lw $v1, 0x38($v0) +/* C491C 8012FA8C 8C440020 */ lw $a0, 0x20($v0) +/* C4920 8012FA90 0804BEBD */ j .LJP_8012FAF4 +/* C4924 8012FA94 34630800 */ ori $v1, $v1, 0x800 +.LJP_8012FA98: +/* C4928 8012FA98 3C028016 */ lui $v0, %hi(msg_drawState) +/* C492C 8012FA9C 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) +/* C4930 8012FAA0 8C430038 */ lw $v1, 0x38($v0) +/* C4934 8012FAA4 8C440020 */ lw $a0, 0x20($v0) +/* C4938 8012FAA8 0804BEBD */ j .LJP_8012FAF4 +/* C493C 8012FAAC 34631000 */ ori $v1, $v1, 0x1000 +.LJP_8012FAB0: +/* C4940 8012FAB0 3C028016 */ lui $v0, %hi(msg_drawState) +/* C4944 8012FAB4 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) +/* C4948 8012FAB8 8C430038 */ lw $v1, 0x38($v0) +/* C494C 8012FABC 8C440020 */ lw $a0, 0x20($v0) +/* C4950 8012FAC0 0804BEBD */ j .LJP_8012FAF4 +/* C4954 8012FAC4 34632000 */ ori $v1, $v1, 0x2000 +.LJP_8012FAC8: +/* C4958 8012FAC8 3C028016 */ lui $v0, %hi(msg_drawState) +/* C495C 8012FACC 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) +/* C4960 8012FAD0 8C430038 */ lw $v1, 0x38($v0) +/* C4964 8012FAD4 8C440020 */ lw $a0, 0x20($v0) +/* C4968 8012FAD8 0804BEBD */ j .LJP_8012FAF4 +/* C496C 8012FADC 34634000 */ ori $v1, $v1, 0x4000 +.LJP_8012FAE0: +/* C4970 8012FAE0 3C028016 */ lui $v0, %hi(msg_drawState) +/* C4974 8012FAE4 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) +/* C4978 8012FAE8 8C430038 */ lw $v1, 0x38($v0) +/* C497C 8012FAEC 8C440020 */ lw $a0, 0x20($v0) +/* C4980 8012FAF0 34638000 */ ori $v1, $v1, 0x8000 +.LJP_8012FAF4: +/* C4984 8012FAF4 24840002 */ addiu $a0, $a0, 0x2 +/* C4988 8012FAF8 AC430038 */ sw $v1, 0x38($v0) +/* C498C 8012FAFC 0804C43A */ j .LJP_801310E8 +/* C4990 8012FB00 AC440020 */ sw $a0, 0x20($v0) +.LJP_8012FB04: +/* C4994 8012FB04 3C038016 */ lui $v1, %hi(msg_drawState) +/* C4998 8012FB08 8C63ACF4 */ lw $v1, %lo(msg_drawState)($v1) +/* C499C 8012FB0C 8C620020 */ lw $v0, 0x20($v1) +/* C49A0 8012FB10 8C63004C */ lw $v1, 0x4C($v1) +/* C49A4 8012FB14 00431021 */ addu $v0, $v0, $v1 +/* C49A8 8012FB18 90430001 */ lbu $v1, 0x1($v0) +/* C49AC 8012FB1C 2C62000F */ sltiu $v0, $v1, 0xF +/* C49B0 8012FB20 10400071 */ beqz $v0, .LJP_8012FCE8 +/* C49B4 8012FB24 00031080 */ sll $v0, $v1, 2 +/* C49B8 8012FB28 3C018015 */ lui $at, %hi(jtbl_JP_80155918) +/* C49BC 8012FB2C 00220821 */ addu $at, $at, $v0 +/* C49C0 8012FB30 8C225918 */ lw $v0, %lo(jtbl_JP_80155918)($at) +/* C49C4 8012FB34 00400008 */ jr $v0 +/* C49C8 8012FB38 00000000 */ nop +.LJP_8012FB3C: +/* C49CC 8012FB3C 3C028016 */ lui $v0, %hi(msg_drawState) +/* C49D0 8012FB40 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) +/* C49D4 8012FB44 8C430038 */ lw $v1, 0x38($v0) +/* C49D8 8012FB48 0804BF14 */ j .LJP_8012FC50 +/* C49DC 8012FB4C 2404FFFE */ addiu $a0, $zero, -0x2 +.LJP_8012FB50: +/* C49E0 8012FB50 3C028016 */ lui $v0, %hi(msg_drawState) +/* C49E4 8012FB54 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) +/* C49E8 8012FB58 8C430038 */ lw $v1, 0x38($v0) +/* C49EC 8012FB5C 0804BF14 */ j .LJP_8012FC50 +/* C49F0 8012FB60 2404FFFD */ addiu $a0, $zero, -0x3 +.LJP_8012FB64: +/* C49F4 8012FB64 3C028016 */ lui $v0, %hi(msg_drawState) +/* C49F8 8012FB68 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) +/* C49FC 8012FB6C 8C430038 */ lw $v1, 0x38($v0) +/* C4A00 8012FB70 0804BF14 */ j .LJP_8012FC50 +/* C4A04 8012FB74 2404FFFB */ addiu $a0, $zero, -0x5 +.LJP_8012FB78: +/* C4A08 8012FB78 3C048016 */ lui $a0, %hi(msg_drawState) +/* C4A0C 8012FB7C 8C84ACF4 */ lw $a0, %lo(msg_drawState)($a0) +/* C4A10 8012FB80 3C03FFFE */ lui $v1, (0xFFFEFFFF >> 16) +/* C4A14 8012FB84 8C820038 */ lw $v0, 0x38($a0) +/* C4A18 8012FB88 0804BF1C */ j .LJP_8012FC70 +/* C4A1C 8012FB8C 3463FFFF */ ori $v1, $v1, (0xFFFEFFFF & 0xFFFF) +.LJP_8012FB90: +/* C4A20 8012FB90 3C028016 */ lui $v0, %hi(msg_drawState) +/* C4A24 8012FB94 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) +/* C4A28 8012FB98 8C430038 */ lw $v1, 0x38($v0) +/* C4A2C 8012FB9C 0804BF14 */ j .LJP_8012FC50 +/* C4A30 8012FBA0 2404FFDF */ addiu $a0, $zero, -0x21 +.LJP_8012FBA4: +/* C4A34 8012FBA4 3C048016 */ lui $a0, %hi(msg_drawState) +/* C4A38 8012FBA8 8C84ACF4 */ lw $a0, %lo(msg_drawState)($a0) +/* C4A3C 8012FBAC 0804BEFA */ j .LJP_8012FBE8 +/* C4A40 8012FBB0 2405FFBF */ addiu $a1, $zero, -0x41 +.LJP_8012FBB4: +/* C4A44 8012FBB4 3C028016 */ lui $v0, %hi(msg_drawState) +/* C4A48 8012FBB8 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) +/* C4A4C 8012FBBC 8C430038 */ lw $v1, 0x38($v0) +/* C4A50 8012FBC0 0804BF14 */ j .LJP_8012FC50 +/* C4A54 8012FBC4 2404FF7F */ addiu $a0, $zero, -0x81 +.LJP_8012FBC8: +/* C4A58 8012FBC8 3C028016 */ lui $v0, %hi(msg_drawState) +/* C4A5C 8012FBCC 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) +/* C4A60 8012FBD0 8C430038 */ lw $v1, 0x38($v0) +/* C4A64 8012FBD4 0804BF14 */ j .LJP_8012FC50 +/* C4A68 8012FBD8 2404FDFF */ addiu $a0, $zero, -0x201 +.LJP_8012FBDC: +/* C4A6C 8012FBDC 3C048016 */ lui $a0, %hi(msg_drawState) +/* C4A70 8012FBE0 8C84ACF4 */ lw $a0, %lo(msg_drawState)($a0) +/* C4A74 8012FBE4 2405FBFF */ addiu $a1, $zero, -0x401 +.LJP_8012FBE8: +/* C4A78 8012FBE8 8C820038 */ lw $v0, 0x38($a0) +/* C4A7C 8012FBEC 94830034 */ lhu $v1, 0x34($a0) +/* C4A80 8012FBF0 00451024 */ and $v0, $v0, $a1 +/* C4A84 8012FBF4 34630010 */ ori $v1, $v1, 0x10 +/* C4A88 8012FBF8 AC820038 */ sw $v0, 0x38($a0) +/* C4A8C 8012FBFC 0804BF3A */ j .LJP_8012FCE8 +/* C4A90 8012FC00 A4830034 */ sh $v1, 0x34($a0) +.LJP_8012FC04: +/* C4A94 8012FC04 3C028016 */ lui $v0, %hi(msg_drawState) +/* C4A98 8012FC08 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) +/* C4A9C 8012FC0C 8C430038 */ lw $v1, 0x38($v0) +/* C4AA0 8012FC10 0804BF14 */ j .LJP_8012FC50 +/* C4AA4 8012FC14 2404F7FF */ addiu $a0, $zero, -0x801 +.LJP_8012FC18: +/* C4AA8 8012FC18 3C028016 */ lui $v0, %hi(msg_drawState) +/* C4AAC 8012FC1C 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) +/* C4AB0 8012FC20 8C430038 */ lw $v1, 0x38($v0) +/* C4AB4 8012FC24 0804BF14 */ j .LJP_8012FC50 +/* C4AB8 8012FC28 2404EFFF */ addiu $a0, $zero, -0x1001 +.LJP_8012FC2C: +/* C4ABC 8012FC2C 3C028016 */ lui $v0, %hi(msg_drawState) +/* C4AC0 8012FC30 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) +/* C4AC4 8012FC34 8C430038 */ lw $v1, 0x38($v0) +/* C4AC8 8012FC38 0804BF14 */ j .LJP_8012FC50 +/* C4ACC 8012FC3C 2404DFFF */ addiu $a0, $zero, -0x2001 +.LJP_8012FC40: +/* C4AD0 8012FC40 3C028016 */ lui $v0, %hi(msg_drawState) +/* C4AD4 8012FC44 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) +/* C4AD8 8012FC48 8C430038 */ lw $v1, 0x38($v0) +/* C4ADC 8012FC4C 2404BFFF */ addiu $a0, $zero, -0x4001 +.LJP_8012FC50: +/* C4AE0 8012FC50 00641824 */ and $v1, $v1, $a0 +/* C4AE4 8012FC54 0804BF3A */ j .LJP_8012FCE8 +/* C4AE8 8012FC58 AC430038 */ sw $v1, 0x38($v0) +.LJP_8012FC5C: +/* C4AEC 8012FC5C 3C048016 */ lui $a0, %hi(msg_drawState) +/* C4AF0 8012FC60 8C84ACF4 */ lw $a0, %lo(msg_drawState)($a0) +/* C4AF4 8012FC64 3C03FFFF */ lui $v1, (0xFFFF7FFF >> 16) +/* C4AF8 8012FC68 8C820038 */ lw $v0, 0x38($a0) +/* C4AFC 8012FC6C 34637FFF */ ori $v1, $v1, (0xFFFF7FFF & 0xFFFF) +.LJP_8012FC70: +/* C4B00 8012FC70 00431024 */ and $v0, $v0, $v1 +/* C4B04 8012FC74 0804BF3A */ j .LJP_8012FCE8 +/* C4B08 8012FC78 AC820038 */ sw $v0, 0x38($a0) +.LJP_8012FC7C: +/* C4B0C 8012FC7C 3C048016 */ lui $a0, %hi(msg_drawState) +/* C4B10 8012FC80 8C84ACF4 */ lw $a0, %lo(msg_drawState)($a0) +/* C4B14 8012FC84 8C820020 */ lw $v0, 0x20($a0) +/* C4B18 8012FC88 8C83004C */ lw $v1, 0x4C($a0) +/* C4B1C 8012FC8C 00431021 */ addu $v0, $v0, $v1 +/* C4B20 8012FC90 90420001 */ lbu $v0, 0x1($v0) +/* C4B24 8012FC94 10400010 */ beqz $v0, .LJP_8012FCD8 +/* C4B28 8012FC98 241900FF */ addiu $t9, $zero, 0xFF +/* C4B2C 8012FC9C A082002E */ sb $v0, 0x2E($a0) +/* C4B30 8012FCA0 3C038016 */ lui $v1, %hi(msg_drawState) +/* C4B34 8012FCA4 8C63ACF4 */ lw $v1, %lo(msg_drawState)($v1) +/* C4B38 8012FCA8 9062002E */ lbu $v0, 0x2E($v1) +/* C4B3C 8012FCAC 14590006 */ bne $v0, $t9, .LJP_8012FCC8 +/* C4B40 8012FCB0 00000000 */ nop +/* C4B44 8012FCB4 97C204D4 */ lhu $v0, 0x4D4($fp) +/* C4B48 8012FCB8 00021042 */ srl $v0, $v0, 1 +/* C4B4C 8012FCBC A062002E */ sb $v0, 0x2E($v1) +/* C4B50 8012FCC0 3C038016 */ lui $v1, %hi(msg_drawState) +/* C4B54 8012FCC4 8C63ACF4 */ lw $v1, %lo(msg_drawState)($v1) +.LJP_8012FCC8: +/* C4B58 8012FCC8 94620034 */ lhu $v0, 0x34($v1) +/* C4B5C 8012FCCC 344200C0 */ ori $v0, $v0, 0xC0 +/* C4B60 8012FCD0 0804BF3A */ j .LJP_8012FCE8 +/* C4B64 8012FCD4 A4620034 */ sh $v0, 0x34($v1) +.LJP_8012FCD8: +/* C4B68 8012FCD8 94820034 */ lhu $v0, 0x34($a0) +/* C4B6C 8012FCDC A4800042 */ sh $zero, 0x42($a0) +/* C4B70 8012FCE0 3042FF3F */ andi $v0, $v0, 0xFF3F +.LJP_8012FCE4: +/* C4B74 8012FCE4 A4820034 */ sh $v0, 0x34($a0) +.LJP_8012FCE8: +/* C4B78 8012FCE8 3C038016 */ lui $v1, %hi(msg_drawState) +/* C4B7C 8012FCEC 8C63ACF4 */ lw $v1, %lo(msg_drawState)($v1) +/* C4B80 8012FCF0 8C620020 */ lw $v0, 0x20($v1) +.LJP_8012FCF4: +/* C4B84 8012FCF4 24420002 */ addiu $v0, $v0, 0x2 +/* C4B88 8012FCF8 0804C43A */ j .LJP_801310E8 +/* C4B8C 8012FCFC AC620020 */ sw $v0, 0x20($v1) +.LJP_8012FD00: +/* C4B90 8012FD00 3C028016 */ lui $v0, %hi(msg_drawState) +/* C4B94 8012FD04 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) +/* C4B98 8012FD08 94420034 */ lhu $v0, 0x34($v0) +/* C4B9C 8012FD0C 30420002 */ andi $v0, $v0, 0x2 +/* C4BA0 8012FD10 10400010 */ beqz $v0, .LJP_8012FD54 +/* C4BA4 8012FD14 241800FF */ addiu $t8, $zero, 0xFF +/* C4BA8 8012FD18 8EE30000 */ lw $v1, 0x0($s7) +/* C4BAC 8012FD1C A7B80096 */ sh $t8, 0x96($sp) +/* C4BB0 8012FD20 0060102D */ daddu $v0, $v1, $zero +/* C4BB4 8012FD24 24630008 */ addiu $v1, $v1, 0x8 +/* C4BB8 8012FD28 3C19E700 */ lui $t9, (0xE7000000 >> 16) +/* C4BBC 8012FD2C AEE30000 */ sw $v1, 0x0($s7) +/* C4BC0 8012FD30 AC590000 */ sw $t9, 0x0($v0) +/* C4BC4 8012FD34 AC400004 */ sw $zero, 0x4($v0) +/* C4BC8 8012FD38 24620008 */ addiu $v0, $v1, 0x8 +/* C4BCC 8012FD3C AEE20000 */ sw $v0, 0x0($s7) +/* C4BD0 8012FD40 3C02DE00 */ lui $v0, (0xDE000000 >> 16) +/* C4BD4 8012FD44 AC620000 */ sw $v0, 0x0($v1) +/* C4BD8 8012FD48 3C028015 */ lui $v0, %hi(D_8014C500) +/* C4BDC 8012FD4C 244215B0 */ addiu $v0, $v0, %lo(D_8014C500) +/* C4BE0 8012FD50 AC620004 */ sw $v0, 0x4($v1) +.LJP_8012FD54: +/* C4BE4 8012FD54 3C058016 */ lui $a1, %hi(msg_drawState) +/* C4BE8 8012FD58 8CA5ACF4 */ lw $a1, %lo(msg_drawState)($a1) +/* C4BEC 8012FD5C C4A00010 */ lwc1 $f0, 0x10($a1) +/* C4BF0 8012FD60 94A20034 */ lhu $v0, 0x34($a1) +/* C4BF4 8012FD64 C4A20014 */ lwc1 $f2, 0x14($a1) +/* C4BF8 8012FD68 30420080 */ andi $v0, $v0, 0x80 +/* C4BFC 8012FD6C E4A00018 */ swc1 $f0, 0x18($a1) +/* C4C00 8012FD70 1040000B */ beqz $v0, .LJP_8012FDA0 +/* C4C04 8012FD74 E4A2001C */ swc1 $f2, 0x1C($a1) +/* C4C08 8012FD78 97C204F8 */ lhu $v0, 0x4F8($fp) +/* C4C0C 8012FD7C 90A4002E */ lbu $a0, 0x2E($a1) +/* C4C10 8012FD80 94A30034 */ lhu $v1, 0x34($a1) +/* C4C14 8012FD84 00021042 */ srl $v0, $v0, 1 +/* C4C18 8012FD88 00822023 */ subu $a0, $a0, $v0 +/* C4C1C 8012FD8C 94A20042 */ lhu $v0, 0x42($a1) +/* C4C20 8012FD90 3063FF7F */ andi $v1, $v1, 0xFF7F +/* C4C24 8012FD94 A4A30034 */ sh $v1, 0x34($a1) +/* C4C28 8012FD98 00441021 */ addu $v0, $v0, $a0 +/* C4C2C 8012FD9C A4A20042 */ sh $v0, 0x42($a1) +.LJP_8012FDA0: +/* C4C30 8012FDA0 3C048016 */ lui $a0, %hi(msg_drawState) +/* C4C34 8012FDA4 8C84ACF4 */ lw $a0, %lo(msg_drawState)($a0) +/* C4C38 8012FDA8 94820034 */ lhu $v0, 0x34($a0) +/* C4C3C 8012FDAC 30420040 */ andi $v0, $v0, 0x40 +/* C4C40 8012FDB0 10400007 */ beqz $v0, .LJP_8012FDD0 +/* C4C44 8012FDB4 00000000 */ nop +/* C4C48 8012FDB8 97C2041A */ lhu $v0, 0x41A($fp) +/* C4C4C 8012FDBC 97B80066 */ lhu $t8, 0x66($sp) +/* C4C50 8012FDC0 94830042 */ lhu $v1, 0x42($a0) +/* C4C54 8012FDC4 00581021 */ addu $v0, $v0, $t8 +/* C4C58 8012FDC8 0804BF7B */ j .LJP_8012FDEC +/* C4C5C 8012FDCC 00628821 */ addu $s1, $v1, $v0 +.LJP_8012FDD0: +/* C4C60 8012FDD0 97C2041A */ lhu $v0, 0x41A($fp) +/* C4C64 8012FDD4 97B90066 */ lhu $t9, 0x66($sp) +/* C4C68 8012FDD8 94830046 */ lhu $v1, 0x46($a0) +/* C4C6C 8012FDDC 94840042 */ lhu $a0, 0x42($a0) +/* C4C70 8012FDE0 00591021 */ addu $v0, $v0, $t9 +/* C4C74 8012FDE4 00621821 */ addu $v1, $v1, $v0 +/* C4C78 8012FDE8 00838821 */ addu $s1, $a0, $v1 +.LJP_8012FDEC: +/* C4C7C 8012FDEC 97C3041C */ lhu $v1, 0x41C($fp) +/* C4C80 8012FDF0 3C068016 */ lui $a2, %hi(msg_drawState) +/* C4C84 8012FDF4 8CC6ACF4 */ lw $a2, %lo(msg_drawState)($a2) +/* C4C88 8012FDF8 97B8006E */ lhu $t8, 0x6E($sp) +/* C4C8C 8012FDFC 97B9007E */ lhu $t9, 0x7E($sp) +/* C4C90 8012FE00 00781821 */ addu $v1, $v1, $t8 +/* C4C94 8012FE04 94C20048 */ lhu $v0, 0x48($a2) +/* C4C98 8012FE08 94C50044 */ lhu $a1, 0x44($a2) +/* C4C9C 8012FE0C 94C4003E */ lhu $a0, 0x3E($a2) +/* C4CA0 8012FE10 97B8008E */ lhu $t8, 0x8E($sp) +/* C4CA4 8012FE14 00431021 */ addu $v0, $v0, $v1 +/* C4CA8 8012FE18 00A22821 */ addu $a1, $a1, $v0 +/* C4CAC 8012FE1C 94C3003C */ lhu $v1, 0x3C($a2) +/* C4CB0 8012FE20 00041040 */ sll $v0, $a0, 1 +/* C4CB4 8012FE24 00031880 */ sll $v1, $v1, 2 +/* C4CB8 8012FE28 3C08802E */ lui $t0, %hi(D_802E66F4) +/* C4CBC 8012FE2C 01034021 */ addu $t0, $t0, $v1 +/* C4CC0 8012FE30 8D0866F4 */ lw $t0, %lo(D_802E66F4)($t0) +/* C4CC4 8012FE34 00441021 */ addu $v0, $v0, $a0 +/* C4CC8 8012FE38 8D030008 */ lw $v1, 0x8($t0) +/* C4CCC 8012FE3C 00021080 */ sll $v0, $v0, 2 +/* C4CD0 8012FE40 00433821 */ addu $a3, $v0, $v1 +/* C4CD4 8012FE44 90E20009 */ lbu $v0, 0x9($a3) +/* C4CD8 8012FE48 00B92823 */ subu $a1, $a1, $t9 +/* C4CDC 8012FE4C 00452021 */ addu $a0, $v0, $a1 +/* C4CE0 8012FE50 00181400 */ sll $v0, $t8, 16 +/* C4CE4 8012FE54 00024C03 */ sra $t1, $v0, 16 +/* C4CE8 8012FE58 11200482 */ beqz $t1, .LJP_80131064 +/* C4CEC 8012FE5C 0080982D */ daddu $s3, $a0, $zero +/* C4CF0 8012FE60 00111C00 */ sll $v1, $s1, 16 +/* C4CF4 8012FE64 8CC20004 */ lw $v0, 0x4($a2) +/* C4CF8 8012FE68 00032C03 */ sra $a1, $v1, 16 +/* C4CFC 8012FE6C 00A2102A */ slt $v0, $a1, $v0 +/* C4D00 8012FE70 1040047C */ beqz $v0, .LJP_80131064 +/* C4D04 8012FE74 00041C00 */ sll $v1, $a0, 16 +/* C4D08 8012FE78 8CC2000C */ lw $v0, 0xC($a2) +/* C4D0C 8012FE7C 00032403 */ sra $a0, $v1, 16 +/* C4D10 8012FE80 0082102A */ slt $v0, $a0, $v0 +/* C4D14 8012FE84 10400477 */ beqz $v0, .LJP_80131064 +/* C4D18 8012FE88 00000000 */ nop +/* C4D1C 8012FE8C 90E20008 */ lbu $v0, 0x8($a3) +/* C4D20 8012FE90 C4C00010 */ lwc1 $f0, 0x10($a2) +/* C4D24 8012FE94 44821000 */ mtc1 $v0, $f2 +/* C4D28 8012FE98 00000000 */ nop +/* C4D2C 8012FE9C 468010A0 */ cvt.s.w $f2, $f2 +/* C4D30 8012FEA0 46020002 */ mul.s $f0, $f0, $f2 +/* C4D34 8012FEA4 00000000 */ nop +/* C4D38 8012FEA8 8CC30000 */ lw $v1, 0x0($a2) +/* C4D3C 8012FEAC 4600030D */ trunc.w.s $f12, $f0 +/* C4D40 8012FEB0 44026000 */ mfc1 $v0, $f12 +/* C4D44 8012FEB4 00000000 */ nop +/* C4D48 8012FEB8 00A21021 */ addu $v0, $a1, $v0 +/* C4D4C 8012FEBC 0062182A */ slt $v1, $v1, $v0 +/* C4D50 8012FEC0 10600468 */ beqz $v1, .LJP_80131064 +/* C4D54 8012FEC4 00000000 */ nop +/* C4D58 8012FEC8 91020003 */ lbu $v0, 0x3($t0) +/* C4D5C 8012FECC C4C00014 */ lwc1 $f0, 0x14($a2) +/* C4D60 8012FED0 44821000 */ mtc1 $v0, $f2 +/* C4D64 8012FED4 00000000 */ nop +/* C4D68 8012FED8 468010A0 */ cvt.s.w $f2, $f2 +/* C4D6C 8012FEDC 46020002 */ mul.s $f0, $f0, $f2 +/* C4D70 8012FEE0 00000000 */ nop +/* C4D74 8012FEE4 8CC30008 */ lw $v1, 0x8($a2) +/* C4D78 8012FEE8 4600030D */ trunc.w.s $f12, $f0 +/* C4D7C 8012FEEC 44026000 */ mfc1 $v0, $f12 +/* C4D80 8012FEF0 00000000 */ nop +/* C4D84 8012FEF4 00821021 */ addu $v0, $a0, $v0 +/* C4D88 8012FEF8 0062182A */ slt $v1, $v1, $v0 +/* C4D8C 8012FEFC 10600459 */ beqz $v1, .LJP_80131064 +/* C4D90 8012FF00 00000000 */ nop +/* C4D94 8012FF04 97B2008E */ lhu $s2, 0x8E($sp) +/* C4D98 8012FF08 8CC50038 */ lw $a1, 0x38($a2) +/* C4D9C 8012FF0C 94D9004A */ lhu $t9, 0x4A($a2) +/* C4DA0 8012FF10 30A20020 */ andi $v0, $a1, 0x20 +/* C4DA4 8012FF14 1040000B */ beqz $v0, .LJP_8012FF44 +/* C4DA8 8012FF18 A7B900A6 */ sh $t9, 0xA6($sp) +/* C4DAC 8012FF1C 44890000 */ mtc1 $t1, $f0 +/* C4DB0 8012FF20 00000000 */ nop +/* C4DB4 8012FF24 46800020 */ cvt.s.w $f0, $f0 +/* C4DB8 8012FF28 3C018015 */ lui $at, %hi(D_JP_80155958) +/* C4DBC 8012FF2C D4225958 */ ldc1 $f2, %lo(D_JP_80155958)($at) +/* C4DC0 8012FF30 46000021 */ cvt.d.s $f0, $f0 +/* C4DC4 8012FF34 46220002 */ mul.d $f0, $f0, $f2 +/* C4DC8 8012FF38 00000000 */ nop +/* C4DCC 8012FF3C 4620030D */ trunc.w.d $f12, $f0 +/* C4DD0 8012FF40 44126000 */ mfc1 $s2, $f12 +.LJP_8012FF44: +/* C4DD4 8012FF44 93C204B8 */ lbu $v0, 0x4B8($fp) +/* C4DD8 8012FF48 24190007 */ addiu $t9, $zero, 0x7 +/* C4DDC 8012FF4C 14590018 */ bne $v0, $t9, .LJP_8012FFB0 +/* C4DE0 8012FF50 00000000 */ nop +/* C4DE4 8012FF54 94C20034 */ lhu $v0, 0x34($a2) +/* C4DE8 8012FF58 30420020 */ andi $v0, $v0, 0x20 +/* C4DEC 8012FF5C 10400014 */ beqz $v0, .LJP_8012FFB0 +/* C4DF0 8012FF60 00000000 */ nop +/* C4DF4 8012FF64 90C3002D */ lbu $v1, 0x2D($a2) +/* C4DF8 8012FF68 93C204A8 */ lbu $v0, 0x4A8($fp) +/* C4DFC 8012FF6C 14620004 */ bne $v1, $v0, .LJP_8012FF80 +/* C4E00 8012FF70 3C04FFFF */ lui $a0, (0xFFFF7FFF >> 16) +/* C4E04 8012FF74 34A28600 */ ori $v0, $a1, 0x8600 +/* C4E08 8012FF78 0804BFEC */ j .LJP_8012FFB0 +/* C4E0C 8012FF7C ACC20038 */ sw $v0, 0x38($a2) +.LJP_8012FF80: +/* C4E10 8012FF80 34847FFF */ ori $a0, $a0, (0xFFFF7FFF & 0xFFFF) +/* C4E14 8012FF84 2402FBFF */ addiu $v0, $zero, -0x401 +/* C4E18 8012FF88 00A21024 */ and $v0, $a1, $v0 +/* C4E1C 8012FF8C 2403FDFF */ addiu $v1, $zero, -0x201 +/* C4E20 8012FF90 94D8004A */ lhu $t8, 0x4A($a2) +/* C4E24 8012FF94 00431024 */ and $v0, $v0, $v1 +/* C4E28 8012FF98 A7B800A6 */ sh $t8, 0xA6($sp) +/* C4E2C 8012FF9C 94C30034 */ lhu $v1, 0x34($a2) +/* C4E30 8012FFA0 00441024 */ and $v0, $v0, $a0 +/* C4E34 8012FFA4 ACC20038 */ sw $v0, 0x38($a2) +/* C4E38 8012FFA8 34630010 */ ori $v1, $v1, 0x10 +/* C4E3C 8012FFAC A4C30034 */ sh $v1, 0x34($a2) +.LJP_8012FFB0: +/* C4E40 8012FFB0 3C028016 */ lui $v0, %hi(msg_drawState) +/* C4E44 8012FFB4 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) +/* C4E48 8012FFB8 8C420038 */ lw $v0, 0x38($v0) +/* C4E4C 8012FFBC 30420001 */ andi $v0, $v0, 0x1 +/* C4E50 8012FFC0 10400011 */ beqz $v0, .LJP_80130008 +/* C4E54 8012FFC4 00000000 */ nop +/* C4E58 8012FFC8 0C00A66F */ jal rand_int +/* C4E5C 8012FFCC 24042710 */ addiu $a0, $zero, 0x2710 +/* C4E60 8012FFD0 00021FC2 */ srl $v1, $v0, 31 +/* C4E64 8012FFD4 00431821 */ addu $v1, $v0, $v1 +/* C4E68 8012FFD8 00031843 */ sra $v1, $v1, 1 +/* C4E6C 8012FFDC 00031840 */ sll $v1, $v1, 1 +/* C4E70 8012FFE0 00431023 */ subu $v0, $v0, $v1 +/* C4E74 8012FFE4 02228821 */ addu $s1, $s1, $v0 +/* C4E78 8012FFE8 0C00A66F */ jal rand_int +/* C4E7C 8012FFEC 24042710 */ addiu $a0, $zero, 0x2710 +/* C4E80 8012FFF0 00021FC2 */ srl $v1, $v0, 31 +/* C4E84 8012FFF4 00431821 */ addu $v1, $v0, $v1 +/* C4E88 8012FFF8 00031843 */ sra $v1, $v1, 1 +/* C4E8C 8012FFFC 00031840 */ sll $v1, $v1, 1 +/* C4E90 80130000 00431023 */ subu $v0, $v0, $v1 +/* C4E94 80130004 02629821 */ addu $s3, $s3, $v0 +.LJP_80130008: +/* C4E98 80130008 3C048016 */ lui $a0, %hi(msg_drawState) +/* C4E9C 8013000C 8C84ACF4 */ lw $a0, %lo(msg_drawState)($a0) +/* C4EA0 80130010 8C820038 */ lw $v0, 0x38($a0) +/* C4EA4 80130014 30420002 */ andi $v0, $v0, 0x2 +/* C4EA8 80130018 10400063 */ beqz $v0, .LJP_801301A8 +/* C4EAC 8013001C 00000000 */ nop +/* C4EB0 80130020 C4820010 */ lwc1 $f2, 0x10($a0) +/* C4EB4 80130024 3C013FF0 */ lui $at, (0x3FF00000 >> 16) +/* C4EB8 80130028 44816800 */ mtc1 $at, $f13 +/* C4EBC 8013002C 44806000 */ mtc1 $zero, $f12 +/* C4EC0 80130030 460010A1 */ cvt.d.s $f2, $f2 +/* C4EC4 80130034 462C1081 */ sub.d $f2, $f2, $f12 +/* C4EC8 80130038 3C014014 */ lui $at, (0x40140000 >> 16) +/* C4ECC 8013003C 44812800 */ mtc1 $at, $f5 +/* C4ED0 80130040 44802000 */ mtc1 $zero, $f4 +/* C4ED4 80130044 00000000 */ nop +/* C4ED8 80130048 46241102 */ mul.d $f4, $f2, $f4 +/* C4EDC 8013004C 00000000 */ nop +/* C4EE0 80130050 3C01402E */ lui $at, (0x402E0000 >> 16) +/* C4EE4 80130054 44810800 */ mtc1 $at, $f1 +/* C4EE8 80130058 44800000 */ mtc1 $zero, $f0 +/* C4EEC 8013005C 00000000 */ nop +/* C4EF0 80130060 46201082 */ mul.d $f2, $f2, $f0 +/* C4EF4 80130064 00000000 */ nop +/* C4EF8 80130068 3C014034 */ lui $at, (0x40340000 >> 16) +/* C4EFC 8013006C 44810800 */ mtc1 $at, $f1 +/* C4F00 80130070 44800000 */ mtc1 $zero, $f0 +/* C4F04 80130074 00000000 */ nop +/* C4F08 80130078 46240001 */ sub.d $f0, $f0, $f4 +/* C4F0C 8013007C 97C30412 */ lhu $v1, 0x412($fp) +/* C4F10 80130080 4620030D */ trunc.w.d $f12, $f0 +/* C4F14 80130084 44026000 */ mfc1 $v0, $f12 +/* C4F18 80130088 00000000 */ nop +/* C4F1C 8013008C 00620018 */ mult $v1, $v0 +/* C4F20 80130090 3C018015 */ lui $at, %hi(D_JP_80155960) +/* C4F24 80130094 D4205960 */ ldc1 $f0, %lo(D_JP_80155960)($at) +/* C4F28 80130098 46220001 */ sub.d $f0, $f0, $f2 +/* C4F2C 8013009C 00002812 */ mflo $a1 +/* C4F30 801300A0 8C830030 */ lw $v1, 0x30($a0) +/* C4F34 801300A4 4620030D */ trunc.w.d $f12, $f0 +/* C4F38 801300A8 44026000 */ mfc1 $v0, $f12 +/* C4F3C 801300AC 00000000 */ nop +/* C4F40 801300B0 00620018 */ mult $v1, $v0 +/* C4F44 801300B4 00001812 */ mflo $v1 +/* C4F48 801300B8 00A38023 */ subu $s0, $a1, $v1 +/* C4F4C 801300BC 00102400 */ sll $a0, $s0, 16 +/* C4F50 801300C0 0C00A4E5 */ jal cosine +/* C4F54 801300C4 00042403 */ sra $a0, $a0, 16 +/* C4F58 801300C8 3C028016 */ lui $v0, %hi(msg_drawState) +/* C4F5C 801300CC 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) +/* C4F60 801300D0 C4420010 */ lwc1 $f2, 0x10($v0) +/* C4F64 801300D4 3C013FF0 */ lui $at, (0x3FF00000 >> 16) +/* C4F68 801300D8 44816800 */ mtc1 $at, $f13 +/* C4F6C 801300DC 44806000 */ mtc1 $zero, $f12 +/* C4F70 801300E0 460010A1 */ cvt.d.s $f2, $f2 +/* C4F74 801300E4 462C1081 */ sub.d $f2, $f2, $f12 +/* C4F78 801300E8 3C018015 */ lui $at, %hi(D_JP_80155968) +/* C4F7C 801300EC D4345968 */ ldc1 $f20, %lo(D_JP_80155968)($at) +/* C4F80 801300F0 46341080 */ add.d $f2, $f2, $f20 +/* C4F84 801300F4 46000021 */ cvt.d.s $f0, $f0 +/* C4F88 801300F8 46220002 */ mul.d $f0, $f0, $f2 +/* C4F8C 801300FC 00000000 */ nop +/* C4F90 80130100 3C018015 */ lui $at, %hi(D_JP_80155970) +/* C4F94 80130104 D4245970 */ ldc1 $f4, %lo(D_JP_80155970)($at) +/* C4F98 80130108 44901000 */ mtc1 $s0, $f2 +/* C4F9C 8013010C 00000000 */ nop +/* C4FA0 80130110 468010A1 */ cvt.d.w $f2, $f2 +/* C4FA4 80130114 46241080 */ add.d $f2, $f2, $f4 +/* C4FA8 80130118 3C018015 */ lui $at, %hi(D_JP_80155978) +/* C4FAC 8013011C D4245978 */ ldc1 $f4, %lo(D_JP_80155978)($at) +/* C4FB0 80130120 00111400 */ sll $v0, $s1, 16 +/* C4FB4 80130124 46241080 */ add.d $f2, $f2, $f4 +/* C4FB8 80130128 00021403 */ sra $v0, $v0, 16 +/* C4FBC 8013012C 44822000 */ mtc1 $v0, $f4 +/* C4FC0 80130130 00000000 */ nop +/* C4FC4 80130134 46802121 */ cvt.d.w $f4, $f4 +/* C4FC8 80130138 4620130D */ trunc.w.d $f12, $f2 +/* C4FCC 8013013C 44046000 */ mfc1 $a0, $f12 +/* C4FD0 80130140 46202100 */ add.d $f4, $f4, $f0 +/* C4FD4 80130144 00042400 */ sll $a0, $a0, 16 +/* C4FD8 80130148 4620230D */ trunc.w.d $f12, $f4 +/* C4FDC 8013014C 44116000 */ mfc1 $s1, $f12 +/* C4FE0 80130150 0C00A4E5 */ jal cosine +/* C4FE4 80130154 00042403 */ sra $a0, $a0, 16 +/* C4FE8 80130158 3C028016 */ lui $v0, %hi(msg_drawState) +/* C4FEC 8013015C 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) +/* C4FF0 80130160 C4420014 */ lwc1 $f2, 0x14($v0) +/* C4FF4 80130164 3C013FF0 */ lui $at, (0x3FF00000 >> 16) +/* C4FF8 80130168 44816800 */ mtc1 $at, $f13 +/* C4FFC 8013016C 44806000 */ mtc1 $zero, $f12 +/* C5000 80130170 460010A1 */ cvt.d.s $f2, $f2 +/* C5004 80130174 462C1081 */ sub.d $f2, $f2, $f12 +/* C5008 80130178 46341080 */ add.d $f2, $f2, $f20 +/* C500C 8013017C 46000021 */ cvt.d.s $f0, $f0 +/* C5010 80130180 46220002 */ mul.d $f0, $f0, $f2 +/* C5014 80130184 00000000 */ nop +/* C5018 80130188 00131400 */ sll $v0, $s3, 16 +/* C501C 8013018C 00021403 */ sra $v0, $v0, 16 +/* C5020 80130190 44821000 */ mtc1 $v0, $f2 +/* C5024 80130194 00000000 */ nop +/* C5028 80130198 468010A1 */ cvt.d.w $f2, $f2 +/* C502C 8013019C 46201080 */ add.d $f2, $f2, $f0 +/* C5030 801301A0 4620130D */ trunc.w.d $f12, $f2 +/* C5034 801301A4 44136000 */ mfc1 $s3, $f12 +.LJP_801301A8: +/* C5038 801301A8 3C038016 */ lui $v1, %hi(msg_drawState) +/* C503C 801301AC 8C63ACF4 */ lw $v1, %lo(msg_drawState)($v1) +/* C5040 801301B0 8C620038 */ lw $v0, 0x38($v1) +/* C5044 801301B4 30420200 */ andi $v0, $v0, 0x200 +/* C5048 801301B8 1040005A */ beqz $v0, .LJP_80130324 +/* C504C 801301BC 00000000 */ nop +/* C5050 801301C0 C4620010 */ lwc1 $f2, 0x10($v1) +/* C5054 801301C4 3C013FF0 */ lui $at, (0x3FF00000 >> 16) +/* C5058 801301C8 44816800 */ mtc1 $at, $f13 +/* C505C 801301CC 44806000 */ mtc1 $zero, $f12 +/* C5060 801301D0 460010A1 */ cvt.d.s $f2, $f2 +/* C5064 801301D4 462C1081 */ sub.d $f2, $f2, $f12 +/* C5068 801301D8 3C014014 */ lui $at, (0x40140000 >> 16) +/* C506C 801301DC 44810800 */ mtc1 $at, $f1 +/* C5070 801301E0 44800000 */ mtc1 $zero, $f0 +/* C5074 801301E4 00000000 */ nop +/* C5078 801301E8 46201082 */ mul.d $f2, $f2, $f0 +/* C507C 801301EC 00000000 */ nop +/* C5080 801301F0 3C014034 */ lui $at, (0x40340000 >> 16) +/* C5084 801301F4 44810800 */ mtc1 $at, $f1 +/* C5088 801301F8 44800000 */ mtc1 $zero, $f0 +/* C508C 801301FC 00000000 */ nop +/* C5090 80130200 46220001 */ sub.d $f0, $f0, $f2 +/* C5094 80130204 3C028015 */ lui $v0, %hi(gMsgGlobalWaveCounter) +/* C5098 80130208 94426344 */ lhu $v0, %lo(gMsgGlobalWaveCounter)($v0) +/* C509C 8013020C 8C630030 */ lw $v1, 0x30($v1) +/* C50A0 80130210 4620030D */ trunc.w.d $f12, $f0 +/* C50A4 80130214 44046000 */ mfc1 $a0, $f12 +/* C50A8 80130218 00000000 */ nop +/* C50AC 8013021C 00440018 */ mult $v0, $a0 +/* C50B0 80130220 00031040 */ sll $v0, $v1, 1 +/* C50B4 80130224 00431021 */ addu $v0, $v0, $v1 +/* C50B8 80130228 00028100 */ sll $s0, $v0, 4 +/* C50BC 8013022C 02028023 */ subu $s0, $s0, $v0 +/* C50C0 80130230 0000C012 */ mflo $t8 +/* C50C4 80130234 03108023 */ subu $s0, $t8, $s0 +/* C50C8 80130238 00102400 */ sll $a0, $s0, 16 +/* C50CC 8013023C 0C00A4E5 */ jal cosine +/* C50D0 80130240 00042403 */ sra $a0, $a0, 16 +/* C50D4 80130244 3C028016 */ lui $v0, %hi(msg_drawState) +/* C50D8 80130248 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) +/* C50DC 8013024C C4420010 */ lwc1 $f2, 0x10($v0) +/* C50E0 80130250 3C013FF0 */ lui $at, (0x3FF00000 >> 16) +/* C50E4 80130254 44816800 */ mtc1 $at, $f13 +/* C50E8 80130258 44806000 */ mtc1 $zero, $f12 +/* C50EC 8013025C 460010A1 */ cvt.d.s $f2, $f2 +/* C50F0 80130260 462C1081 */ sub.d $f2, $f2, $f12 +/* C50F4 80130264 3C018015 */ lui $at, %hi(D_JP_80155980) +/* C50F8 80130268 D4345980 */ ldc1 $f20, %lo(D_JP_80155980)($at) +/* C50FC 8013026C 46341080 */ add.d $f2, $f2, $f20 +/* C5100 80130270 46000021 */ cvt.d.s $f0, $f0 +/* C5104 80130274 46220002 */ mul.d $f0, $f0, $f2 +/* C5108 80130278 00000000 */ nop +/* C510C 8013027C 3C018015 */ lui $at, %hi(D_JP_80155988) +/* C5110 80130280 D4245988 */ ldc1 $f4, %lo(D_JP_80155988)($at) +/* C5114 80130284 44901000 */ mtc1 $s0, $f2 +/* C5118 80130288 00000000 */ nop +/* C511C 8013028C 468010A1 */ cvt.d.w $f2, $f2 +/* C5120 80130290 46241080 */ add.d $f2, $f2, $f4 +/* C5124 80130294 3C018015 */ lui $at, %hi(D_JP_80155990) +/* C5128 80130298 D4245990 */ ldc1 $f4, %lo(D_JP_80155990)($at) +/* C512C 8013029C 00111400 */ sll $v0, $s1, 16 +/* C5130 801302A0 46241080 */ add.d $f2, $f2, $f4 +/* C5134 801302A4 00021403 */ sra $v0, $v0, 16 +/* C5138 801302A8 44822000 */ mtc1 $v0, $f4 +/* C513C 801302AC 00000000 */ nop +/* C5140 801302B0 46802121 */ cvt.d.w $f4, $f4 +/* C5144 801302B4 4620130D */ trunc.w.d $f12, $f2 +/* C5148 801302B8 44046000 */ mfc1 $a0, $f12 +/* C514C 801302BC 46202100 */ add.d $f4, $f4, $f0 +/* C5150 801302C0 00042400 */ sll $a0, $a0, 16 +/* C5154 801302C4 4620230D */ trunc.w.d $f12, $f4 +/* C5158 801302C8 44116000 */ mfc1 $s1, $f12 +/* C515C 801302CC 0C00A4E5 */ jal cosine +/* C5160 801302D0 00042403 */ sra $a0, $a0, 16 +/* C5164 801302D4 3C028016 */ lui $v0, %hi(msg_drawState) +/* C5168 801302D8 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) +/* C516C 801302DC C4420014 */ lwc1 $f2, 0x14($v0) +/* C5170 801302E0 3C013FF0 */ lui $at, (0x3FF00000 >> 16) +/* C5174 801302E4 44816800 */ mtc1 $at, $f13 +/* C5178 801302E8 44806000 */ mtc1 $zero, $f12 +/* C517C 801302EC 460010A1 */ cvt.d.s $f2, $f2 +/* C5180 801302F0 462C1081 */ sub.d $f2, $f2, $f12 +/* C5184 801302F4 46341080 */ add.d $f2, $f2, $f20 +/* C5188 801302F8 46000021 */ cvt.d.s $f0, $f0 +/* C518C 801302FC 46220002 */ mul.d $f0, $f0, $f2 +/* C5190 80130300 00000000 */ nop +/* C5194 80130304 00131400 */ sll $v0, $s3, 16 +/* C5198 80130308 00021403 */ sra $v0, $v0, 16 +/* C519C 8013030C 44821000 */ mtc1 $v0, $f2 +/* C51A0 80130310 00000000 */ nop +/* C51A4 80130314 468010A1 */ cvt.d.w $f2, $f2 +/* C51A8 80130318 46201080 */ add.d $f2, $f2, $f0 +/* C51AC 8013031C 4620130D */ trunc.w.d $f12, $f2 +/* C51B0 80130320 44136000 */ mfc1 $s3, $f12 +.LJP_80130324: +/* C51B4 80130324 3C058016 */ lui $a1, %hi(msg_drawState) +/* C51B8 80130328 8CA5ACF4 */ lw $a1, %lo(msg_drawState)($a1) +/* C51BC 8013032C 8CA60038 */ lw $a2, 0x38($a1) +/* C51C0 80130330 30C20040 */ andi $v0, $a2, 0x40 +/* C51C4 80130334 10400019 */ beqz $v0, .LJP_8013039C +/* C51C8 80130338 30C20400 */ andi $v0, $a2, 0x400 +/* C51CC 8013033C 97C30412 */ lhu $v1, 0x412($fp) +/* C51D0 80130340 3C02AAAA */ lui $v0, (0xAAAAAAAB >> 16) +/* C51D4 80130344 3442AAAB */ ori $v0, $v0, (0xAAAAAAAB & 0xFFFF) +/* C51D8 80130348 00620019 */ multu $v1, $v0 +/* C51DC 8013034C 8CA40030 */ lw $a0, 0x30($a1) +/* C51E0 80130350 3C036666 */ lui $v1, (0x66666667 >> 16) +/* C51E4 80130354 34636667 */ ori $v1, $v1, (0x66666667 & 0xFFFF) +/* C51E8 80130358 0000C010 */ mfhi $t8 +/* C51EC 8013035C 00181042 */ srl $v0, $t8, 1 +/* C51F0 80130360 3042FFFF */ andi $v0, $v0, 0xFFFF +/* C51F4 80130364 00822023 */ subu $a0, $a0, $v0 +/* C51F8 80130368 04820001 */ bltzl $a0, .LJP_80130370 +/* C51FC 8013036C 00042023 */ negu $a0, $a0 +.LJP_80130370: +/* C5200 80130370 00830018 */ mult $a0, $v1 +/* C5204 80130374 000417C3 */ sra $v0, $a0, 31 +/* C5208 80130378 0000C010 */ mfhi $t8 +/* C520C 8013037C 00181883 */ sra $v1, $t8, 2 +/* C5210 80130380 00621823 */ subu $v1, $v1, $v0 +/* C5214 80130384 00031080 */ sll $v0, $v1, 2 +/* C5218 80130388 00431021 */ addu $v0, $v0, $v1 +/* C521C 8013038C 00021040 */ sll $v0, $v0, 1 +/* C5220 80130390 00822023 */ subu $a0, $a0, $v0 +/* C5224 80130394 A7A400A6 */ sh $a0, 0xA6($sp) +/* C5228 80130398 30C20400 */ andi $v0, $a2, 0x400 +.LJP_8013039C: +/* C522C 8013039C 1040001B */ beqz $v0, .LJP_8013040C +/* C5230 801303A0 30C20080 */ andi $v0, $a2, 0x80 +/* C5234 801303A4 3C028007 */ lui $v0, %hi(gGameStatusPtr) +/* C5238 801303A8 8C42417C */ lw $v0, %lo(gGameStatusPtr)($v0) +/* C523C 801303AC 94430134 */ lhu $v1, 0x134($v0) +/* C5240 801303B0 3C02AAAA */ lui $v0, (0xAAAAAAAB >> 16) +/* C5244 801303B4 3442AAAB */ ori $v0, $v0, (0xAAAAAAAB & 0xFFFF) +/* C5248 801303B8 00620019 */ multu $v1, $v0 +/* C524C 801303BC 8CA40030 */ lw $a0, 0x30($a1) +/* C5250 801303C0 3C036666 */ lui $v1, (0x66666667 >> 16) +/* C5254 801303C4 34636667 */ ori $v1, $v1, (0x66666667 & 0xFFFF) +/* C5258 801303C8 0000C010 */ mfhi $t8 +/* C525C 801303CC 00181042 */ srl $v0, $t8, 1 +/* C5260 801303D0 3042FFFF */ andi $v0, $v0, 0xFFFF +/* C5264 801303D4 00822023 */ subu $a0, $a0, $v0 +/* C5268 801303D8 04820001 */ bltzl $a0, .LJP_801303E0 +/* C526C 801303DC 00042023 */ negu $a0, $a0 +.LJP_801303E0: +/* C5270 801303E0 00830018 */ mult $a0, $v1 +/* C5274 801303E4 000417C3 */ sra $v0, $a0, 31 +/* C5278 801303E8 0000C010 */ mfhi $t8 +/* C527C 801303EC 00181883 */ sra $v1, $t8, 2 +/* C5280 801303F0 00621823 */ subu $v1, $v1, $v0 +/* C5284 801303F4 00031080 */ sll $v0, $v1, 2 +/* C5288 801303F8 00431021 */ addu $v0, $v0, $v1 +/* C528C 801303FC 00021040 */ sll $v0, $v0, 1 +/* C5290 80130400 00822023 */ subu $a0, $a0, $v0 +/* C5294 80130404 A7A400A6 */ sh $a0, 0xA6($sp) +/* C5298 80130408 30C20080 */ andi $v0, $a2, 0x80 +.LJP_8013040C: +/* C529C 8013040C 10400020 */ beqz $v0, .LJP_80130490 +/* C52A0 80130410 3C02E300 */ lui $v0, (0xE3001A01 >> 16) +/* C52A4 80130414 34421A01 */ ori $v0, $v0, (0xE3001A01 & 0xFFFF) +/* C52A8 80130418 3C05E200 */ lui $a1, (0xE2001E01 >> 16) +/* C52AC 8013041C 34A51E01 */ ori $a1, $a1, (0xE2001E01 & 0xFFFF) +/* C52B0 80130420 8EE30000 */ lw $v1, 0x0($s7) +/* C52B4 80130424 3C018015 */ lui $at, %hi(D_JP_80155998) +/* C52B8 80130428 D4225998 */ ldc1 $f2, %lo(D_JP_80155998)($at) +/* C52BC 8013042C 0060202D */ daddu $a0, $v1, $zero +/* C52C0 80130430 24630008 */ addiu $v1, $v1, 0x8 +/* C52C4 80130434 AEE30000 */ sw $v1, 0x0($s7) +/* C52C8 80130438 AC820000 */ sw $v0, 0x0($a0) +/* C52CC 8013043C 00121400 */ sll $v0, $s2, 16 +/* C52D0 80130440 00021403 */ sra $v0, $v0, 16 +/* C52D4 80130444 44820000 */ mtc1 $v0, $f0 +/* C52D8 80130448 00000000 */ nop +/* C52DC 8013044C 46800021 */ cvt.d.w $f0, $f0 +/* C52E0 80130450 97B900B6 */ lhu $t9, 0xB6($sp) +/* C52E4 80130454 46220003 */ div.d $f0, $f0, $f2 +/* C52E8 80130458 44992000 */ mtc1 $t9, $f4 +/* C52EC 8013045C 00000000 */ nop +/* C52F0 80130460 46802121 */ cvt.d.w $f4, $f4 +/* C52F4 80130464 46202102 */ mul.d $f4, $f4, $f0 +/* C52F8 80130468 00000000 */ nop +/* C52FC 8013046C 24020020 */ addiu $v0, $zero, 0x20 +/* C5300 80130470 AC820004 */ sw $v0, 0x4($a0) +/* C5304 80130474 24620008 */ addiu $v0, $v1, 0x8 +/* C5308 80130478 AEE20000 */ sw $v0, 0x0($s7) +/* C530C 8013047C 24020003 */ addiu $v0, $zero, 0x3 +/* C5310 80130480 AC650000 */ sw $a1, 0x0($v1) +/* C5314 80130484 AC620004 */ sw $v0, 0x4($v1) +/* C5318 80130488 4620230D */ trunc.w.d $f12, $f4 +/* C531C 8013048C 44126000 */ mfc1 $s2, $f12 +.LJP_80130490: +/* C5320 80130490 3C028016 */ lui $v0, %hi(msg_drawState) +/* C5324 80130494 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) +/* C5328 80130498 94420034 */ lhu $v0, 0x34($v0) +/* C532C 8013049C 30420002 */ andi $v0, $v0, 0x2 +/* C5330 801304A0 14400005 */ bnez $v0, .LJP_801304B8 +/* C5334 801304A4 00121C00 */ sll $v1, $s2, 16 +/* C5338 801304A8 97B90096 */ lhu $t9, 0x96($sp) +/* C533C 801304AC 00191400 */ sll $v0, $t9, 16 +/* C5340 801304B0 10620063 */ beq $v1, $v0, .LJP_80130640 +/* C5344 801304B4 00121400 */ sll $v0, $s2, 16 +.LJP_801304B8: +/* C5348 801304B8 97B80096 */ lhu $t8, 0x96($sp) +/* C534C 801304BC 00181400 */ sll $v0, $t8, 16 +/* C5350 801304C0 00021403 */ sra $v0, $v0, 16 +/* C5354 801304C4 284200FF */ slti $v0, $v0, 0xFF +/* C5358 801304C8 10400009 */ beqz $v0, .LJP_801304F0 +/* C535C 801304CC 00121400 */ sll $v0, $s2, 16 +/* C5360 801304D0 00021403 */ sra $v0, $v0, 16 +/* C5364 801304D4 284200FF */ slti $v0, $v0, 0xFF +/* C5368 801304D8 10400005 */ beqz $v0, .LJP_801304F0 +/* C536C 801304DC 00000000 */ nop +/* C5370 801304E0 8EE20000 */ lw $v0, 0x0($s7) +/* C5374 801304E4 0040182D */ daddu $v1, $v0, $zero +/* C5378 801304E8 0804C167 */ j .LJP_8013059C +/* C537C 801304EC 24420008 */ addiu $v0, $v0, 0x8 +.LJP_801304F0: +/* C5380 801304F0 97B90096 */ lhu $t9, 0x96($sp) +/* C5384 801304F4 241800FF */ addiu $t8, $zero, 0xFF +/* C5388 801304F8 00191400 */ sll $v0, $t9, 16 +/* C538C 801304FC 00021403 */ sra $v0, $v0, 16 +/* C5390 80130500 1458002C */ bne $v0, $t8, .LJP_801305B4 +/* C5394 80130504 00121400 */ sll $v0, $s2, 16 +/* C5398 80130508 00021403 */ sra $v0, $v0, 16 +/* C539C 8013050C 0058102A */ slt $v0, $v0, $t8 +/* C53A0 80130510 10400028 */ beqz $v0, .LJP_801305B4 +/* C53A4 80130514 3C19E700 */ lui $t9, (0xE7000000 >> 16) +/* C53A8 80130518 8EE50000 */ lw $a1, 0x0($s7) +/* C53AC 8013051C 00A0102D */ daddu $v0, $a1, $zero +/* C53B0 80130520 AC590000 */ sw $t9, 0x0($v0) +/* C53B4 80130524 AC400004 */ sw $zero, 0x4($v0) +/* C53B8 80130528 8FC204BC */ lw $v0, 0x4BC($fp) +/* C53BC 8013052C 24A50008 */ addiu $a1, $a1, 0x8 +/* C53C0 80130530 30424000 */ andi $v0, $v0, 0x4000 +/* C53C4 80130534 10400006 */ beqz $v0, .LJP_80130550 +/* C53C8 80130538 AEE50000 */ sw $a1, 0x0($s7) +/* C53CC 8013053C 3C04E200 */ lui $a0, (0xE200001C >> 16) +/* C53D0 80130540 3484001C */ ori $a0, $a0, (0xE200001C & 0xFFFF) +/* C53D4 80130544 3C030050 */ lui $v1, (0x504840 >> 16) +/* C53D8 80130548 0804C158 */ j .LJP_80130560 +/* C53DC 8013054C 34634840 */ ori $v1, $v1, (0x504840 & 0xFFFF) +.LJP_80130550: +/* C53E0 80130550 3C04E200 */ lui $a0, (0xE200001C >> 16) +/* C53E4 80130554 3484001C */ ori $a0, $a0, (0xE200001C & 0xFFFF) +/* C53E8 80130558 3C030050 */ lui $v1, (0x504B40 >> 16) +/* C53EC 8013055C 34634B40 */ ori $v1, $v1, (0x504B40 & 0xFFFF) +.LJP_80130560: +/* C53F0 80130560 24A20008 */ addiu $v0, $a1, 0x8 +/* C53F4 80130564 AEE20000 */ sw $v0, 0x0($s7) +/* C53F8 80130568 ACA40000 */ sw $a0, 0x0($a1) +/* C53FC 8013056C ACA30004 */ sw $v1, 0x4($a1) +/* C5400 80130570 3C05FCFF */ lui $a1, (0xFCFF97FF >> 16) +/* C5404 80130574 34A597FF */ ori $a1, $a1, (0xFCFF97FF & 0xFFFF) +/* C5408 80130578 3C04FF2C */ lui $a0, (0xFF2CFE7F >> 16) +/* C540C 8013057C 8EE30000 */ lw $v1, 0x0($s7) +/* C5410 80130580 3484FE7F */ ori $a0, $a0, (0xFF2CFE7F & 0xFFFF) +/* C5414 80130584 0060102D */ daddu $v0, $v1, $zero +/* C5418 80130588 24630008 */ addiu $v1, $v1, 0x8 +/* C541C 8013058C AEE30000 */ sw $v1, 0x0($s7) +/* C5420 80130590 AC450000 */ sw $a1, 0x0($v0) +/* C5424 80130594 AC440004 */ sw $a0, 0x4($v0) +/* C5428 80130598 24620008 */ addiu $v0, $v1, 0x8 +.LJP_8013059C: +/* C542C 8013059C AEE20000 */ sw $v0, 0x0($s7) +/* C5430 801305A0 3C02FA00 */ lui $v0, (0xFA000000 >> 16) +/* C5434 801305A4 AC620000 */ sw $v0, 0x0($v1) +/* C5438 801305A8 324200FF */ andi $v0, $s2, 0xFF +/* C543C 801305AC 0804C18E */ j .LJP_80130638 +/* C5440 801305B0 AC620004 */ sw $v0, 0x4($v1) +.LJP_801305B4: +/* C5444 801305B4 97B80096 */ lhu $t8, 0x96($sp) +/* C5448 801305B8 00181400 */ sll $v0, $t8, 16 +/* C544C 801305BC 00021403 */ sra $v0, $v0, 16 +/* C5450 801305C0 284200FF */ slti $v0, $v0, 0xFF +/* C5454 801305C4 1040001C */ beqz $v0, .LJP_80130638 +/* C5458 801305C8 00121400 */ sll $v0, $s2, 16 +/* C545C 801305CC 00021403 */ sra $v0, $v0, 16 +/* C5460 801305D0 241900FF */ addiu $t9, $zero, 0xFF +/* C5464 801305D4 54590019 */ bnel $v0, $t9, .LJP_8013063C +/* C5468 801305D8 A7B20096 */ sh $s2, 0x96($sp) +/* C546C 801305DC 3C06E200 */ lui $a2, (0xE200001C >> 16) +/* C5470 801305E0 34C6001C */ ori $a2, $a2, (0xE200001C & 0xFFFF) +/* C5474 801305E4 3C040F0A */ lui $a0, (0xF0A7008 >> 16) +/* C5478 801305E8 34847008 */ ori $a0, $a0, (0xF0A7008 & 0xFFFF) +/* C547C 801305EC 3C07FCFF */ lui $a3, (0xFCFFFFFF >> 16) +/* C5480 801305F0 34E7FFFF */ ori $a3, $a3, (0xFCFFFFFF & 0xFFFF) +/* C5484 801305F4 3C05FFFC */ lui $a1, (0xFFFCF279 >> 16) +/* C5488 801305F8 8EE30000 */ lw $v1, 0x0($s7) +/* C548C 801305FC 34A5F279 */ ori $a1, $a1, (0xFFFCF279 & 0xFFFF) +/* C5490 80130600 0060102D */ daddu $v0, $v1, $zero +/* C5494 80130604 24630008 */ addiu $v1, $v1, 0x8 +/* C5498 80130608 3C18E700 */ lui $t8, (0xE7000000 >> 16) +/* C549C 8013060C AEE30000 */ sw $v1, 0x0($s7) +/* C54A0 80130610 AC580000 */ sw $t8, 0x0($v0) +/* C54A4 80130614 AC400004 */ sw $zero, 0x4($v0) +/* C54A8 80130618 24620008 */ addiu $v0, $v1, 0x8 +/* C54AC 8013061C AEE20000 */ sw $v0, 0x0($s7) +/* C54B0 80130620 24620010 */ addiu $v0, $v1, 0x10 +/* C54B4 80130624 AC660000 */ sw $a2, 0x0($v1) +/* C54B8 80130628 AC640004 */ sw $a0, 0x4($v1) +/* C54BC 8013062C AEE20000 */ sw $v0, 0x0($s7) +/* C54C0 80130630 AC670008 */ sw $a3, 0x8($v1) +/* C54C4 80130634 AC65000C */ sw $a1, 0xC($v1) +.LJP_80130638: +/* C54C8 80130638 A7B20096 */ sh $s2, 0x96($sp) +.LJP_8013063C: +/* C54CC 8013063C 00121400 */ sll $v0, $s2, 16 +.LJP_80130640: +/* C54D0 80130640 18400288 */ blez $v0, .LJP_80131064 +/* C54D4 80130644 00000000 */ nop +/* C54D8 80130648 3C068016 */ lui $a2, %hi(msg_drawState) +/* C54DC 8013064C 8CC6ACF4 */ lw $a2, %lo(msg_drawState)($a2) +/* C54E0 80130650 8CC30038 */ lw $v1, 0x38($a2) +/* C54E4 80130654 30620800 */ andi $v0, $v1, 0x800 +/* C54E8 80130658 10400092 */ beqz $v0, .LJP_801308A4 +/* C54EC 8013065C 240400F0 */ addiu $a0, $zero, 0xF0 +/* C54F0 80130660 8CC30020 */ lw $v1, 0x20($a2) +/* C54F4 80130664 8CC2004C */ lw $v0, 0x4C($a2) +/* C54F8 80130668 00621821 */ addu $v1, $v1, $v0 +/* C54FC 8013066C 90650001 */ lbu $a1, 0x1($v1) +/* C5500 80130670 10A401B8 */ beq $a1, $a0, .LJP_80130D54 +/* C5504 80130674 00000000 */ nop +/* C5508 80130678 90620002 */ lbu $v0, 0x2($v1) +/* C550C 8013067C 104401B5 */ beq $v0, $a0, .LJP_80130D54 +/* C5510 80130680 00000000 */ nop +/* C5514 80130684 90620003 */ lbu $v0, 0x3($v1) +/* C5518 80130688 104401B2 */ beq $v0, $a0, .LJP_80130D54 +/* C551C 8013068C 00000000 */ nop +/* C5520 80130690 90620004 */ lbu $v0, 0x4($v1) +/* C5524 80130694 104401AF */ beq $v0, $a0, .LJP_80130D54 +/* C5528 80130698 240200FB */ addiu $v0, $zero, 0xFB +/* C552C 8013069C 14A20026 */ bne $a1, $v0, .LJP_80130738 +/* C5530 801306A0 24020004 */ addiu $v0, $zero, 0x4 +/* C5534 801306A4 93C304B8 */ lbu $v1, 0x4B8($fp) +/* C5538 801306A8 14620023 */ bne $v1, $v0, .LJP_80130738 +/* C553C 801306AC 00111400 */ sll $v0, $s1, 16 +/* C5540 801306B0 C4C60014 */ lwc1 $f6, 0x14($a2) +/* C5544 801306B4 3C018015 */ lui $at, %hi(D_JP_801559A0) +/* C5548 801306B8 D42859A0 */ ldc1 $f8, %lo(D_JP_801559A0)($at) +/* C554C 801306BC 460031A1 */ cvt.d.s $f6, $f6 +/* C5550 801306C0 46283182 */ mul.d $f6, $f6, $f8 +/* C5554 801306C4 00000000 */ nop +/* C5558 801306C8 C4C00010 */ lwc1 $f0, 0x10($a2) +/* C555C 801306CC 46000021 */ cvt.d.s $f0, $f0 +/* C5560 801306D0 46280002 */ mul.d $f0, $f0, $f8 +/* C5564 801306D4 00000000 */ nop +/* C5568 801306D8 3C014018 */ lui $at, (0x40180000 >> 16) +/* C556C 801306DC 44812800 */ mtc1 $at, $f5 +/* C5570 801306E0 44802000 */ mtc1 $zero, $f4 +/* C5574 801306E4 462031A0 */ cvt.s.d $f6, $f6 +/* C5578 801306E8 460030A1 */ cvt.d.s $f2, $f6 +/* C557C 801306EC 46281083 */ div.d $f2, $f2, $f8 +/* C5580 801306F0 46241082 */ mul.d $f2, $f2, $f4 +/* C5584 801306F4 00000000 */ nop +/* C5588 801306F8 00021403 */ sra $v0, $v0, 16 +/* C558C 801306FC 46200020 */ cvt.s.d $f0, $f0 +/* C5590 80130700 E4C00018 */ swc1 $f0, 0x18($a2) +/* C5594 80130704 46201220 */ cvt.s.d $f8, $f2 +/* C5598 80130708 44821000 */ mtc1 $v0, $f2 +/* C559C 8013070C 00000000 */ nop +/* C55A0 80130710 468010A0 */ cvt.s.w $f2, $f2 +/* C55A4 80130714 00131400 */ sll $v0, $s3, 16 +/* C55A8 80130718 46081081 */ sub.s $f2, $f2, $f8 +/* C55AC 8013071C 00021403 */ sra $v0, $v0, 16 +/* C55B0 80130720 44820000 */ mtc1 $v0, $f0 +/* C55B4 80130724 00000000 */ nop +/* C55B8 80130728 46800020 */ cvt.s.w $f0, $f0 +/* C55BC 8013072C 46080001 */ sub.s $f0, $f0, $f8 +/* C55C0 80130730 0804C223 */ j .LJP_8013088C +/* C55C4 80130734 E4C6001C */ swc1 $f6, 0x1C($a2) +.LJP_80130738: +/* C55C8 80130738 3C048016 */ lui $a0, %hi(msg_drawState) +/* C55CC 8013073C 8C84ACF4 */ lw $a0, %lo(msg_drawState)($a0) +/* C55D0 80130740 8C820020 */ lw $v0, 0x20($a0) +/* C55D4 80130744 8C83004C */ lw $v1, 0x4C($a0) +/* C55D8 80130748 00431021 */ addu $v0, $v0, $v1 +/* C55DC 8013074C 90430002 */ lbu $v1, 0x2($v0) +/* C55E0 80130750 240200FB */ addiu $v0, $zero, 0xFB +/* C55E4 80130754 14620026 */ bne $v1, $v0, .LJP_801307F0 +/* C55E8 80130758 24020004 */ addiu $v0, $zero, 0x4 +/* C55EC 8013075C 93C304B8 */ lbu $v1, 0x4B8($fp) +/* C55F0 80130760 14620023 */ bne $v1, $v0, .LJP_801307F0 +/* C55F4 80130764 00111400 */ sll $v0, $s1, 16 +/* C55F8 80130768 C4860014 */ lwc1 $f6, 0x14($a0) +/* C55FC 8013076C 3C018015 */ lui $at, %hi(D_JP_801559A8) +/* C5600 80130770 D42859A8 */ ldc1 $f8, %lo(D_JP_801559A8)($at) +/* C5604 80130774 460031A1 */ cvt.d.s $f6, $f6 +/* C5608 80130778 46283182 */ mul.d $f6, $f6, $f8 +/* C560C 8013077C 00000000 */ nop +/* C5610 80130780 C4800010 */ lwc1 $f0, 0x10($a0) +/* C5614 80130784 46000021 */ cvt.d.s $f0, $f0 +/* C5618 80130788 46280002 */ mul.d $f0, $f0, $f8 +/* C561C 8013078C 00000000 */ nop +/* C5620 80130790 3C014008 */ lui $at, (0x40080000 >> 16) +/* C5624 80130794 44812800 */ mtc1 $at, $f5 +/* C5628 80130798 44802000 */ mtc1 $zero, $f4 +/* C562C 8013079C 462031A0 */ cvt.s.d $f6, $f6 +/* C5630 801307A0 460030A1 */ cvt.d.s $f2, $f6 +/* C5634 801307A4 46281083 */ div.d $f2, $f2, $f8 +/* C5638 801307A8 46241082 */ mul.d $f2, $f2, $f4 +/* C563C 801307AC 00000000 */ nop +/* C5640 801307B0 00021403 */ sra $v0, $v0, 16 +/* C5644 801307B4 46200020 */ cvt.s.d $f0, $f0 +/* C5648 801307B8 E4800018 */ swc1 $f0, 0x18($a0) +/* C564C 801307BC 46201220 */ cvt.s.d $f8, $f2 +/* C5650 801307C0 44821000 */ mtc1 $v0, $f2 +/* C5654 801307C4 00000000 */ nop +/* C5658 801307C8 468010A0 */ cvt.s.w $f2, $f2 +/* C565C 801307CC 00131400 */ sll $v0, $s3, 16 +/* C5660 801307D0 46081081 */ sub.s $f2, $f2, $f8 +/* C5664 801307D4 00021403 */ sra $v0, $v0, 16 +/* C5668 801307D8 44820000 */ mtc1 $v0, $f0 +/* C566C 801307DC 00000000 */ nop +/* C5670 801307E0 46800020 */ cvt.s.w $f0, $f0 +/* C5674 801307E4 46080001 */ sub.s $f0, $f0, $f8 +/* C5678 801307E8 0804C223 */ j .LJP_8013088C +/* C567C 801307EC E486001C */ swc1 $f6, 0x1C($a0) +.LJP_801307F0: +/* C5680 801307F0 8C820020 */ lw $v0, 0x20($a0) +/* C5684 801307F4 8C83004C */ lw $v1, 0x4C($a0) +/* C5688 801307F8 00431021 */ addu $v0, $v0, $v1 +/* C568C 801307FC 90430003 */ lbu $v1, 0x3($v0) +/* C5690 80130800 240200FB */ addiu $v0, $zero, 0xFB +/* C5694 80130804 14620153 */ bne $v1, $v0, .LJP_80130D54 +/* C5698 80130808 24020004 */ addiu $v0, $zero, 0x4 +/* C569C 8013080C 93C304B8 */ lbu $v1, 0x4B8($fp) +/* C56A0 80130810 14620150 */ bne $v1, $v0, .LJP_80130D54 +/* C56A4 80130814 00111400 */ sll $v0, $s1, 16 +/* C56A8 80130818 C4840014 */ lwc1 $f4, 0x14($a0) +/* C56AC 8013081C 3C018015 */ lui $at, %hi(D_JP_801559B0) +/* C56B0 80130820 D42659B0 */ ldc1 $f6, %lo(D_JP_801559B0)($at) +/* C56B4 80130824 46002121 */ cvt.d.s $f4, $f4 +/* C56B8 80130828 46262102 */ mul.d $f4, $f4, $f6 +/* C56BC 8013082C 00000000 */ nop +/* C56C0 80130830 C4820010 */ lwc1 $f2, 0x10($a0) +/* C56C4 80130834 460010A1 */ cvt.d.s $f2, $f2 +/* C56C8 80130838 46261082 */ mul.d $f2, $f2, $f6 +/* C56CC 8013083C 00000000 */ nop +/* C56D0 80130840 00021403 */ sra $v0, $v0, 16 +/* C56D4 80130844 46202120 */ cvt.s.d $f4, $f4 +/* C56D8 80130848 46002021 */ cvt.d.s $f0, $f4 +/* C56DC 8013084C 46260003 */ div.d $f0, $f0, $f6 +/* C56E0 80130850 462010A0 */ cvt.s.d $f2, $f2 +/* C56E4 80130854 E4820018 */ swc1 $f2, 0x18($a0) +/* C56E8 80130858 46200000 */ add.d $f0, $f0, $f0 +/* C56EC 8013085C 44821000 */ mtc1 $v0, $f2 +/* C56F0 80130860 00000000 */ nop +/* C56F4 80130864 468010A0 */ cvt.s.w $f2, $f2 +/* C56F8 80130868 00131400 */ sll $v0, $s3, 16 +/* C56FC 8013086C 46200220 */ cvt.s.d $f8, $f0 +/* C5700 80130870 46081081 */ sub.s $f2, $f2, $f8 +/* C5704 80130874 00021403 */ sra $v0, $v0, 16 +/* C5708 80130878 44820000 */ mtc1 $v0, $f0 +/* C570C 8013087C 00000000 */ nop +/* C5710 80130880 46800020 */ cvt.s.w $f0, $f0 +/* C5714 80130884 46080001 */ sub.s $f0, $f0, $f8 +/* C5718 80130888 E484001C */ swc1 $f4, 0x1C($a0) +.LJP_8013088C: +/* C571C 8013088C 4600130D */ trunc.w.s $f12, $f2 +/* C5720 80130890 44116000 */ mfc1 $s1, $f12 +/* C5724 80130894 4600030D */ trunc.w.s $f12, $f0 +/* C5728 80130898 44136000 */ mfc1 $s3, $f12 +/* C572C 8013089C 0804C355 */ j .LJP_80130D54 +/* C5730 801308A0 00000000 */ nop +.LJP_801308A4: +/* C5734 801308A4 30621000 */ andi $v0, $v1, 0x1000 +/* C5738 801308A8 10400060 */ beqz $v0, .LJP_80130A2C +/* C573C 801308AC 30622000 */ andi $v0, $v1, 0x2000 +/* C5740 801308B0 8CC30020 */ lw $v1, 0x20($a2) +/* C5744 801308B4 8CC2004C */ lw $v0, 0x4C($a2) +/* C5748 801308B8 00621821 */ addu $v1, $v1, $v0 +/* C574C 801308BC 90650001 */ lbu $a1, 0x1($v1) +/* C5750 801308C0 10A40124 */ beq $a1, $a0, .LJP_80130D54 +/* C5754 801308C4 00000000 */ nop +/* C5758 801308C8 90620002 */ lbu $v0, 0x2($v1) +/* C575C 801308CC 10440121 */ beq $v0, $a0, .LJP_80130D54 +/* C5760 801308D0 00000000 */ nop +/* C5764 801308D4 90620003 */ lbu $v0, 0x3($v1) +/* C5768 801308D8 1044011E */ beq $v0, $a0, .LJP_80130D54 +/* C576C 801308DC 00000000 */ nop +/* C5770 801308E0 90620004 */ lbu $v0, 0x4($v1) +/* C5774 801308E4 1044011B */ beq $v0, $a0, .LJP_80130D54 +/* C5778 801308E8 240200FB */ addiu $v0, $zero, 0xFB +/* C577C 801308EC 14A20015 */ bne $a1, $v0, .LJP_80130944 +/* C5780 801308F0 24020004 */ addiu $v0, $zero, 0x4 +/* C5784 801308F4 93C304B8 */ lbu $v1, 0x4B8($fp) +/* C5788 801308F8 14620012 */ bne $v1, $v0, .LJP_80130944 +/* C578C 801308FC 00000000 */ nop +/* C5790 80130900 C4C00010 */ lwc1 $f0, 0x10($a2) +/* C5794 80130904 3C018015 */ lui $at, %hi(D_JP_801559B8) +/* C5798 80130908 D42459B8 */ ldc1 $f4, %lo(D_JP_801559B8)($at) +/* C579C 8013090C 46000021 */ cvt.d.s $f0, $f0 +/* C57A0 80130910 46240002 */ mul.d $f0, $f0, $f4 +/* C57A4 80130914 00000000 */ nop +/* C57A8 80130918 C4C20014 */ lwc1 $f2, 0x14($a2) +/* C57AC 8013091C 460010A1 */ cvt.d.s $f2, $f2 +/* C57B0 80130920 46241082 */ mul.d $f2, $f2, $f4 +/* C57B4 80130924 00000000 */ nop +/* C57B8 80130928 26310005 */ addiu $s1, $s1, 0x5 +/* C57BC 8013092C 26730005 */ addiu $s3, $s3, 0x5 +/* C57C0 80130930 46200020 */ cvt.s.d $f0, $f0 +/* C57C4 80130934 462010A0 */ cvt.s.d $f2, $f2 +/* C57C8 80130938 E4C00018 */ swc1 $f0, 0x18($a2) +/* C57CC 8013093C 0804C355 */ j .LJP_80130D54 +/* C57D0 80130940 E4C2001C */ swc1 $f2, 0x1C($a2) +.LJP_80130944: +/* C57D4 80130944 3C048016 */ lui $a0, %hi(msg_drawState) +/* C57D8 80130948 8C84ACF4 */ lw $a0, %lo(msg_drawState)($a0) +/* C57DC 8013094C 8C820020 */ lw $v0, 0x20($a0) +/* C57E0 80130950 8C83004C */ lw $v1, 0x4C($a0) +/* C57E4 80130954 00431021 */ addu $v0, $v0, $v1 +/* C57E8 80130958 90430002 */ lbu $v1, 0x2($v0) +/* C57EC 8013095C 240200FB */ addiu $v0, $zero, 0xFB +/* C57F0 80130960 14620016 */ bne $v1, $v0, .LJP_801309BC +/* C57F4 80130964 24020004 */ addiu $v0, $zero, 0x4 +/* C57F8 80130968 93C304B8 */ lbu $v1, 0x4B8($fp) +/* C57FC 8013096C 14620013 */ bne $v1, $v0, .LJP_801309BC +/* C5800 80130970 00000000 */ nop +/* C5804 80130974 C4820010 */ lwc1 $f2, 0x10($a0) +/* C5808 80130978 3C013FE0 */ lui $at, (0x3FE00000 >> 16) +/* C580C 8013097C 44816800 */ mtc1 $at, $f13 +/* C5810 80130980 44806000 */ mtc1 $zero, $f12 +/* C5814 80130984 460010A1 */ cvt.d.s $f2, $f2 +/* C5818 80130988 462C1082 */ mul.d $f2, $f2, $f12 +/* C581C 8013098C 00000000 */ nop +/* C5820 80130990 C4800014 */ lwc1 $f0, 0x14($a0) +/* C5824 80130994 46000021 */ cvt.d.s $f0, $f0 +/* C5828 80130998 462C0002 */ mul.d $f0, $f0, $f12 +/* C582C 8013099C 00000000 */ nop +/* C5830 801309A0 26310003 */ addiu $s1, $s1, 0x3 +/* C5834 801309A4 26730003 */ addiu $s3, $s3, 0x3 +/* C5838 801309A8 462010A0 */ cvt.s.d $f2, $f2 +/* C583C 801309AC 46200020 */ cvt.s.d $f0, $f0 +/* C5840 801309B0 E4820018 */ swc1 $f2, 0x18($a0) +/* C5844 801309B4 0804C355 */ j .LJP_80130D54 +/* C5848 801309B8 E480001C */ swc1 $f0, 0x1C($a0) +.LJP_801309BC: +/* C584C 801309BC 8C820020 */ lw $v0, 0x20($a0) +/* C5850 801309C0 8C83004C */ lw $v1, 0x4C($a0) +/* C5854 801309C4 00431021 */ addu $v0, $v0, $v1 +/* C5858 801309C8 90430003 */ lbu $v1, 0x3($v0) +/* C585C 801309CC 240200FB */ addiu $v0, $zero, 0xFB +/* C5860 801309D0 146200E0 */ bne $v1, $v0, .LJP_80130D54 +/* C5864 801309D4 24020004 */ addiu $v0, $zero, 0x4 +/* C5868 801309D8 93C304B8 */ lbu $v1, 0x4B8($fp) +/* C586C 801309DC 146200DD */ bne $v1, $v0, .LJP_80130D54 +/* C5870 801309E0 00000000 */ nop +/* C5874 801309E4 C4800010 */ lwc1 $f0, 0x10($a0) +/* C5878 801309E8 3C013FE8 */ lui $at, (0x3FE80000 >> 16) +/* C587C 801309EC 44812800 */ mtc1 $at, $f5 +/* C5880 801309F0 44802000 */ mtc1 $zero, $f4 +/* C5884 801309F4 46000021 */ cvt.d.s $f0, $f0 +/* C5888 801309F8 46240002 */ mul.d $f0, $f0, $f4 +/* C588C 801309FC 00000000 */ nop +/* C5890 80130A00 C4820014 */ lwc1 $f2, 0x14($a0) +/* C5894 80130A04 460010A1 */ cvt.d.s $f2, $f2 +/* C5898 80130A08 46241082 */ mul.d $f2, $f2, $f4 +/* C589C 80130A0C 00000000 */ nop +/* C58A0 80130A10 26310002 */ addiu $s1, $s1, 0x2 +/* C58A4 80130A14 26730002 */ addiu $s3, $s3, 0x2 +/* C58A8 80130A18 46200020 */ cvt.s.d $f0, $f0 +/* C58AC 80130A1C 462010A0 */ cvt.s.d $f2, $f2 +/* C58B0 80130A20 E4800018 */ swc1 $f0, 0x18($a0) +/* C58B4 80130A24 0804C355 */ j .LJP_80130D54 +/* C58B8 80130A28 E482001C */ swc1 $f2, 0x1C($a0) +.LJP_80130A2C: +/* C58BC 80130A2C 10400052 */ beqz $v0, .LJP_80130B78 +/* C58C0 80130A30 30624000 */ andi $v0, $v1, 0x4000 +/* C58C4 80130A34 0C00A66F */ jal rand_int +/* C58C8 80130A38 24042710 */ addiu $a0, $zero, 0x2710 +/* C58CC 80130A3C 3C03288D */ lui $v1, (0x288DF0CB >> 16) +/* C58D0 80130A40 3463F0CB */ ori $v1, $v1, (0x288DF0CB & 0xFFFF) +/* C58D4 80130A44 00430018 */ mult $v0, $v1 +/* C58D8 80130A48 00021FC3 */ sra $v1, $v0, 31 +/* C58DC 80130A4C 3C014059 */ lui $at, (0x40590000 >> 16) +/* C58E0 80130A50 44811800 */ mtc1 $at, $f3 +/* C58E4 80130A54 44801000 */ mtc1 $zero, $f2 +/* C58E8 80130A58 3C013FE0 */ lui $at, (0x3FE00000 >> 16) +/* C58EC 80130A5C 44816800 */ mtc1 $at, $f13 +/* C58F0 80130A60 44806000 */ mtc1 $zero, $f12 +/* C58F4 80130A64 0000C010 */ mfhi $t8 +/* C58F8 80130A68 00182103 */ sra $a0, $t8, 4 +/* C58FC 80130A6C 00832023 */ subu $a0, $a0, $v1 +/* C5900 80130A70 00041840 */ sll $v1, $a0, 1 +/* C5904 80130A74 00641821 */ addu $v1, $v1, $a0 +/* C5908 80130A78 000318C0 */ sll $v1, $v1, 3 +/* C590C 80130A7C 00641821 */ addu $v1, $v1, $a0 +/* C5910 80130A80 00031880 */ sll $v1, $v1, 2 +/* C5914 80130A84 00641821 */ addu $v1, $v1, $a0 +/* C5918 80130A88 00431023 */ subu $v0, $v0, $v1 +/* C591C 80130A8C 44824000 */ mtc1 $v0, $f8 +/* C5920 80130A90 00000000 */ nop +/* C5924 80130A94 46804220 */ cvt.s.w $f8, $f8 +/* C5928 80130A98 46004021 */ cvt.d.s $f0, $f8 +/* C592C 80130A9C 46220003 */ div.d $f0, $f0, $f2 +/* C5930 80130AA0 46200220 */ cvt.s.d $f8, $f0 +/* C5934 80130AA4 46004021 */ cvt.d.s $f0, $f8 +/* C5938 80130AA8 462C0002 */ mul.d $f0, $f0, $f12 +/* C593C 80130AAC 00000000 */ nop +/* C5940 80130AB0 3C013FF0 */ lui $at, (0x3FF00000 >> 16) +/* C5944 80130AB4 44816800 */ mtc1 $at, $f13 +/* C5948 80130AB8 44806000 */ mtc1 $zero, $f12 +/* C594C 80130ABC 00000000 */ nop +/* C5950 80130AC0 462C0000 */ add.d $f0, $f0, $f12 +/* C5954 80130AC4 3C013FD0 */ lui $at, (0x3FD00000 >> 16) +/* C5958 80130AC8 44811800 */ mtc1 $at, $f3 +/* C595C 80130ACC 44801000 */ mtc1 $zero, $f2 +/* C5960 80130AD0 00000000 */ nop +/* C5964 80130AD4 46220001 */ sub.d $f0, $f0, $f2 +/* C5968 80130AD8 46200220 */ cvt.s.d $f8, $f0 +/* C596C 80130ADC 460040A1 */ cvt.d.s $f2, $f8 +/* C5970 80130AE0 4622603C */ c.lt.d $f12, $f2 +/* C5974 80130AE4 00000000 */ nop +/* C5978 80130AE8 4500006D */ bc1f .LJP_80130CA0 +/* C597C 80130AEC 00111400 */ sll $v0, $s1, 16 +/* C5980 80130AF0 3C014020 */ lui $at, (0x40200000 >> 16) +/* C5984 80130AF4 44812800 */ mtc1 $at, $f5 +/* C5988 80130AF8 44802000 */ mtc1 $zero, $f4 +/* C598C 80130AFC 00000000 */ nop +/* C5990 80130B00 46241102 */ mul.d $f4, $f2, $f4 +/* C5994 80130B04 00000000 */ nop +/* C5998 80130B08 3C038016 */ lui $v1, %hi(msg_drawState) +/* C599C 80130B0C 8C63ACF4 */ lw $v1, %lo(msg_drawState)($v1) +/* C59A0 80130B10 C4600010 */ lwc1 $f0, 0x10($v1) +/* C59A4 80130B14 46080002 */ mul.s $f0, $f0, $f8 +/* C59A8 80130B18 00000000 */ nop +/* C59AC 80130B1C C4660014 */ lwc1 $f6, 0x14($v1) +/* C59B0 80130B20 46083182 */ mul.s $f6, $f6, $f8 +/* C59B4 80130B24 00000000 */ nop +/* C59B8 80130B28 E4600018 */ swc1 $f0, 0x18($v1) +/* C59BC 80130B2C 3C014021 */ lui $at, (0x40210000 >> 16) +/* C59C0 80130B30 44810800 */ mtc1 $at, $f1 +/* C59C4 80130B34 44800000 */ mtc1 $zero, $f0 +/* C59C8 80130B38 00021403 */ sra $v0, $v0, 16 +/* C59CC 80130B3C 46202101 */ sub.d $f4, $f4, $f0 +/* C59D0 80130B40 44821000 */ mtc1 $v0, $f2 +/* C59D4 80130B44 00000000 */ nop +/* C59D8 80130B48 468010A1 */ cvt.d.w $f2, $f2 +/* C59DC 80130B4C 00131400 */ sll $v0, $s3, 16 +/* C59E0 80130B50 46241081 */ sub.d $f2, $f2, $f4 +/* C59E4 80130B54 00021403 */ sra $v0, $v0, 16 +/* C59E8 80130B58 44820000 */ mtc1 $v0, $f0 +/* C59EC 80130B5C 00000000 */ nop +/* C59F0 80130B60 46800021 */ cvt.d.w $f0, $f0 +/* C59F4 80130B64 46240001 */ sub.d $f0, $f0, $f4 +/* C59F8 80130B68 4620130D */ trunc.w.d $f12, $f2 +/* C59FC 80130B6C 44116000 */ mfc1 $s1, $f12 +/* C5A00 80130B70 0804C353 */ j .LJP_80130D4C +/* C5A04 80130B74 E466001C */ swc1 $f6, 0x1C($v1) +.LJP_80130B78: +/* C5A08 80130B78 10400076 */ beqz $v0, .LJP_80130D54 +/* C5A0C 80130B7C 3C0516C1 */ lui $a1, (0x16C16C17 >> 16) +/* C5A10 80130B80 34A56C17 */ ori $a1, $a1, (0x16C16C17 & 0xFFFF) +/* C5A14 80130B84 97C20412 */ lhu $v0, 0x412($fp) +/* C5A18 80130B88 8CC30030 */ lw $v1, 0x30($a2) +/* C5A1C 80130B8C 00022100 */ sll $a0, $v0, 4 +/* C5A20 80130B90 00822023 */ subu $a0, $a0, $v0 +/* C5A24 80130B94 00031100 */ sll $v0, $v1, 4 +/* C5A28 80130B98 00431023 */ subu $v0, $v0, $v1 +/* C5A2C 80130B9C 00822023 */ subu $a0, $a0, $v0 +/* C5A30 80130BA0 000410C2 */ srl $v0, $a0, 3 +/* C5A34 80130BA4 00450019 */ multu $v0, $a1 +/* C5A38 80130BA8 0000C010 */ mfhi $t8 +/* C5A3C 80130BAC 00181082 */ srl $v0, $t8, 2 +/* C5A40 80130BB0 00021840 */ sll $v1, $v0, 1 +/* C5A44 80130BB4 00621821 */ addu $v1, $v1, $v0 +/* C5A48 80130BB8 00031100 */ sll $v0, $v1, 4 +/* C5A4C 80130BBC 00431023 */ subu $v0, $v0, $v1 +/* C5A50 80130BC0 000210C0 */ sll $v0, $v0, 3 +/* C5A54 80130BC4 00821023 */ subu $v0, $a0, $v0 +/* C5A58 80130BC8 00022400 */ sll $a0, $v0, 16 +/* C5A5C 80130BCC 0C00A4E5 */ jal cosine +/* C5A60 80130BD0 00042403 */ sra $a0, $a0, 16 +/* C5A64 80130BD4 3C013FD0 */ lui $at, (0x3FD00000 >> 16) +/* C5A68 80130BD8 44811800 */ mtc1 $at, $f3 +/* C5A6C 80130BDC 44801000 */ mtc1 $zero, $f2 +/* C5A70 80130BE0 46000021 */ cvt.d.s $f0, $f0 +/* C5A74 80130BE4 46220002 */ mul.d $f0, $f0, $f2 +/* C5A78 80130BE8 00000000 */ nop +/* C5A7C 80130BEC 3C013FF0 */ lui $at, (0x3FF00000 >> 16) +/* C5A80 80130BF0 44816800 */ mtc1 $at, $f13 +/* C5A84 80130BF4 44806000 */ mtc1 $zero, $f12 +/* C5A88 80130BF8 00000000 */ nop +/* C5A8C 80130BFC 462C0000 */ add.d $f0, $f0, $f12 +/* C5A90 80130C00 46200220 */ cvt.s.d $f8, $f0 +/* C5A94 80130C04 460040A1 */ cvt.d.s $f2, $f8 +/* C5A98 80130C08 4622603C */ c.lt.d $f12, $f2 +/* C5A9C 80130C0C 00000000 */ nop +/* C5AA0 80130C10 45000023 */ bc1f .LJP_80130CA0 +/* C5AA4 80130C14 00111400 */ sll $v0, $s1, 16 +/* C5AA8 80130C18 3C014020 */ lui $at, (0x40200000 >> 16) +/* C5AAC 80130C1C 44812800 */ mtc1 $at, $f5 +/* C5AB0 80130C20 44802000 */ mtc1 $zero, $f4 +/* C5AB4 80130C24 00000000 */ nop +/* C5AB8 80130C28 46241102 */ mul.d $f4, $f2, $f4 +/* C5ABC 80130C2C 00000000 */ nop +/* C5AC0 80130C30 3C038016 */ lui $v1, %hi(msg_drawState) +/* C5AC4 80130C34 8C63ACF4 */ lw $v1, %lo(msg_drawState)($v1) +/* C5AC8 80130C38 C4600010 */ lwc1 $f0, 0x10($v1) +/* C5ACC 80130C3C 46080002 */ mul.s $f0, $f0, $f8 +/* C5AD0 80130C40 00000000 */ nop +/* C5AD4 80130C44 C4660014 */ lwc1 $f6, 0x14($v1) +/* C5AD8 80130C48 46083182 */ mul.s $f6, $f6, $f8 +/* C5ADC 80130C4C 00000000 */ nop +/* C5AE0 80130C50 E4600018 */ swc1 $f0, 0x18($v1) +/* C5AE4 80130C54 3C014021 */ lui $at, (0x40210000 >> 16) +/* C5AE8 80130C58 44810800 */ mtc1 $at, $f1 +/* C5AEC 80130C5C 44800000 */ mtc1 $zero, $f0 +/* C5AF0 80130C60 00021403 */ sra $v0, $v0, 16 +/* C5AF4 80130C64 46202101 */ sub.d $f4, $f4, $f0 +/* C5AF8 80130C68 44821000 */ mtc1 $v0, $f2 +/* C5AFC 80130C6C 00000000 */ nop +/* C5B00 80130C70 468010A1 */ cvt.d.w $f2, $f2 +/* C5B04 80130C74 00131400 */ sll $v0, $s3, 16 +/* C5B08 80130C78 46241081 */ sub.d $f2, $f2, $f4 +/* C5B0C 80130C7C 00021403 */ sra $v0, $v0, 16 +/* C5B10 80130C80 44820000 */ mtc1 $v0, $f0 +/* C5B14 80130C84 00000000 */ nop +/* C5B18 80130C88 46800021 */ cvt.d.w $f0, $f0 +/* C5B1C 80130C8C 46240001 */ sub.d $f0, $f0, $f4 +/* C5B20 80130C90 4620130D */ trunc.w.d $f12, $f2 +/* C5B24 80130C94 44116000 */ mfc1 $s1, $f12 +/* C5B28 80130C98 0804C353 */ j .LJP_80130D4C +/* C5B2C 80130C9C E466001C */ swc1 $f6, 0x1C($v1) +.LJP_80130CA0: +/* C5B30 80130CA0 462C103C */ c.lt.d $f2, $f12 +/* C5B34 80130CA4 00000000 */ nop +/* C5B38 80130CA8 4500002A */ bc1f .LJP_80130D54 +/* C5B3C 80130CAC 00111400 */ sll $v0, $s1, 16 +/* C5B40 80130CB0 3C014030 */ lui $at, (0x40300000 >> 16) +/* C5B44 80130CB4 44810800 */ mtc1 $at, $f1 +/* C5B48 80130CB8 44800000 */ mtc1 $zero, $f0 +/* C5B4C 80130CBC 00000000 */ nop +/* C5B50 80130CC0 46201002 */ mul.d $f0, $f2, $f0 +/* C5B54 80130CC4 00000000 */ nop +/* C5B58 80130CC8 3C013FE0 */ lui $at, (0x3FE00000 >> 16) +/* C5B5C 80130CCC 44816800 */ mtc1 $at, $f13 +/* C5B60 80130CD0 44806000 */ mtc1 $zero, $f12 +/* C5B64 80130CD4 00000000 */ nop +/* C5B68 80130CD8 462C0002 */ mul.d $f0, $f0, $f12 +/* C5B6C 80130CDC 00000000 */ nop +/* C5B70 80130CE0 3C038016 */ lui $v1, %hi(msg_drawState) +/* C5B74 80130CE4 8C63ACF4 */ lw $v1, %lo(msg_drawState)($v1) +/* C5B78 80130CE8 C4620010 */ lwc1 $f2, 0x10($v1) +/* C5B7C 80130CEC 46081082 */ mul.s $f2, $f2, $f8 +/* C5B80 80130CF0 00000000 */ nop +/* C5B84 80130CF4 C4660014 */ lwc1 $f6, 0x14($v1) +/* C5B88 80130CF8 46083182 */ mul.s $f6, $f6, $f8 +/* C5B8C 80130CFC 00000000 */ nop +/* C5B90 80130D00 E4620018 */ swc1 $f2, 0x18($v1) +/* C5B94 80130D04 3C014020 */ lui $at, (0x40200000 >> 16) +/* C5B98 80130D08 44811800 */ mtc1 $at, $f3 +/* C5B9C 80130D0C 44801000 */ mtc1 $zero, $f2 +/* C5BA0 80130D10 00021403 */ sra $v0, $v0, 16 +/* C5BA4 80130D14 46201081 */ sub.d $f2, $f2, $f0 +/* C5BA8 80130D18 44822000 */ mtc1 $v0, $f4 +/* C5BAC 80130D1C 00000000 */ nop +/* C5BB0 80130D20 46802121 */ cvt.d.w $f4, $f4 +/* C5BB4 80130D24 00131400 */ sll $v0, $s3, 16 +/* C5BB8 80130D28 46222100 */ add.d $f4, $f4, $f2 +/* C5BBC 80130D2C 00021403 */ sra $v0, $v0, 16 +/* C5BC0 80130D30 44820000 */ mtc1 $v0, $f0 +/* C5BC4 80130D34 00000000 */ nop +/* C5BC8 80130D38 46800021 */ cvt.d.w $f0, $f0 +/* C5BCC 80130D3C 46220000 */ add.d $f0, $f0, $f2 +/* C5BD0 80130D40 E466001C */ swc1 $f6, 0x1C($v1) +/* C5BD4 80130D44 4620230D */ trunc.w.d $f12, $f4 +/* C5BD8 80130D48 44116000 */ mfc1 $s1, $f12 +.LJP_80130D4C: +/* C5BDC 80130D4C 4620030D */ trunc.w.d $f12, $f0 +/* C5BE0 80130D50 44136000 */ mfc1 $s3, $f12 +.LJP_80130D54: +/* C5BE4 80130D54 93C204B8 */ lbu $v0, 0x4B8($fp) +/* C5BE8 80130D58 2442FFF5 */ addiu $v0, $v0, -0xB +/* C5BEC 80130D5C 2C420002 */ sltiu $v0, $v0, 0x2 +/* C5BF0 80130D60 10400020 */ beqz $v0, .LJP_80130DE4 +/* C5BF4 80130D64 00000000 */ nop +/* C5BF8 80130D68 93C204C8 */ lbu $v0, 0x4C8($fp) +/* C5BFC 80130D6C 2442FFFF */ addiu $v0, $v0, -0x1 +/* C5C00 80130D70 2C420004 */ sltiu $v0, $v0, 0x4 +/* C5C04 80130D74 1040001B */ beqz $v0, .LJP_80130DE4 +/* C5C08 80130D78 00000000 */ nop +/* C5C0C 80130D7C 97B900A6 */ lhu $t9, 0xA6($sp) +/* C5C10 80130D80 00191400 */ sll $v0, $t9, 16 +/* C5C14 80130D84 00021C03 */ sra $v1, $v0, 16 +/* C5C18 80130D88 2C620026 */ sltiu $v0, $v1, 0x26 +/* C5C1C 80130D8C 10400013 */ beqz $v0, .LJP_80130DDC +/* C5C20 80130D90 00031080 */ sll $v0, $v1, 2 +/* C5C24 80130D94 3C018015 */ lui $at, %hi(jtbl_JP_801559C0) +/* C5C28 80130D98 00220821 */ addu $at, $at, $v0 +/* C5C2C 80130D9C 8C2259C0 */ lw $v0, %lo(jtbl_JP_801559C0)($at) +/* C5C30 80130DA0 00400008 */ jr $v0 +/* C5C34 80130DA4 00000000 */ nop +.LJP_80130DA8: +/* C5C38 80130DA8 24180040 */ addiu $t8, $zero, 0x40 +/* C5C3C 80130DAC 0804C379 */ j .LJP_80130DE4 +/* C5C40 80130DB0 A7B800A6 */ sh $t8, 0xA6($sp) +.LJP_80130DB4: +/* C5C44 80130DB4 0804C378 */ j .LJP_80130DE0 +/* C5C48 80130DB8 24190041 */ addiu $t9, $zero, 0x41 +.LJP_80130DBC: +/* C5C4C 80130DBC 24180042 */ addiu $t8, $zero, 0x42 +/* C5C50 80130DC0 0804C379 */ j .LJP_80130DE4 +/* C5C54 80130DC4 A7B800A6 */ sh $t8, 0xA6($sp) +.LJP_80130DC8: +/* C5C58 80130DC8 0804C378 */ j .LJP_80130DE0 +/* C5C5C 80130DCC 24190043 */ addiu $t9, $zero, 0x43 +.LJP_80130DD0: +/* C5C60 80130DD0 24180044 */ addiu $t8, $zero, 0x44 +/* C5C64 80130DD4 0804C379 */ j .LJP_80130DE4 +/* C5C68 80130DD8 A7B800A6 */ sh $t8, 0xA6($sp) +.LJP_80130DDC: +/* C5C6C 80130DDC 24190040 */ addiu $t9, $zero, 0x40 +.LJP_80130DE0: +/* C5C70 80130DE0 A7B900A6 */ sh $t9, 0xA6($sp) +.LJP_80130DE4: +/* C5C74 80130DE4 97B800A6 */ lhu $t8, 0xA6($sp) +/* C5C78 80130DE8 97B9009E */ lhu $t9, 0x9E($sp) +/* C5C7C 80130DEC 00181C00 */ sll $v1, $t8, 16 +/* C5C80 80130DF0 00191400 */ sll $v0, $t9, 16 +/* C5C84 80130DF4 10620007 */ beq $v1, $v0, .LJP_80130E14 +/* C5C88 80130DF8 00033C03 */ sra $a3, $v1, 16 +/* C5C8C 80130DFC 3C038016 */ lui $v1, %hi(msg_drawState) +/* C5C90 80130E00 8C63ACF4 */ lw $v1, %lo(msg_drawState)($v1) +/* C5C94 80130E04 94620034 */ lhu $v0, 0x34($v1) +/* C5C98 80130E08 A7B8009E */ sh $t8, 0x9E($sp) +/* C5C9C 80130E0C 34420010 */ ori $v0, $v0, 0x10 +/* C5CA0 80130E10 A4620034 */ sh $v0, 0x34($v1) +.LJP_80130E14: +/* C5CA4 80130E14 3C058016 */ lui $a1, %hi(msg_drawState) +/* C5CA8 80130E18 8CA5ACF4 */ lw $a1, %lo(msg_drawState)($a1) +/* C5CAC 80130E1C 8CA20038 */ lw $v0, 0x38($a1) +/* C5CB0 80130E20 30428000 */ andi $v0, $v0, 0x8000 +/* C5CB4 80130E24 10400047 */ beqz $v0, .LJP_80130F44 +/* C5CB8 80130E28 00121400 */ sll $v0, $s2, 16 +/* C5CBC 80130E2C 00021403 */ sra $v0, $v0, 16 +/* C5CC0 80130E30 241900FF */ addiu $t9, $zero, 0xFF +/* C5CC4 80130E34 14590043 */ bne $v0, $t9, .LJP_80130F44 +/* C5CC8 80130E38 3C10E200 */ lui $s0, (0xE200001C >> 16) +/* C5CCC 80130E3C 3610001C */ ori $s0, $s0, (0xE200001C & 0xFFFF) +/* C5CD0 80130E40 3C060050 */ lui $a2, (0x504240 >> 16) +/* C5CD4 80130E44 34C64240 */ ori $a2, $a2, (0x504240 & 0xFFFF) +/* C5CD8 80130E48 3C09FCFF */ lui $t1, (0xFCFF97FF >> 16) +/* C5CDC 80130E4C 352997FF */ ori $t1, $t1, (0xFCFF97FF & 0xFFFF) +/* C5CE0 80130E50 3C08FF2D */ lui $t0, (0xFF2DFEFF >> 16) +/* C5CE4 80130E54 3508FEFF */ ori $t0, $t0, (0xFF2DFEFF & 0xFFFF) +/* C5CE8 80130E58 3C0A2828 */ lui $t2, (0x28282848 >> 16) +/* C5CEC 80130E5C 354A2848 */ ori $t2, $t2, (0x28282848 & 0xFFFF) +/* C5CF0 80130E60 8EE30000 */ lw $v1, 0x0($s7) +/* C5CF4 80130E64 03C0202D */ daddu $a0, $fp, $zero +/* C5CF8 80130E68 0060102D */ daddu $v0, $v1, $zero +/* C5CFC 80130E6C 24630008 */ addiu $v1, $v1, 0x8 +/* C5D00 80130E70 3C18E700 */ lui $t8, (0xE7000000 >> 16) +/* C5D04 80130E74 AEE30000 */ sw $v1, 0x0($s7) +/* C5D08 80130E78 AC580000 */ sw $t8, 0x0($v0) +/* C5D0C 80130E7C AC400004 */ sw $zero, 0x4($v0) +/* C5D10 80130E80 24620008 */ addiu $v0, $v1, 0x8 +/* C5D14 80130E84 AEE20000 */ sw $v0, 0x0($s7) +/* C5D18 80130E88 24620010 */ addiu $v0, $v1, 0x10 +/* C5D1C 80130E8C AC700000 */ sw $s0, 0x0($v1) +/* C5D20 80130E90 AC660004 */ sw $a2, 0x4($v1) +/* C5D24 80130E94 AEE20000 */ sw $v0, 0x0($s7) +/* C5D28 80130E98 3C02FA00 */ lui $v0, (0xFA000000 >> 16) +/* C5D2C 80130E9C AC690008 */ sw $t1, 0x8($v1) +/* C5D30 80130EA0 AC68000C */ sw $t0, 0xC($v1) +/* C5D34 80130EA4 AC620010 */ sw $v0, 0x10($v1) +/* C5D38 80130EA8 AC6A0014 */ sw $t2, 0x14($v1) +/* C5D3C 80130EAC 8CA6004C */ lw $a2, 0x4C($a1) +/* C5D40 80130EB0 8CA20020 */ lw $v0, 0x20($a1) +/* C5D44 80130EB4 24630018 */ addiu $v1, $v1, 0x18 +/* C5D48 80130EB8 AEE30000 */ sw $v1, 0x0($s7) +/* C5D4C 80130EBC 00C23021 */ addu $a2, $a2, $v0 +/* C5D50 80130EC0 00111400 */ sll $v0, $s1, 16 +/* C5D54 80130EC4 00021403 */ sra $v0, $v0, 16 +/* C5D58 80130EC8 90C60000 */ lbu $a2, 0x0($a2) +/* C5D5C 80130ECC 24420002 */ addiu $v0, $v0, 0x2 +/* C5D60 80130ED0 AFA20010 */ sw $v0, 0x10($sp) +/* C5D64 80130ED4 00131400 */ sll $v0, $s3, 16 +/* C5D68 80130ED8 00021403 */ sra $v0, $v0, 16 +/* C5D6C 80130EDC 24420002 */ addiu $v0, $v0, 0x2 +/* C5D70 80130EE0 0C04C527 */ jal msg_draw_char +/* C5D74 80130EE4 AFA20014 */ sw $v0, 0x14($sp) +/* C5D78 80130EE8 3C040F0A */ lui $a0, (0xF0A7008 >> 16) +/* C5D7C 80130EEC 34847008 */ ori $a0, $a0, (0xF0A7008 & 0xFFFF) +/* C5D80 80130EF0 3C06FCFF */ lui $a2, (0xFCFFFFFF >> 16) +/* C5D84 80130EF4 34C6FFFF */ ori $a2, $a2, (0xFCFFFFFF & 0xFFFF) +/* C5D88 80130EF8 3C05FFFC */ lui $a1, (0xFFFCF279 >> 16) +/* C5D8C 80130EFC 8EE30000 */ lw $v1, 0x0($s7) +/* C5D90 80130F00 34A5F279 */ ori $a1, $a1, (0xFFFCF279 & 0xFFFF) +/* C5D94 80130F04 0060102D */ daddu $v0, $v1, $zero +/* C5D98 80130F08 24630008 */ addiu $v1, $v1, 0x8 +/* C5D9C 80130F0C 3C19E700 */ lui $t9, (0xE7000000 >> 16) +/* C5DA0 80130F10 AEE30000 */ sw $v1, 0x0($s7) +/* C5DA4 80130F14 AC590000 */ sw $t9, 0x0($v0) +/* C5DA8 80130F18 AC400004 */ sw $zero, 0x4($v0) +/* C5DAC 80130F1C 24620008 */ addiu $v0, $v1, 0x8 +/* C5DB0 80130F20 AEE20000 */ sw $v0, 0x0($s7) +/* C5DB4 80130F24 24620010 */ addiu $v0, $v1, 0x10 +/* C5DB8 80130F28 AC700000 */ sw $s0, 0x0($v1) +/* C5DBC 80130F2C AC640004 */ sw $a0, 0x4($v1) +/* C5DC0 80130F30 AEE20000 */ sw $v0, 0x0($s7) +/* C5DC4 80130F34 AC660008 */ sw $a2, 0x8($v1) +/* C5DC8 80130F38 AC65000C */ sw $a1, 0xC($v1) +/* C5DCC 80130F3C 3C058016 */ lui $a1, %hi(msg_drawState) +/* C5DD0 80130F40 8CA5ACF4 */ lw $a1, %lo(msg_drawState)($a1) +.LJP_80130F44: +/* C5DD4 80130F44 8CA20038 */ lw $v0, 0x38($a1) +/* C5DD8 80130F48 30420020 */ andi $v0, $v0, 0x20 +/* C5DDC 80130F4C 10400036 */ beqz $v0, .LJP_80131028 +/* C5DE0 80130F50 0000902D */ daddu $s2, $zero, $zero +/* C5DE4 80130F54 0011B400 */ sll $s6, $s1, 16 +/* C5DE8 80130F58 0013AC00 */ sll $s5, $s3, 16 +/* C5DEC 80130F5C 93B400B8 */ lbu $s4, 0xB8($sp) +/* C5DF0 80130F60 3C135555 */ lui $s3, (0x55555556 >> 16) +/* C5DF4 80130F64 36735556 */ ori $s3, $s3, (0x55555556 & 0xFFFF) +/* C5DF8 80130F68 00168403 */ sra $s0, $s6, 16 +.LJP_80130F6C: +/* C5DFC 80130F6C 24180002 */ addiu $t8, $zero, 0x2 +/* C5E00 80130F70 1298000C */ beq $s4, $t8, .LJP_80130FA4 +/* C5E04 80130F74 00158C03 */ sra $s1, $s5, 16 +/* C5E08 80130F78 0C00A66F */ jal rand_int +/* C5E0C 80130F7C 24042710 */ addiu $a0, $zero, 0x2710 +/* C5E10 80130F80 00530018 */ mult $v0, $s3 +/* C5E14 80130F84 2605FFFF */ addiu $a1, $s0, -0x1 +/* C5E18 80130F88 000227C3 */ sra $a0, $v0, 31 +/* C5E1C 80130F8C 0000C010 */ mfhi $t8 +/* C5E20 80130F90 03042023 */ subu $a0, $t8, $a0 +/* C5E24 80130F94 00041840 */ sll $v1, $a0, 1 +/* C5E28 80130F98 00641821 */ addu $v1, $v1, $a0 +/* C5E2C 80130F9C 00431023 */ subu $v0, $v0, $v1 +/* C5E30 80130FA0 00A28021 */ addu $s0, $a1, $v0 +.LJP_80130FA4: +/* C5E34 80130FA4 24190001 */ addiu $t9, $zero, 0x1 +/* C5E38 80130FA8 1299000D */ beq $s4, $t9, .LJP_80130FE0 +/* C5E3C 80130FAC 03C0202D */ daddu $a0, $fp, $zero +/* C5E40 80130FB0 0C00A66F */ jal rand_int +/* C5E44 80130FB4 24042710 */ addiu $a0, $zero, 0x2710 +/* C5E48 80130FB8 00530018 */ mult $v0, $s3 +/* C5E4C 80130FBC 2625FFFF */ addiu $a1, $s1, -0x1 +/* C5E50 80130FC0 000227C3 */ sra $a0, $v0, 31 +/* C5E54 80130FC4 0000C010 */ mfhi $t8 +/* C5E58 80130FC8 03042023 */ subu $a0, $t8, $a0 +/* C5E5C 80130FCC 00041840 */ sll $v1, $a0, 1 +/* C5E60 80130FD0 00641821 */ addu $v1, $v1, $a0 +/* C5E64 80130FD4 00431023 */ subu $v0, $v0, $v1 +/* C5E68 80130FD8 00A28821 */ addu $s1, $a1, $v0 +/* C5E6C 80130FDC 03C0202D */ daddu $a0, $fp, $zero +.LJP_80130FE0: +/* C5E70 80130FE0 26520001 */ addiu $s2, $s2, 0x1 +/* C5E74 80130FE4 3C058016 */ lui $a1, %hi(msg_drawState) +/* C5E78 80130FE8 8CA5ACF4 */ lw $a1, %lo(msg_drawState)($a1) +/* C5E7C 80130FEC 97B900A6 */ lhu $t9, 0xA6($sp) +/* C5E80 80130FF0 8CA2004C */ lw $v0, 0x4C($a1) +/* C5E84 80130FF4 8CA30020 */ lw $v1, 0x20($a1) +/* C5E88 80130FF8 00193C00 */ sll $a3, $t9, 16 +/* C5E8C 80130FFC 00431021 */ addu $v0, $v0, $v1 +/* C5E90 80131000 90460000 */ lbu $a2, 0x0($v0) +/* C5E94 80131004 00073C03 */ sra $a3, $a3, 16 +/* C5E98 80131008 AFB00010 */ sw $s0, 0x10($sp) +/* C5E9C 8013100C 0C04C527 */ jal msg_draw_char +/* C5EA0 80131010 AFB10014 */ sw $s1, 0x14($sp) +/* C5EA4 80131014 2A420005 */ slti $v0, $s2, 0x5 +/* C5EA8 80131018 1440FFD4 */ bnez $v0, .LJP_80130F6C +/* C5EAC 8013101C 00168403 */ sra $s0, $s6, 16 +/* C5EB0 80131020 0804C419 */ j .LJP_80131064 +/* C5EB4 80131024 00000000 */ nop +.LJP_80131028: +/* C5EB8 80131028 03C0202D */ daddu $a0, $fp, $zero +/* C5EBC 8013102C 97B800A6 */ lhu $t8, 0xA6($sp) +/* C5EC0 80131030 8CA3004C */ lw $v1, 0x4C($a1) +/* C5EC4 80131034 8CA20020 */ lw $v0, 0x20($a1) +/* C5EC8 80131038 00183C00 */ sll $a3, $t8, 16 +/* C5ECC 8013103C 00073C03 */ sra $a3, $a3, 16 +/* C5ED0 80131040 00621821 */ addu $v1, $v1, $v0 +/* C5ED4 80131044 00111400 */ sll $v0, $s1, 16 +/* C5ED8 80131048 90660000 */ lbu $a2, 0x0($v1) +/* C5EDC 8013104C 00021403 */ sra $v0, $v0, 16 +/* C5EE0 80131050 AFA20010 */ sw $v0, 0x10($sp) +/* C5EE4 80131054 00131400 */ sll $v0, $s3, 16 +/* C5EE8 80131058 00021403 */ sra $v0, $v0, 16 +/* C5EEC 8013105C 0C04C527 */ jal msg_draw_char +/* C5EF0 80131060 AFA20014 */ sw $v0, 0x14($sp) +.LJP_80131064: +/* C5EF4 80131064 3C048016 */ lui $a0, %hi(msg_drawState) +/* C5EF8 80131068 8C84ACF4 */ lw $a0, %lo(msg_drawState)($a0) +/* C5EFC 8013106C 94830034 */ lhu $v1, 0x34($a0) +/* C5F00 80131070 30620002 */ andi $v0, $v1, 0x2 +/* C5F04 80131074 10400002 */ beqz $v0, .LJP_80131080 +/* C5F08 80131078 3062FFFD */ andi $v0, $v1, 0xFFFD +/* C5F0C 8013107C A4820034 */ sh $v0, 0x34($a0) +.LJP_80131080: +/* C5F10 80131080 3C038016 */ lui $v1, %hi(msg_drawState) +/* C5F14 80131084 8C63ACF4 */ lw $v1, %lo(msg_drawState)($v1) +/* C5F18 80131088 8C620030 */ lw $v0, 0x30($v1) +/* C5F1C 8013108C 8C64004C */ lw $a0, 0x4C($v1) +/* C5F20 80131090 8C650020 */ lw $a1, 0x20($v1) +/* C5F24 80131094 9466003E */ lhu $a2, 0x3E($v1) +/* C5F28 80131098 24420001 */ addiu $v0, $v0, 0x1 +/* C5F2C 8013109C 00852021 */ addu $a0, $a0, $a1 +/* C5F30 801310A0 AC620030 */ sw $v0, 0x30($v1) +/* C5F34 801310A4 90620040 */ lbu $v0, 0x40($v1) +/* C5F38 801310A8 90840000 */ lbu $a0, 0x0($a0) +/* C5F3C 801310AC 9465003C */ lhu $a1, 0x3C($v1) +/* C5F40 801310B0 AFA20010 */ sw $v0, 0x10($sp) +/* C5F44 801310B4 94620034 */ lhu $v0, 0x34($v1) +/* C5F48 801310B8 AFA20014 */ sw $v0, 0x14($sp) +/* C5F4C 801310BC 8C670010 */ lw $a3, 0x10($v1) +.LJP_801310C0: +/* C5F50 801310C0 0C04AC15 */ jal msg_get_draw_char_width +/* C5F54 801310C4 00000000 */ nop +/* C5F58 801310C8 3C058016 */ lui $a1, %hi(msg_drawState) +/* C5F5C 801310CC 8CA5ACF4 */ lw $a1, %lo(msg_drawState)($a1) +/* C5F60 801310D0 94A30042 */ lhu $v1, 0x42($a1) +/* C5F64 801310D4 8CA40020 */ lw $a0, 0x20($a1) +/* C5F68 801310D8 00621821 */ addu $v1, $v1, $v0 +/* C5F6C 801310DC 24840001 */ addiu $a0, $a0, 0x1 +/* C5F70 801310E0 A4A30042 */ sh $v1, 0x42($a1) +.LJP_801310E4: +/* C5F74 801310E4 ACA40020 */ sw $a0, 0x20($a1) +.LJP_801310E8: +/* C5F78 801310E8 97A20080 */ lhu $v0, 0x80($sp) +/* C5F7C 801310EC 1040F028 */ beqz $v0, .LJP_8012D190 +/* C5F80 801310F0 00000000 */ nop +/* C5F84 801310F4 97C204EC */ lhu $v0, 0x4EC($fp) +/* C5F88 801310F8 104000BA */ beqz $v0, .LJP_801313E4 +/* C5F8C 801310FC 0000302D */ daddu $a2, $zero, $zero +/* C5F90 80131100 93C204EB */ lbu $v0, 0x4EB($fp) +/* C5F94 80131104 93D004F1 */ lbu $s0, 0x4F1($fp) +/* C5F98 80131108 93C404F0 */ lbu $a0, 0x4F0($fp) +/* C5F9C 8013110C 00021880 */ sll $v1, $v0, 2 +/* C5FA0 80131110 00621821 */ addu $v1, $v1, $v0 +/* C5FA4 80131114 3C028015 */ lui $v0, %hi(gMsgVarImages) +/* C5FA8 80131118 8C426354 */ lw $v0, %lo(gMsgVarImages)($v0) +/* C5FAC 8013111C 00031880 */ sll $v1, $v1, 2 +/* C5FB0 80131120 04800078 */ bltz $a0, .LJP_80131304 +/* C5FB4 80131124 00438821 */ addu $s1, $v0, $v1 +/* C5FB8 80131128 28820002 */ slti $v0, $a0, 0x2 +/* C5FBC 8013112C 14400005 */ bnez $v0, .LJP_80131144 +/* C5FC0 80131130 24020002 */ addiu $v0, $zero, 0x2 +/* C5FC4 80131134 10820050 */ beq $a0, $v0, .LJP_80131278 +/* C5FC8 80131138 00101400 */ sll $v0, $s0, 16 +/* C5FCC 8013113C 0804C4C2 */ j .LJP_80131308 +/* C5FD0 80131140 00000000 */ nop +.LJP_80131144: +/* C5FD4 80131144 54800001 */ bnel $a0, $zero, .LJP_8013114C +/* C5FD8 80131148 24060001 */ addiu $a2, $zero, 0x1 +.LJP_8013114C: +/* C5FDC 8013114C 93C304F3 */ lbu $v1, 0x4F3($fp) +/* C5FE0 80131150 24050001 */ addiu $a1, $zero, 0x1 +/* C5FE4 80131154 1065001E */ beq $v1, $a1, .LJP_801311D0 +/* C5FE8 80131158 28620002 */ slti $v0, $v1, 0x2 +/* C5FEC 8013115C 10400005 */ beqz $v0, .LJP_80131174 +/* C5FF0 80131160 24020002 */ addiu $v0, $zero, 0x2 +/* C5FF4 80131164 10600007 */ beqz $v1, .LJP_80131184 +/* C5FF8 80131168 00101400 */ sll $v0, $s0, 16 +/* C5FFC 8013116C 0804C4C2 */ j .LJP_80131308 +/* C6000 80131170 00000000 */ nop +.LJP_80131174: +/* C6004 80131174 10620031 */ beq $v1, $v0, .LJP_8013123C +/* C6008 80131178 00101400 */ sll $v0, $s0, 16 +/* C600C 8013117C 0804C4C2 */ j .LJP_80131308 +/* C6010 80131180 00000000 */ nop +.LJP_80131184: +/* C6014 80131184 97C304F4 */ lhu $v1, 0x4F4($fp) +/* C6018 80131188 93C404F2 */ lbu $a0, 0x4F2($fp) +/* C601C 8013118C 24630001 */ addiu $v1, $v1, 0x1 +/* C6020 80131190 00031400 */ sll $v0, $v1, 16 +/* C6024 80131194 00021403 */ sra $v0, $v0, 16 +/* C6028 80131198 00440018 */ mult $v0, $a0 +/* C602C 8013119C A7C304F4 */ sh $v1, 0x4F4($fp) +/* C6030 801311A0 93C304F1 */ lbu $v1, 0x4F1($fp) +/* C6034 801311A4 00001012 */ mflo $v0 +/* C6038 801311A8 0040802D */ daddu $s0, $v0, $zero +/* C603C 801311AC 00021400 */ sll $v0, $v0, 16 +/* C6040 801311B0 00021403 */ sra $v0, $v0, 16 +/* C6044 801311B4 0043102A */ slt $v0, $v0, $v1 +/* C6048 801311B8 14400053 */ bnez $v0, .LJP_80131308 +/* C604C 801311BC 00101400 */ sll $v0, $s0, 16 +/* C6050 801311C0 93D004F1 */ lbu $s0, 0x4F1($fp) +/* C6054 801311C4 A7C004F4 */ sh $zero, 0x4F4($fp) +/* C6058 801311C8 0804C4C1 */ j .LJP_80131304 +/* C605C 801311CC A3C504F3 */ sb $a1, 0x4F3($fp) +.LJP_801311D0: +/* C6060 801311D0 97B800AE */ lhu $t8, 0xAE($sp) +/* C6064 801311D4 3C018015 */ lui $at, %hi(D_JP_80155A58) +/* C6068 801311D8 D4205A58 */ ldc1 $f0, %lo(D_JP_80155A58)($at) +/* C606C 801311DC 00181400 */ sll $v0, $t8, 16 +/* C6070 801311E0 00021403 */ sra $v0, $v0, 16 +/* C6074 801311E4 44821000 */ mtc1 $v0, $f2 +/* C6078 801311E8 00000000 */ nop +/* C607C 801311EC 468010A0 */ cvt.s.w $f2, $f2 +/* C6080 801311F0 460010A1 */ cvt.d.s $f2, $f2 +/* C6084 801311F4 93C204F1 */ lbu $v0, 0x4F1($fp) +/* C6088 801311F8 46201083 */ div.d $f2, $f2, $f0 +/* C608C 801311FC 44820000 */ mtc1 $v0, $f0 +/* C6090 80131200 00000000 */ nop +/* C6094 80131204 46800020 */ cvt.s.w $f0, $f0 +/* C6098 80131208 46000021 */ cvt.d.s $f0, $f0 +/* C609C 8013120C 46201002 */ mul.d $f0, $f2, $f0 +/* C60A0 80131210 00000000 */ nop +/* C60A4 80131214 3C0141E0 */ lui $at, (0x41E00000 >> 16) +/* C60A8 80131218 44811800 */ mtc1 $at, $f3 +/* C60AC 8013121C 44801000 */ mtc1 $zero, $f2 +/* C60B0 80131220 00000000 */ nop +/* C60B4 80131224 4620103E */ c.le.d $f2, $f0 +/* C60B8 80131228 00000000 */ nop +/* C60BC 8013122C 4500002B */ bc1f .LJP_801312DC +/* C60C0 80131230 00000000 */ nop +/* C60C4 80131234 0804C4BB */ j .LJP_801312EC +/* C60C8 80131238 46220001 */ sub.d $f0, $f0, $f2 +.LJP_8013123C: +/* C60CC 8013123C 97C304F4 */ lhu $v1, 0x4F4($fp) +/* C60D0 80131240 93C404F2 */ lbu $a0, 0x4F2($fp) +/* C60D4 80131244 24630001 */ addiu $v1, $v1, 0x1 +/* C60D8 80131248 00031400 */ sll $v0, $v1, 16 +/* C60DC 8013124C 00021403 */ sra $v0, $v0, 16 +/* C60E0 80131250 00820018 */ mult $a0, $v0 +/* C60E4 80131254 93C204F1 */ lbu $v0, 0x4F1($fp) +/* C60E8 80131258 0000C012 */ mflo $t8 +/* C60EC 8013125C 00581023 */ subu $v0, $v0, $t8 +/* C60F0 80131260 0040802D */ daddu $s0, $v0, $zero +/* C60F4 80131264 00021400 */ sll $v0, $v0, 16 +/* C60F8 80131268 1C400029 */ bgtz $v0, .LJP_80131310 +/* C60FC 8013126C A7C304F4 */ sh $v1, 0x4F4($fp) +/* C6100 80131270 0804C4C1 */ j .LJP_80131304 +/* C6104 80131274 A7C004EC */ sh $zero, 0x4EC($fp) +.LJP_80131278: +/* C6108 80131278 97B900AE */ lhu $t9, 0xAE($sp) +/* C610C 8013127C 3C018015 */ lui $at, %hi(D_JP_80155A60) +/* C6110 80131280 D4205A60 */ ldc1 $f0, %lo(D_JP_80155A60)($at) +/* C6114 80131284 00191400 */ sll $v0, $t9, 16 +/* C6118 80131288 00021403 */ sra $v0, $v0, 16 +/* C611C 8013128C 44821000 */ mtc1 $v0, $f2 +/* C6120 80131290 00000000 */ nop +/* C6124 80131294 468010A0 */ cvt.s.w $f2, $f2 +/* C6128 80131298 460010A1 */ cvt.d.s $f2, $f2 +/* C612C 8013129C 93C204F1 */ lbu $v0, 0x4F1($fp) +/* C6130 801312A0 46201083 */ div.d $f2, $f2, $f0 +/* C6134 801312A4 44820000 */ mtc1 $v0, $f0 +/* C6138 801312A8 00000000 */ nop +/* C613C 801312AC 46800020 */ cvt.s.w $f0, $f0 +/* C6140 801312B0 46000021 */ cvt.d.s $f0, $f0 +/* C6144 801312B4 46201002 */ mul.d $f0, $f2, $f0 +/* C6148 801312B8 00000000 */ nop +/* C614C 801312BC 3C0141E0 */ lui $at, (0x41E00000 >> 16) +/* C6150 801312C0 44811800 */ mtc1 $at, $f3 +/* C6154 801312C4 44801000 */ mtc1 $zero, $f2 +/* C6158 801312C8 00000000 */ nop +/* C615C 801312CC 4620103E */ c.le.d $f2, $f0 +/* C6160 801312D0 00000000 */ nop +/* C6164 801312D4 45030005 */ bc1tl .LJP_801312EC +/* C6168 801312D8 46220001 */ sub.d $f0, $f0, $f2 +.LJP_801312DC: +/* C616C 801312DC 4620030D */ trunc.w.d $f12, $f0 +/* C6170 801312E0 44036000 */ mfc1 $v1, $f12 +/* C6174 801312E4 0804C4C1 */ j .LJP_80131304 +/* C6178 801312E8 307000FF */ andi $s0, $v1, 0xFF +.LJP_801312EC: +/* C617C 801312EC 3C028000 */ lui $v0, (0x80000000 >> 16) +/* C6180 801312F0 4620030D */ trunc.w.d $f12, $f0 +/* C6184 801312F4 44036000 */ mfc1 $v1, $f12 +/* C6188 801312F8 00000000 */ nop +/* C618C 801312FC 00621825 */ or $v1, $v1, $v0 +/* C6190 80131300 307000FF */ andi $s0, $v1, 0xFF +.LJP_80131304: +/* C6194 80131304 00101400 */ sll $v0, $s0, 16 +.LJP_80131308: +/* C6198 80131308 18400036 */ blez $v0, .LJP_801313E4 +/* C619C 8013130C 00000000 */ nop +.LJP_80131310: +/* C61A0 80131310 00C0102D */ daddu $v0, $a2, $zero +/* C61A4 80131314 1040001E */ beqz $v0, .LJP_80131390 +/* C61A8 80131318 0000202D */ daddu $a0, $zero, $zero +/* C61AC 8013131C 97C604EC */ lhu $a2, 0x4EC($fp) +/* C61B0 80131320 97C704EE */ lhu $a3, 0x4EE($fp) +/* C61B4 80131324 2405000F */ addiu $a1, $zero, 0xF +/* C61B8 80131328 AFA00010 */ sw $zero, 0x10($sp) +/* C61BC 8013132C 96220008 */ lhu $v0, 0x8($s1) +/* C61C0 80131330 24C6FFF9 */ addiu $a2, $a2, -0x7 +/* C61C4 80131334 24E7FFF9 */ addiu $a3, $a3, -0x7 +/* C61C8 80131338 00451021 */ addu $v0, $v0, $a1 +/* C61CC 8013133C AFA20014 */ sw $v0, 0x14($sp) +/* C61D0 80131340 9623000A */ lhu $v1, 0xA($s1) +/* C61D4 80131344 320200FF */ andi $v0, $s0, 0xFF +/* C61D8 80131348 AFA2001C */ sw $v0, 0x1C($sp) +/* C61DC 8013134C 24020140 */ addiu $v0, $zero, 0x140 +/* C61E0 80131350 AFA20044 */ sw $v0, 0x44($sp) +/* C61E4 80131354 240200F0 */ addiu $v0, $zero, 0xF0 +/* C61E8 80131358 AFA00020 */ sw $zero, 0x20($sp) +/* C61EC 8013135C AFA00024 */ sw $zero, 0x24($sp) +/* C61F0 80131360 AFA00028 */ sw $zero, 0x28($sp) +/* C61F4 80131364 AFA0002C */ sw $zero, 0x2C($sp) +/* C61F8 80131368 AFA00030 */ sw $zero, 0x30($sp) +/* C61FC 8013136C AFA00034 */ sw $zero, 0x34($sp) +/* C6200 80131370 AFA00038 */ sw $zero, 0x38($sp) +/* C6204 80131374 AFA0003C */ sw $zero, 0x3C($sp) +/* C6208 80131378 AFA00040 */ sw $zero, 0x40($sp) +/* C620C 8013137C AFA20048 */ sw $v0, 0x48($sp) +/* C6210 80131380 AFA0004C */ sw $zero, 0x4C($sp) +/* C6214 80131384 2463000E */ addiu $v1, $v1, 0xE +/* C6218 80131388 0C03D51C */ jal draw_box +/* C621C 8013138C AFA30018 */ sw $v1, 0x18($sp) +.LJP_80131390: +/* C6220 80131390 8E220010 */ lw $v0, 0x10($s1) +/* C6224 80131394 96250008 */ lhu $a1, 0x8($s1) +/* C6228 80131398 9626000A */ lhu $a2, 0xA($s1) +/* C622C 8013139C AFA20010 */ sw $v0, 0x10($sp) +/* C6230 801313A0 8E220004 */ lw $v0, 0x4($s1) +/* C6234 801313A4 AFA20014 */ sw $v0, 0x14($sp) +/* C6238 801313A8 87C204EC */ lh $v0, 0x4EC($fp) +/* C623C 801313AC AFA20018 */ sw $v0, 0x18($sp) +/* C6240 801313B0 87C304EE */ lh $v1, 0x4EE($fp) +/* C6244 801313B4 2402013F */ addiu $v0, $zero, 0x13F +/* C6248 801313B8 AFA20028 */ sw $v0, 0x28($sp) +/* C624C 801313BC 240200EF */ addiu $v0, $zero, 0xEF +/* C6250 801313C0 AFA2002C */ sw $v0, 0x2C($sp) +/* C6254 801313C4 320200FF */ andi $v0, $s0, 0xFF +/* C6258 801313C8 AFA00020 */ sw $zero, 0x20($sp) +/* C625C 801313CC AFA00024 */ sw $zero, 0x24($sp) +/* C6260 801313D0 AFA20030 */ sw $v0, 0x30($sp) +/* C6264 801313D4 AFA3001C */ sw $v1, 0x1C($sp) +/* C6268 801313D8 8E240000 */ lw $a0, 0x0($s1) +/* C626C 801313DC 0C04CEC8 */ jal draw_ci_image_with_clipping +/* C6270 801313E0 8E27000C */ lw $a3, 0xC($s1) +.LJP_801313E4: +/* C6274 801313E4 3C02800A */ lui $v0, %hi(gMainGfxPos) +/* C6278 801313E8 2442A64C */ addiu $v0, $v0, %lo(gMainGfxPos) +/* C627C 801313EC 8C430000 */ lw $v1, 0x0($v0) +/* C6280 801313F0 0060202D */ daddu $a0, $v1, $zero +/* C6284 801313F4 24630008 */ addiu $v1, $v1, 0x8 +/* C6288 801313F8 AC430000 */ sw $v1, 0x0($v0) +/* C628C 801313FC 3C02E700 */ lui $v0, (0xE7000000 >> 16) +/* C6290 80131400 AC820000 */ sw $v0, 0x0($a0) +/* C6294 80131404 AC800004 */ sw $zero, 0x4($a0) +/* C6298 80131408 8FBF010C */ lw $ra, 0x10C($sp) +/* C629C 8013140C 8FBE0108 */ lw $fp, 0x108($sp) +/* C62A0 80131410 8FB70104 */ lw $s7, 0x104($sp) +/* C62A4 80131414 8FB60100 */ lw $s6, 0x100($sp) +/* C62A8 80131418 8FB500FC */ lw $s5, 0xFC($sp) +/* C62AC 8013141C 8FB400F8 */ lw $s4, 0xF8($sp) +/* C62B0 80131420 8FB300F4 */ lw $s3, 0xF4($sp) +/* C62B4 80131424 8FB200F0 */ lw $s2, 0xF0($sp) +/* C62B8 80131428 8FB100EC */ lw $s1, 0xEC($sp) +/* C62BC 8013142C 8FB000E8 */ lw $s0, 0xE8($sp) +/* C62C0 80131430 D7BE0138 */ ldc1 $f30, 0x138($sp) +/* C62C4 80131434 D7BC0130 */ ldc1 $f28, 0x130($sp) +/* C62C8 80131438 D7BA0128 */ ldc1 $f26, 0x128($sp) +/* C62CC 8013143C D7B80120 */ ldc1 $f24, 0x120($sp) +/* C62D0 80131440 D7B60118 */ ldc1 $f22, 0x118($sp) +/* C62D4 80131444 D7B40110 */ ldc1 $f20, 0x110($sp) +/* C62D8 80131448 3C018015 */ lui $at, %hi(D_80151338) +/* C62DC 8013144C AC236398 */ sw $v1, %lo(D_80151338)($at) +/* C62E0 80131450 03E00008 */ jr $ra +/* C62E4 80131454 27BD0140 */ addiu $sp, $sp, 0x140 +.size appendGfx_message, . - appendGfx_message diff --git a/ver/jp/splat.yaml b/ver/jp/splat.yaml index 7b7778150f1..97814a331a1 100644 --- a/ver/jp/splat.yaml +++ b/ver/jp/splat.yaml @@ -842,13 +842,61 @@ segments: - [auto, c, 101b90_len_8f0] - name: engine2 - dir: engine2 type: code start: 0xa9770 vram: 0x801148e0 subsegments: - - [0xa9770, bin] - - [0xeb1a0] + - [auto, hasm, bss3] + - [auto, c, entity] + - [auto, c, game_states] + - [auto, c, model] + - [auto, c, animator] + - [auto, c, entity_model] + - [auto, c, worker] + - [auto, c, msg] + - [auto, c, msg_draw] + - [auto, c, draw_img_util] + - [auto, c, item_entity] + - [auto, c, screen_overlays] + - [auto, c, screen_render_util] + - [auto, c, imgfx] + - [auto, c, hud_element] + - [auto, c, vars_access] + - [auto, c, trigger] + - [auto, c, background] + - [auto, c, audio/ambience] + - [auto, c, windows] + - [auto, c, sprite_shading] + - [auto, c, audio/sfx] + - [auto, c, audio/e0b30_len_b80] + - [auto, .data, entity] + - [auto, .data, model] + - [auto, .data, animator] + - [auto, .data, entity_model] + - [auto, .data, msg] + - [auto, .data, msg_draw] + - [auto, .data, item_entity] + - start: 0xE6620 + type: .data + name: screen_overlays + subsegments: + - [0xE6620] + - [0xE6630, i4, ui/stencil/star, 32, 64] + - [0xE6A30, i4, ui/stencil/mario, 64, 64] + - [0xE7230, i4, ui/stencil/sharp_circle, 32, 32] + - [0xE7430, i8, ui/stencil/blurry_circle, 64, 64] + - [0xE8430, vtx, vtx/stencil1] + - [0xE84D0] + - [0xE86A0, vtx, vtx/stencil2] + - [0xE8820] + - [auto, .data, screen_render_util] + - [auto, .data, imgfx] + - [auto, .data, hud_element] + - [auto, .data, background] + - [auto, .data, audio/ambience] + - [auto, .data, windows] + - [auto, .data, audio/sfx] + - [auto, .data, audio/e0b30_len_b80] - name: evt dir: evt diff --git a/ver/jp/symbol_addrs.txt b/ver/jp/symbol_addrs.txt index 16612f02e73..5eb99eb5314 100644 --- a/ver/jp/symbol_addrs.txt +++ b/ver/jp/symbol_addrs.txt @@ -1701,7 +1701,6 @@ Entity_RenderSquareShadow = 0x802E4788; // rom:0x10B068 Entity_RenderCircularShadow = 0x802E47B0; // rom:0x10B090 Entity_RenderNone = 0x802E47D8; // rom:0x10B0B8 Entity_RenderNone_Script = 0x802E47E0; // rom:0x10B0C0 -D_802E9844_padding = 0x802E47F4; // rom:0x10B0D4 Entity_CircularShadowA_Render = 0x802E4800; // rom:0x10B0E0 Entity_CircularShadowB_Render = 0x802E4824; // rom:0x10B104 Entity_SquareShadow_Render = 0x802E4848; // rom:0x10B128 @@ -1998,3 +1997,931 @@ entity_Signpost_idle = 0x802E4000; // type:func rom:0x10A8E0 Entity_Signpost_Script = 0x802E5F60; // rom:0x10C840 Entity_Signpost_RenderScript = 0x802E5F70; // rom:0x10C850 Entity_Signpost = 0x802E5F8C; // rom:0x10C86C +au_song_stop = 0x80055674; // type:func rom:0x30A74 +au_song_load = 0x80055584; // type:func rom:0x30984 +snd_set_song_variation_fade_time = 0x8005576C; // type:func rom:0x30B6C +func_80055B80 = 0x80055830; // type:func rom:0x30C30 +snd_ambient_stop_slow = 0x80055198; // type:func rom:0x30598 +world_action_sneaky_parasol_ROM_END = 0x00E343B0; +bgm_set_proximity_mix_full = 0x80055D18; // type:func rom:0x31118 +load_asset_by_name = 0x8005A9A0; // type:func rom:0x35DA0 +guRotateRPYF = 0x800642A0; // type:func rom:0x3F6A0 +gCurrentDisplayContextIndex = 0x800741D4; // rom:0x4F5D4 +func_800E06C0 = 0x800E06A0; // type:func rom:0x79B50 +snd_set_song_variation_fade = 0x800556C8; // type:func rom:0x30AC8 +gItemIconPaletteOffsets = 0x8008E91C; // rom:0x69D1C +bgm_set_proximity_mix_near = 0x80055CF4; // type:func rom:0x310F4 +gItemEntityScripts = 0x8008DDA4; // rom:0x691A4 +npc_raycast_down_sides = 0x800DCB5C; // type:func rom:0x7600C +test_ray_entities = 0x8005D0F8; // type:func rom:0x384F8 +snd_set_song_variation = 0x80055974; // type:func rom:0x30D74 +mem_clear = 0x800295C0; // type:func rom:0x49C0 +nuGfxCfbNum = 0x800773D0; // rom:0x527D0 +int_to_string = 0x80029484; // type:func rom:0x4884 +au_song_is_playing = 0x800556AC; // type:func rom:0x30AAC +SparkleScript_Coin = 0x80104C50; // rom:0x9E100 +gAreas = 0x800934C0; // rom:0x6E8C0 +npc_test_move_complex_with_slipping = 0x800DDD74; // type:func rom:0x77224 +snd_ambient_resume = 0x80055240; // type:func rom:0x30640 +phys_can_player_interact = 0x800E52CC; // type:func rom:0x7E77C +npc_raycast_up = 0x800DCE50; // type:func rom:0x76300 +get_time_freeze_mode = 0x8002715C; // type:func rom:0x255C +snd_ambient_play = 0x80055114; // type:func rom:0x30514 +func_800561A4 = 0x80055E54; // type:func rom:0x31254 +snd_load_ambient = 0x800550F8; // type:func rom:0x304F8 +func_JP_80067800 = 0x80067800; // type:func rom:0x42C00 +gEncounterState = 0x8009A5E0; +test_ray_colliders = 0x8005C980; // type:func rom:0x37D80 +gCurrentDoorSounds = 0x801563A0; +gCurrentRoomDoorSounds = 0x80156368; +snd_ambient_stop_quick = 0x80055154; // type:func rom:0x30554 +snd_ambient_pause = 0x800551EC; // type:func rom:0x305EC +general_heap_free = 0x8002AC38; // type:func rom:0x6038 +CreateEntityVarArgBuffer = 0x80161750; +gCurrentModels = 0x8015632C; +au_song_start_variation = 0x80055620; // type:func rom:0x30A20 +snd_song_set_track_volumes = 0x80055A8C; // type:func rom:0x30E8C +gWindows = 0x8015ECD0; +gPlayerStatusPtr = 0x800F7CC0; // rom:0x91170 +guOrtho = 0x80063A10; // type:func rom:0x3EE10 +func_JP_800676E0 = 0x800676E0; // type:func rom:0x42AE0 +bgm_set_proximity_mix_far = 0x80055CD8; // type:func rom:0x310D8 +func_80055BB8 = 0x80055868; // type:func rom:0x30C68 +_heap_malloc = 0x8002902C; // type:func rom:0x442C +gItemIconRasterOffsets = 0x8008E3A8; // rom:0x697A8 +func_80055B28 = 0x800557D8; // type:func rom:0x30BD8 +snd_song_clear_track_volumes = 0x80055AF8; // type:func rom:0x30EF8 +npc_raycast_down_around = 0x800DC758; // type:func rom:0x75C08 +npc_test_move_simple_with_slipping = 0x800DDC24; // type:func rom:0x770D4 +is_player_dismounted = 0x800DFCD4; // type:func rom:0x79184 +heap_spriteHead = 0x8034F800; +general_heap_malloc = 0x8002ABE8; // type:func rom:0x5FE8 +gMusicSettings = 0x8015EA70; +transform_point = 0x800295E0; // type:func rom:0x49E0 +gCurrentModelTreeNodeInfo = 0x8009A5D4; +cosine = 0x80029394; // type:func rom:0x4794 +snd_stop_sound = 0x80055070; // type:func rom:0x30470 +snd_ambient_is_stopped = 0x80055294; // type:func rom:0x30694 +gMessageBoxFrameParts = 0x8008FEB0; // rom:0x6B2B0 +copy_matrix = 0x800296E0; // type:func rom:0x4AE0 +snd_start_sound_with_shift = 0x80054EF0; // type:func rom:0x302F0 +suggest_player_anim_always_forward = 0x800DFF58; // type:func rom:0x79408 +func_80055AF0 = 0x800557A0; // type:func rom:0x30BA0 +get_current_partner_id = 0x800E505C; // type:func rom:0x7E50C +func_800561E4 = 0x80055E94; // type:func rom:0x31294 +dist3D = 0x80029EEC; // type:func rom:0x52EC +gCurrentHiddenPanels = 0x8015F4F8; +entity_model_Hammer1Block_ROM_START = 0x00E3A3B0; +gBackgroundTintModePtr = 0x80156350; +snd_adjust_sound_with_shift = 0x80054FE0; // type:func rom:0x303E0 +draw_box = 0x800F5470; // type:func rom:0x8E920 +is_starting_conversation = 0x80043E08; // type:func rom:0x1F208 +Gfx_RM1_ALPHATEST = 0x80150920; // rom:0xE57B0 +get_shadow_by_index = 0x80115814; // type:func rom:0xAA6A4 +func_801491E4 = 0x8014E294; // type:func rom:0xE3124 +queue_render_task = 0x80122B20; // type:func rom:0xB79B0 +delete_shadow = 0x80117538; // type:func rom:0xAC3C8 +Gfx_RM2_ALPHATEST = 0x80150C88; // rom:0xE5B18 +mdl_get_shroud_tint_params = 0x80121090; // type:func rom:0xB5F20 +set_standard_shadow_scale = 0x80117A6C; // type:func rom:0xAC8FC +create_shadow_type = 0x80117470; // type:func rom:0xAC300 +sfx_play_sound_with_params = 0x8014EB68; // type:func rom:0xE39F8 +create_shading_palette = 0x8014D274; // type:func rom:0xE2104 +D_8014AFB0 = 0x80150060; // rom:0xE4EF0 +get_entity_by_index = 0x801157F8; // type:func rom:0xAA688 +update_entity_transform_matrix = 0x8011543C; // type:func rom:0xAA2CC +entity_get_collision_flags = 0x80115AC8; // type:func rom:0xAA958 +step_entity_commandlist = 0x80114DE8; // type:func rom:0xA9C78 +update_entity_inverse_rotation_matrix = 0x801156B4; // type:func rom:0xAA544 +update_entity_shadow_position = 0x80117554; // type:func rom:0xAC3E4 +delete_entity = 0x801158E0; // type:func rom:0xAA770 +delete_entity_and_unload_data = 0x801159A0; // type:func rom:0xAA830 +update_shadows = 0x80114CA8; // type:func rom:0xA9B38 +update_shadow_transform_matrix = 0x80115584; // type:func rom:0xAA414 +_delete_shadow = 0x80115A6C; // type:func rom:0xAA8FC +set_entity_commandlist = 0x80114DD0; // type:func rom:0xA9C60 +exec_entity_commandlist = 0x80114F78; // type:func rom:0xA9E08 +func_8010FD98 = 0x80114FA8; // type:func rom:0xA9E38 +func_8010FE44 = 0x80115054; // type:func rom:0xA9EE4 +entity_model_set_shadow_color = 0x80115078; // type:func rom:0xA9F08 +render_shadows = 0x801152DC; // type:func rom:0xAA16C +get_entity_list = 0x80115830; // type:func rom:0xAA6C0 +get_shadow_list = 0x8011585C; // type:func rom:0xAA6EC +entity_start_script = 0x80115888; // type:func rom:0xAA718 +get_entity_type = 0x801158B4; // type:func rom:0xAA744 +entity_free_static_data = 0x801169EC; // type:func rom:0xAB87C +entity_try_partner_interaction_trigger = 0x80115BEC; // type:func rom:0xAAA7C +test_player_entity_aabb = 0x80115CBC; // type:func rom:0xAAB4C +is_player_action_state = 0x80115DC0; // type:func rom:0xAAC50 +entity_set_render_script = 0x80115DDC; // type:func rom:0xAAC6C +entity_reset_collision = 0x80115E08; // type:func rom:0xAAC98 +load_area_specific_entity_data = 0x80115E24; // type:func rom:0xAACB4 +init_entity_data = 0x80116068; // type:func rom:0xAAEF8 +reload_world_entity_data = 0x80116120; // type:func rom:0xAAFB0 +entity_swizzle_anim_pointers = 0x801162C4; // type:func rom:0xAB154 +is_entity_data_loaded = 0x8011636C; // type:func rom:0xAB1FC +load_simple_entity_data = 0x801164B4; // type:func rom:0xAB344 +load_split_entity_data = 0x80116618; // type:func rom:0xAB4A8 +func_80111790 = 0x801169A0; // type:func rom:0xAB830 +create_entity = 0x80116AD4; // type:func rom:0xAB964 +create_entity_shadow = 0x801173DC; // type:func rom:0xAC26C +create_shadow_from_data = 0x80116DE8; // type:func rom:0xABC78 +MakeEntity = 0x80116F48; // type:func rom:0xABDD8 +SetEntityCullMode = 0x801170AC; // type:func rom:0xABF3C +UseDynamicShadow = 0x8011713C; // type:func rom:0xABFCC +AssignScript = 0x801171C0; // type:func rom:0xAC050 +AssignSwitchFlag = 0x80117208; // type:func rom:0xAC098 +AssignBlockFlag = 0x8011727C; // type:func rom:0xAC10C +AssignChestFlag = 0x801172C8; // type:func rom:0xAC158 +AssignPanelFlag = 0x80117324; // type:func rom:0xAC1B4 +AssignCrateFlag = 0x80117380; // type:func rom:0xAC210 +entity_raycast_down = 0x801177F8; // type:func rom:0xAC688 +set_npc_shadow_scale = 0x80117B10; // type:func rom:0xAC9A0 +set_peach_shadow_scale = 0x80117BE4; // type:func rom:0xACA74 +is_block_on_ground = 0x80117D30; // type:func rom:0xACBC0 +mode_default_nop = 0x80117DA0; // type:func rom:0xACC30 +set_next_game_mode = 0x80117DCC; // type:func rom:0xACC5C +set_game_mode_slot = 0x80117EB8; // type:func rom:0xACD48 +game_mode_set_fpDrawAuxUI = 0x80117F94; // type:func rom:0xACE24 +set_game_mode_flag_4 = 0x80117FE4; // type:func rom:0xACE74 +set_game_mode_flag_8 = 0x8011800C; // type:func rom:0xACE9C +clear_game_mode_unk_flags = 0x80118034; // type:func rom:0xACEC4 +set_game_mode_flag_10 = 0x8011805C; // type:func rom:0xACEEC +state_do_unk = 0x801180FC; // type:func rom:0xACF8C +ModelRenderModes = 0x80150070; // rom:0xE4F00 +Gfx_RM1_SURFACE_OPA = 0x801508A8; // rom:0xE5738 +Gfx_RM1_SURFACE_OPA_NO_AA = 0x801509C0; // rom:0xE5850 +Gfx_RM1_DECAL_OPA = 0x801508D0; // rom:0xE5760 +Gfx_RM1_DECAL_OPA_NO_AA = 0x801509E8; // rom:0xE5878 +Gfx_RM1_INTERSECTING_OPA = 0x801508F8; // rom:0xE5788 +Gfx_RM1_INTERSECTING_OPA_NO_AA = 0x80150A10; // rom:0xE58A0 +Gfx_RM1_ALPHATEST_ONESIDED = 0x80150A38; // rom:0xE58C8 +Gfx_RM1_SURFACE_XLU = 0x80150948; // rom:0xE57D8 +Gfx_RM1_SURFACE_XLU_AA_ZB_ZUPD = 0x80150AD0; // rom:0xE5960 +Gfx_RM1_SURFACE_XLU_NO_AA = 0x80150A60; // rom:0xE58F0 +Gfx_RM1_SURFACE_XLU_ZB_ZUPD = 0x80150B70; // rom:0xE5A00 +Gfx_RM1_DECAL_XLU = 0x80150970; // rom:0xE5800 +Gfx_RM1_DECAL_XLU_NO_AA = 0x80150A88; // rom:0xE5918 +Gfx_RM1_INTERSECTING_XLU = 0x80150998; // rom:0xE5828 +Gfx_RM1_PASS_THROUGH = 0x80150AB0; // rom:0xE5940 +Gfx_RM2_SURFACE_OPA = 0x80150C10; // rom:0xE5AA0 +Gfx_RM2_SURFACE_OPA_NO_AA = 0x80150D28; // rom:0xE5BB8 +Gfx_RM2_DECAL_OPA = 0x80150C38; // rom:0xE5AC8 +Gfx_RM2_DECAL_OPA_NO_AA = 0x80150D50; // rom:0xE5BE0 +Gfx_RM2_INTERSECTING_OPA = 0x80150C60; // rom:0xE5AF0 +Gfx_RM2_INTERSECTING_OPA_NO_AA = 0x80150D78; // rom:0xE5C08 +Gfx_RM2_ALPHATEST_ONESIDED = 0x80150DA8; // rom:0xE5C38 +Gfx_RM2_SURFACE_XLU = 0x80150CB0; // rom:0xE5B40 +Gfx_RM2_SURFACE_XLU_AA_ZB_ZUPD = 0x80150E38; // rom:0xE5CC8 +Gfx_RM2_SURFACE_XLU_NO_AA = 0x80150DC8; // rom:0xE5C58 +Gfx_RM2_DECAL_XLU = 0x80150CD8; // rom:0xE5B68 +Gfx_RM2_DECAL_XLU_NO_AA = 0x80150DF0; // rom:0xE5C80 +Gfx_RM2_INTERSECTING_XLU = 0x80150D00; // rom:0xE5B90 +Gfx_RM2_PASS_THROUGH = 0x80150E18; // rom:0xE5CA8 +Gfx_RM3_SURFACE_OPA = 0x80150F28; // rom:0xE5DB8 +Gfx_RM3_SURFACE_OPA_NO_AA = 0x80151040; // rom:0xE5ED0 +Gfx_RM3_DECAL_OPA = 0x80150F50; // rom:0xE5DE0 +Gfx_RM3_DECAL_OPA_NO_AA = 0x80151068; // rom:0xE5EF8 +Gfx_RM3_INTERSECTING_OPA = 0x80150F78; // rom:0xE5E08 +Gfx_RM3_INTERSECTING_OPA_NO_AA = 0x80151090; // rom:0xE5F20 +Gfx_RM3_ALPHATEST = 0x80150FA0; // rom:0xE5E30 +Gfx_RM3_ALPHATEST_ONESIDED = 0x801510B8; // rom:0xE5F48 +Gfx_RM3_SURFACE_XLU = 0x80150FC8; // rom:0xE5E58 +Gfx_RM3_SURFACE_XLU_AA_ZB_ZUPD = 0x80151148; // rom:0xE5FD8 +Gfx_RM3_SURFACE_XLU_NO_AA = 0x801510D8; // rom:0xE5F68 +Gfx_RM3_DECAL_XLU = 0x80150FF0; // rom:0xE5E80 +Gfx_RM3_DECAL_XLU_NO_AA = 0x80151100; // rom:0xE5F90 +Gfx_RM3_INTERSECTING_XLU = 0x80151018; // rom:0xE5EA8 +Gfx_RM3_PASS_THROUGH = 0x80151128; // rom:0xE5FB8 +Gfx_RM1_SURFACE_OPA_NO_ZB = 0x80150AF8; // rom:0xE5988 +Gfx_RM1_ALPHATEST_NO_ZB = 0x80150B20; // rom:0xE59B0 +Gfx_RM1_SURFACE_XLU_NO_ZB = 0x80150B48; // rom:0xE59D8 +Gfx_RM2_SURFACE_OPA_NO_ZB = 0x80150E60; // rom:0xE5CF0 +Gfx_RM2_ALPHATEST_NO_ZB = 0x80150E88; // rom:0xE5D18 +Gfx_RM2_SURFACE_XLU_NO_ZB = 0x80150EB0; // rom:0xE5D40 +Gfx_RM3_SURFACE_OPA_NO_ZB = 0x80151170; // rom:0xE6000 +Gfx_RM3_ALPHATEST_NO_ZB = 0x80151198; // rom:0xE6028 +Gfx_RM3_SURFACE_XLU_NO_ZB = 0x801511C0; // rom:0xE6050 +Gfx_RM1_CLOUD = 0x80150BC0; // rom:0xE5A50 +Gfx_RM1_CLOUD_NO_ZB = 0x80150BE8; // rom:0xE5A78 +Gfx_RM2_CLOUD = 0x80150ED8; // rom:0xE5D68 +Gfx_RM2_CLOUD_NO_ZB = 0x80150F00; // rom:0xE5D90 +Gfx_RM3_CLOUD = 0x801511E8; // rom:0xE6078 +Gfx_RM3_CLOUD_NO_ZB = 0x80151210; // rom:0xE60A0 +SolidCombineModes = 0x80150168; // rom:0xE4FF8 +AlphaTestCombineModes = 0x801504B0; // rom:0xE5340 +TextureHeapBase = 0x801507F8; // rom:0xE5688 +ShroudTintAmt = 0x801507FC; // rom:0xE568C +ShroudTintR = 0x801507FD; // rom:0xE568D +ShroudTintG = 0x801507FE; // rom:0xE568E +ShroudTintB = 0x801507FF; // rom:0xE568F +DepthTintBaseR = 0x80150800; // rom:0xE5690 +DepthTintBaseG = 0x80150801; // rom:0xE5691 +DepthTintBaseB = 0x80150802; // rom:0xE5692 +DepthTintBaseA = 0x80150803; // rom:0xE5693 +DepthTintColR = 0x80150804; // rom:0xE5694 +DepthTintColG = 0x80150805; // rom:0xE5695 +DepthTintColB = 0x80150806; // rom:0xE5696 +DepthTintColA = 0x80150807; // rom:0xE5697 +DepthTintStart = 0x80150808; // rom:0xE5698 +DepthTintEnd = 0x8015080C; // rom:0xE569C +RemapTintMaxR = 0x80150810; // rom:0xE56A0 +RemapTintMaxG = 0x80150811; // rom:0xE56A1 +RemapTintMaxB = 0x80150812; // rom:0xE56A2 +RemapTintMinR = 0x80150813; // rom:0xE56A3 +RemapTintMinG = 0x80150814; // rom:0xE56A4 +RemapTintMinB = 0x80150815; // rom:0xE56A5 +ReferenceIdentityMtx = 0x80150818; // rom:0xE56A8 +DepthFloatLookupTable = 0x80150858; // rom:0xE56E8 +gLastRenderTaskCount = 0x801508A0; // rom:0xE5730 +Gfx_RM1_CLOUD_NO_ZCMP = 0x80150B98; // rom:0xE5A28 +RenderTaskBasePriorities = 0x80151238; // rom:0xE60C8 +D_8014C248 = 0x801512F8; // rom:0xE6188 +appendGfx_model = 0x801182A0; // type:func rom:0xAD130 +get_model_property = 0x8011AD1C; // type:func rom:0xAFBAC +make_texture_gfx = 0x8011D2F8; // type:func rom:0xB2188 +load_texture_impl = 0x80119D68; // type:func rom:0xAEBF8 +load_texture_by_name = 0x80119F7C; // type:func rom:0xAEE0C +load_texture_variants = 0x8011A6A8; // type:func rom:0xAF538 +load_next_model_textures = 0x8011AD54; // type:func rom:0xAFBE4 +mdl_load_all_textures = 0x8011AE34; // type:func rom:0xAFCC4 +mdl_get_child_count = 0x8011AEB8; // type:func rom:0xAFD48 +init_model_data = 0x8011B1F8; // type:func rom:0xB0088 +mdl_calculate_model_sizes = 0x8011B33C; // type:func rom:0xB01CC +mdl_create_model = 0x8011B41C; // type:func rom:0xB02AC +is_identity_fixed_mtx = 0x80121024; // type:func rom:0xB5EB4 +iterate_models = 0x8011B884; // type:func rom:0xB0714 +build_custom_gfx = 0x80120EFC; // type:func rom:0xB5D8C +appendGfx_model_group = 0x8011CEA4; // type:func rom:0xB1D34 +render_transform_group = 0x8011D21C; // type:func rom:0xB20AC +func_80117D00 = 0x8011CF10; // type:func rom:0xB1DA0 +render_transform_group_node = 0x8011D084; // type:func rom:0xB1F14 +load_data_for_models = 0x8011FF58; // type:func rom:0xB4DE8 +load_model_transforms = 0x8011FFD8; // type:func rom:0xB4E68 +get_model_list_index_from_tree_index = 0x80120220; // type:func rom:0xB50B0 +get_transform_group_index = 0x801202A0; // type:func rom:0xB5130 +get_transform_group = 0x801203D0; // type:func rom:0xB5260 +get_model_center_and_size = 0x801202FC; // type:func rom:0xB518C +func_8011B1D8 = 0x801203E8; // type:func rom:0xB5278 +mdl_make_transform_group = 0x8012058C; // type:func rom:0xB541C +enable_transform_group = 0x801207E0; // type:func rom:0xB5670 +disable_transform_group = 0x80120870; // type:func rom:0xB5700 +clone_model = 0x80120900; // type:func rom:0xB5790 +mdl_group_set_visibility = 0x801209D0; // type:func rom:0xB5860 +mdl_group_set_custom_gfx = 0x80120B60; // type:func rom:0xB59F0 +enable_world_fog = 0x80120D60; // type:func rom:0xB5BF0 +disable_world_fog = 0x80120D74; // type:func rom:0xB5C04 +set_world_fog_dist = 0x80120D84; // type:func rom:0xB5C14 +set_world_fog_color = 0x80120D98; // type:func rom:0xB5C28 +is_world_fog_enabled = 0x80120DB4; // type:func rom:0xB5C44 +get_world_fog_distance = 0x80120DC4; // type:func rom:0xB5C54 +get_world_fog_color = 0x80120DE8; // type:func rom:0xB5C78 +set_tex_panner = 0x80120E24; // type:func rom:0xB5CB4 +set_main_pan_u = 0x80120E2C; // type:func rom:0xB5CBC +set_main_pan_v = 0x80120E44; // type:func rom:0xB5CD4 +set_aux_pan_u = 0x80120E5C; // type:func rom:0xB5CEC +set_aux_pan_v = 0x80120E74; // type:func rom:0xB5D04 +set_mdl_custom_gfx_set = 0x80120E8C; // type:func rom:0xB5D1C +set_custom_gfx = 0x80120EC4; // type:func rom:0xB5D54 +set_custom_gfx_builders = 0x80120EE0; // type:func rom:0xB5D70 +mdl_set_shroud_tint_params = 0x8012106C; // type:func rom:0xB5EFC +mdl_set_depth_tint_params = 0x801210C4; // type:func rom:0xB5F54 +mdl_get_depth_tint_params = 0x80121124; // type:func rom:0xB5FB4 +mdl_set_remap_tint_params = 0x801211A8; // type:func rom:0xB6038 +mdl_get_remap_tint_params = 0x801211E4; // type:func rom:0xB6074 +mdl_get_vertex_count = 0x80121238; // type:func rom:0xB60C8 +mdl_local_gfx_update_vtx_pointers = 0x801212EC; // type:func rom:0xB617C +mdl_local_gfx_copy_vertices = 0x80121340; // type:func rom:0xB61D0 +mdl_make_local_vertex_copy = 0x80121374; // type:func rom:0xB6204 +mdl_get_copied_vertices = 0x801214C0; // type:func rom:0xB6350 +mdl_get_copied_gfx = 0x801214FC; // type:func rom:0xB638C +mdl_project_tex_coords = 0x8012153C; // type:func rom:0xB63CC +is_model_center_visible = 0x80121A1C; // type:func rom:0xB68AC +is_point_visible = 0x801221CC; // type:func rom:0xB705C +mdl_draw_hidden_panel_surface = 0x8012293C; // type:func rom:0xB77CC +mdl_get_next_texture_address = 0x801229F4; // type:func rom:0xB7884 +mdl_set_all_tint_type = 0x80122A3C; // type:func rom:0xB78CC +clear_render_tasks_alt = 0x80122AE0; // type:func rom:0xB7970 +gAnimScriptDefault = 0x80151300; // rom:0xE6190 +animator_copy_vertices_to_buffer = 0x80123090; // type:func rom:0xB7F20 +animator_make_mirrorZ = 0x801231E0; // type:func rom:0xB8070 +animator_make_mirrorY = 0x80123224; // type:func rom:0xB80B4 +animator_make_mirrorX = 0x80123268; // type:func rom:0xB80F8 +animator_make_identity = 0x801232AC; // type:func rom:0xB813C +get_animator_child_with_id = 0x801232EC; // type:func rom:0xB817C +get_animator_child_for_model = 0x80123360; // type:func rom:0xB81F0 +free_animator_nodes = 0x801233D4; // type:func rom:0xB8264 +reset_animator_list = 0x80123520; // type:func rom:0xB83B0 +delete_model_animator_node = 0x801235A8; // type:func rom:0xB8438 +delete_model_animator_nodes = 0x80123610; // type:func rom:0xB84A0 +delete_model_animator = 0x80123648; // type:func rom:0xB84D8 +create_model_animator = 0x801236C8; // type:func rom:0xB8558 +create_mesh_animator = 0x801237F0; // type:func rom:0xB8680 +add_anim_node = 0x80123928; // type:func rom:0xB87B8 +update_model_animator = 0x80123ACC; // type:func rom:0xB895C +step_model_animator = 0x80123E00; // type:func rom:0xB8C90 +reload_mesh_animator_tree = 0x80125888; // type:func rom:0xBA718 +step_mesh_animator = 0x80125908; // type:func rom:0xBA798 +animator_update_model_transforms = 0x80124268; // type:func rom:0xB90F8 +update_model_animator_with_transform = 0x80123C64; // type:func rom:0xB8AF4 +animator_node_update_model_transform = 0x80124328; // type:func rom:0xB91B8 +render_animated_model = 0x80124514; // type:func rom:0xB93A4 +appendGfx_animator = 0x801246E4; // type:func rom:0xB9574 +render_animated_model_with_vertices = 0x801245F8; // type:func rom:0xB9488 +appendGfx_animator_node = 0x80124C64; // type:func rom:0xB9AF4 +get_animator_node_for_tree_index = 0x80125184; // type:func rom:0xBA014 +get_animator_node_with_id = 0x801251A8; // type:func rom:0xBA038 +set_animator_tree_to_node_map = 0x801251C4; // type:func rom:0xBA054 +get_animator_by_index = 0x801251F0; // type:func rom:0xBA080 +set_animator_render_callback = 0x80125210; // type:func rom:0xBA0A0 +enable_anim_model_fog = 0x80125238; // type:func rom:0xBA0C8 +disable_anim_model_fog = 0x8012524C; // type:func rom:0xBA0DC +set_anim_model_fog_dist = 0x8012525C; // type:func rom:0xBA0EC +set_anim_model_fog_color = 0x80125274; // type:func rom:0xBA104 +is_anim_model_fog_enabled = 0x8012529C; // type:func rom:0xBA12C +get_anim_model_fog_distance = 0x801252AC; // type:func rom:0xBA13C +get_anim_model_fog_color = 0x801252C8; // type:func rom:0xBA158 +set_animator_flags = 0x801252FC; // type:func rom:0xBA18C +clear_animator_flags = 0x80125328; // type:func rom:0xBA1B8 +play_model_animation = 0x80125358; // type:func rom:0xBA1E8 +play_model_animation_starting_from = 0x801253A8; // type:func rom:0xBA238 +load_model_animator_node = 0x80125444; // type:func rom:0xBA2D4 +load_model_animator_tree = 0x801255BC; // type:func rom:0xBA44C +load_mesh_animator_node = 0x80125630; // type:func rom:0xBA4C0 +load_mesh_animator_tree = 0x80125684; // type:func rom:0xBA514 +reload_mesh_animator_node = 0x80125740; // type:func rom:0xBA5D0 +D_8014C260 = 0x80151310; // rom:0xE61A0 +D_8014C268 = 0x80151318; // rom:0xE61A8 +init_entity_models = 0x80125E68; // type:func rom:0xBACF8 +load_entity_model = 0x80125EF0; // type:func rom:0xBAD80 +ALT_load_entity_model = 0x80125FF4; // type:func rom:0xBAE84 +exec_entity_model_commandlist = 0x80126114; // type:func rom:0xBAFA4 +step_entity_model_commandlist = 0x801261C8; // type:func rom:0xBB058 +free_entity_model_by_ref = 0x801280A4; // type:func rom:0xBCF34 +make_entity_model_mtx_flipZ = 0x80126350; // type:func rom:0xBB1E0 +appendGfx_entity_model = 0x80126394; // type:func rom:0xBB224 +draw_entity_model_A = 0x80126EF8; // type:func rom:0xBBD88 +draw_entity_model_B = 0x801270C8; // type:func rom:0xBBF58 +draw_entity_model_C = 0x80127298; // type:func rom:0xBC128 +draw_entity_model_D = 0x80127398; // type:func rom:0xBC228 +draw_entity_model_E = 0x80127498; // type:func rom:0xBC328 +set_entity_model_render_command_list = 0x80127F8C; // type:func rom:0xBCE1C +free_entity_model_by_index = 0x8012800C; // type:func rom:0xBCE9C +set_entity_model_flags = 0x801280F8; // type:func rom:0xBCF88 +clear_entity_model_flags = 0x80128134; // type:func rom:0xBCFC4 +bind_entity_model_setupGfx = 0x80128174; // type:func rom:0xBD004 +func_80122F8C = 0x8012819C; // type:func rom:0xBD02C +func_80122FB8 = 0x801281C8; // type:func rom:0xBD058 +enable_entity_fog = 0x801281FC; // type:func rom:0xBD08C +disable_entity_fog = 0x80128210; // type:func rom:0xBD0A0 +set_entity_fog_dist = 0x80128220; // type:func rom:0xBD0B0 +set_entity_fog_color = 0x80128238; // type:func rom:0xBD0C8 +is_entity_fog_enabled = 0x80128260; // type:func rom:0xBD0F0 +get_entity_fog_distance = 0x80128270; // type:func rom:0xBD100 +get_entity_fog_color = 0x8012828C; // type:func rom:0xBD11C +worker_delegate_do_nothing = 0x801282C0; // type:func rom:0xBD150 +init_worker_list = 0x80128324; // type:func rom:0xBD1B4 +create_worker_backUI = 0x80128530; // type:func rom:0xBD3C0 +free_worker = 0x801287D0; // type:func rom:0xBD660 +get_worker = 0x8012884C; // type:func rom:0xBD6DC +clear_area_flags = 0x8014A440; // type:func rom:0xDF2D0 +clear_global_flag = 0x8014A490; // type:func rom:0xDF320 +set_global_byte = 0x8014A5D0; // type:func rom:0xDF460 +get_global_byte = 0x8014A5E8; // type:func rom:0xDF478 +clear_area_flag = 0x8014A5FC; // type:func rom:0xDF48C +set_area_flag = 0x8014A650; // type:func rom:0xDF4E0 +get_area_flag = 0x8014A6A0; // type:func rom:0xDF530 +set_area_byte = 0x8014A6E8; // type:func rom:0xDF578 +get_area_byte = 0x8014A700; // type:func rom:0xDF590 +default_trigger_on_activate = 0x8014A720; // type:func rom:0xDF5B0 +init_trigger_list = 0x8014A7D8; // type:func rom:0xDF668 +create_trigger = 0x8014A81C; // type:func rom:0xDF6AC +delete_trigger = 0x8014ACA4; // type:func rom:0xDFB34 +is_another_trigger_bound = 0x8014AD1C; // type:func rom:0xDFBAC +get_trigger_by_id = 0x8014AD80; // type:func rom:0xDFC10 +should_collider_allow_interact = 0x8014AD98; // type:func rom:0xDFC28 +gCloudyFlowerFieldsBg = 0x801541C0; // rom:0xE9050 +gSunnyFlowerFieldsBg = 0x801541C8; // rom:0xE9058 +gBackroundWaveEnabled = 0x801541CF; // rom:0xE905F +gBackroundTextureYOffset = 0x801541D0; // rom:0xE9060 +gBackroundWavePhase = 0x801541D4; // rom:0xE9064 +load_map_bg = 0x8014AE20; // type:func rom:0xDFCB0 +set_background = 0x8014AED8; // type:func rom:0xDFD68 +set_background_size = 0x8014AF20; // type:func rom:0xDFDB0 +blend_background_channel = 0x8014AF48; // type:func rom:0xDFDD8 +enable_background_wave = 0x8014C2BC; // type:func rom:0xE114C +disable_background_wave = 0x8014C2CC; // type:func rom:0xE115C +DefaultAmbientSoundData = 0x801541E0; // rom:0xE9070 +play_ambient_sounds = 0x8014C418; // type:func rom:0xE12A8 +gWindowStyles = 0x801541F0; // rom:0xE9080 +gSimpleWindowUpdates = 0x801542F0; // rom:0xE9180 +gWindowAppearScales = 0x80154338; // rom:0xE91C8 +gWindowAppearFlags = 0x80154340; // rom:0xE91D0 +gWindowDisappearScales = 0x80154348; // rom:0xE91D8 +gWindowDisappearFlags = 0x80154354; // rom:0xE91E4 +gWindowGroups = 0x80154360; // rom:0xE91F0 +main_menu_window_update = 0x8014C700; // type:func rom:0xE1590 +render_windows = 0x8014C748; // type:func rom:0xE15D8 +update_window_hierarchy = 0x8014CE20; // type:func rom:0xE1CB0 +replace_window_update = 0x8014CEF8; // type:func rom:0xE1D88 +set_windows_visible = 0x8014CF74; // type:func rom:0xE1E04 +setup_pause_menu_tab = 0x8014CFE0; // type:func rom:0xE1E70 +init_sprite_shading_data = 0x8014D1A0; // type:func rom:0xE2030 +sprite_shading_set_light_source = 0x8014D204; // type:func rom:0xE2094 +appendGfx_shading_palette = 0x8014DA68; // type:func rom:0xE28F8 +LoopingSounds = 0x80154370; // rom:0xE9200 +FireBar0Sounds = 0x8015452C; // rom:0xE93BC +FireBar1Sounds = 0x80154534; // rom:0xE93C4 +FireBar2Sounds = 0x8015453C; // rom:0xE93CC +FireBar3Sounds = 0x80154544; // rom:0xE93D4 +FireBar4Sounds = 0x8015454C; // rom:0xE93DC +FireBar5Sounds = 0x80154554; // rom:0xE93E4 +FireBar6Sounds = 0x8015455C; // rom:0xE93EC +FireBar7Sounds = 0x80154564; // rom:0xE93F4 +FireBar8Sounds = 0x8015456C; // rom:0xE93FC +FireBar9Sounds = 0x80154574; // rom:0xE9404 +FireBarDeadSounds = 0x8015457C; // rom:0xE940C +AlertSounds = 0x80154584; // rom:0xE9414 +SnoreInhaleSounds = 0x8015458C; // rom:0xE941C +SnoreExhaleSounds = 0x80154594; // rom:0xE9424 +SnapAwakeSounds = 0x8015459C; // rom:0xE942C +BooVanishSounds = 0x801545A4; // rom:0xE9434 +BooAppearSounds = 0x801545AC; // rom:0xE943C +WindowOpenSounds = 0x801545B4; // rom:0xE9444 +WindowCloseSounds = 0x801545BC; // rom:0xE944C +RavenLeapSounds = 0x801545C4; // rom:0xE9454 +RavenFallSounds = 0x801545CC; // rom:0xE945C +ShootingStarFallSounds = 0x801545D8; // rom:0xE9468 +ShootingStarBounceSounds = 0x801545E0; // rom:0xE9470 +FuzzyHopSounds = 0x801545E8; // rom:0xE9478 +BulletBillExplodeSounds = 0x801545F4; // rom:0xE9484 +LuigiStepSounds = 0x801545FC; // rom:0xE948C +TrainChugSounds = 0x80154604; // rom:0xE9494 +FinaleBridgeCollapseSounds = 0x8015460C; // rom:0xE949C +FinaleExplosionSounds = 0x80154614; // rom:0xE94A4 +CardShuffleSounds = 0x8015461C; // rom:0xE94AC +StarSpiritAppearSounds = 0x80154624; // rom:0xE94B4 +StarSpiritCastSounds = 0x8015462C; // rom:0xE94BC +UnusedExplodeSounds = 0x80154634; // rom:0xE94C4 +ShyGuyStepSounds = 0x8015463C; // rom:0xE94CC +AlternatingSounds = 0x80154644; // rom:0xE94D4 +OpenCloseSounds = 0x80154754; // rom:0xE95E4 +sfx_compute_spatialized_sound_params_full = 0x8014E300; // type:func rom:0xE3190 +sfx_reset_door_sounds = 0x8014E6B0; // type:func rom:0xE3540 +sfx_set_reverb_mode = 0x8014E8AC; // type:func rom:0xE373C +sfx_clear_env_sounds = 0x8014E720; // type:func rom:0xE35B0 +sfx_get_spatialized_sound_params = 0x8014EEB4; // type:func rom:0xE3D44 +sfx_get_reverb_mode = 0x8014E8D8; // type:func rom:0xE3768 +sfx_get_env_sound_instance = 0x8014E974; // type:func rom:0xE3804 +sfx_play_sound_looping = 0x8014E9B8; // type:func rom:0xE3848 +sfx_register_looping_sound_at_position = 0x8014EA24; // type:func rom:0xE38B4 +sfx_adjust_env_sound_pos = 0x8014EA9C; // type:func rom:0xE392C +snd_stop_tracking_env_sound_pos = 0x8014EB1C; // type:func rom:0xE39AC +sfx_adjust_env_sound_params = 0x8014EC94; // type:func rom:0xE3B24 +sfx_play_sound_at_npc = 0x8014EDB8; // type:func rom:0xE3C48 +sfx_compute_spatialized_sound_params_ignore_depth = 0x8014F008; // type:func rom:0xE3E98 +sfx_compute_spatialized_sound_params_with_depth = 0x8014F264; // type:func rom:0xE40F4 +BlankMusicSettings = 0x80154790; // rom:0xE9620 +SongsUsingVariationFlag = 0x801547C0; // rom:0xE9650 +NextVolumeUpdateTimer = 0x801547D8; // rom:0xE9668 +bgm_get_map_default_variation = 0x8014F4E0; // type:func rom:0xE4370 +bgm_reset_volume = 0x8014F5DC; // type:func rom:0xE446C +bgm_set_target_volume = 0x8014FD34; // type:func rom:0xE4BC4 +bgm_update_volume = 0x8014FD44; // type:func rom:0xE4BD4 +_bgm_set_song = 0x8014F890; // type:func rom:0xE4720 +func_8014A964 = 0x8014FA14; // type:func rom:0xE48A4 +bgm_adjust_proximity = 0x8014FB04; // type:func rom:0xE4994 +bgm_set_track_volumes = 0x8014FBBC; // type:func rom:0xE4A4C +bgm_clear_track_volumes = 0x8014FC10; // type:func rom:0xE4AA0 +bgm_set_variation = 0x8014FC64; // type:func rom:0xE4AF4 +bgm_init_music_players = 0x8014FCB8; // type:func rom:0xE4B48 +bgm_quiet_max_volume = 0x8014FD0C; // type:func rom:0xE4B9C +bgm_reset_max_volume = 0x8014FD20; // type:func rom:0xE4BB0 +func_8014AD40 = 0x8014FDF0; // type:func rom:0xE4C80 +bgm_pop_song = 0x8014FE54; // type:func rom:0xE4CE4 +bgm_push_song = 0x8014FEA8; // type:func rom:0xE4D38 +func_8014AFA0 = 0x80150050; // type:func rom:0xE4EE0 +ui_stencil_star_png = 0x801517A0; // rom:0xE6630 +ui_stencil_mario_png = 0x80151BA0; // rom:0xE6A30 +ui_stencil_sharp_circle_png = 0x801523A0; // rom:0xE7230 +ui_stencil_blurry_circle_png = 0x801525A0; // rom:0xE7430 +vtx_stencil1 = 0x801535A0; // rom:0xE8430 size:0xA0 +vtx_stencil2 = 0x80153810; // rom:0xE86A0 size:0x180 +imgfx_appendGfx_component = 0x80140020; // type:func rom:0xD4EB0 +CurrentScreenTransition = 0x80151790; // rom:0xE6620 +D_8014C6F4 = 0x80151794; // rom:0xE6624 +Gfx_LoadStencilTex_CommonParams = 0x80153640; // rom:0xE84D0 +Gfx_LoadStencilTex_SharpCircle = 0x801536B8; // rom:0xE8548 +Gfx_LoadStencilTex_Mario = 0x80153710; // rom:0xE85A0 +Gfx_LoadStencilTex_Star = 0x80153760; // rom:0xE85F0 +Gfx_LoadStencilTex_BlurryCircle = 0x801537B8; // rom:0xE8648 +D_8014E8F0 = 0x80153990; // rom:0xE8820 +D_8014E9A8 = 0x80153A48; // rom:0xE88D8 +D_8014EA48 = 0x80153AE8; // rom:0xE8978 +get_screen_overlay_params = 0x8013CE70; // type:func rom:0xD1D00 +set_screen_overlay_color = 0x8013CEC0; // type:func rom:0xD1D50 +set_screen_overlay_center_worldpos = 0x8013CF70; // type:func rom:0xD1E00 +set_screen_overlay_alpha = 0x8013D184; // type:func rom:0xD2014 +func_80138188 = 0x8013D238; // type:func rom:0xD20C8 +update_exit_map_screen_overlay = 0x8013D35C; // type:func rom:0xD21EC +update_enter_map_screen_overlay = 0x8013D684; // type:func rom:0xD2514 +D_8014ED90 = 0x80153E30; // rom:0xE8CC0 +DarknessStencilViewport = 0x80153E38; // rom:0xE8CC8 +Vtx_DarknessStencil = 0x80153E48; // rom:0xE8CD8 +Gfx_DarknessStencilQuad = 0x80153E88; // rom:0xE8D18 +appendGfx_draw_prev_frame_buffer = 0x8013D7F0; // type:func rom:0xD2680 +draw_prev_frame_buffer_at_screen_pos = 0x8013DE38; // type:func rom:0xD2CC8 +appendGfx_darkness_stencil = 0x8013DF04; // type:func rom:0xD2D94 +appendGfx_screen_transition_stencil = 0x8013EFC0; // type:func rom:0xD3E50 +ImgFXCurrentTexturePtr = 0x80153EB0; // rom:0xE8D40 +imgfx_vtxCount = 0x80153EB4; // rom:0xE8D44 +ImgFXLights = 0x80153EB8; // rom:0xE8D48 +D_8014EE40 = 0x80153EE0; // rom:0xE8D70 +D_8014EE50 = 0x80153EF0; // rom:0xE8D80 +ImgFXVtxBufferCapacity = 0x80153F00; // rom:0xE8D90 +DefaultImgFXSetupGfx = 0x80153F08; // rom:0xE8D98 +ImgFXRenderModes = 0x80153F38; // rom:0xE8DC8 +ImgFXAnimOffsets = 0x80154004; // rom:0xE8E94 +imgfx_set_vtx_buf_capacity = 0x8013F420; // type:func rom:0xD42B0 +imgfx_init = 0x8013F42C; // type:func rom:0xD42BC +imgfx_init_instance = 0x8013FA98; // type:func rom:0xD4928 +imgfx_clear_instance_data = 0x8013FA78; // type:func rom:0xD4908 +func_8013A4D0 = 0x8013F580; // type:func rom:0xD4410 +imgfx_cache_instance_data = 0x8013F9EC; // type:func rom:0xD487C +imgfx_add_to_cache = 0x8013F6C0; // type:func rom:0xD4550 +imgfx_update_cache_impl = 0x8013F700; // type:func rom:0xD4590 +imgfx_update_cache = 0x8013F798; // type:func rom:0xD4628 +imgfx_get_free_instances = 0x8013F7B4; // type:func rom:0xD4644 +imgfx_release_instance = 0x8013F904; // type:func rom:0xD4794 +imgfx_release_instance_chain = 0x8013F938; // type:func rom:0xD47C8 +imgfx_get_next_instance = 0x8013F990; // type:func rom:0xD4820 +imgfx_get_instance = 0x8013F9D0; // type:func rom:0xD4860 +imgfx_update = 0x8013FB4C; // type:func rom:0xD49DC +imgfx_wavy_init = 0x80143EF8; // type:func rom:0xD8D88 +imgfx_set_state_flags = 0x8013FFD0; // type:func rom:0xD4E60 +imgfx_make_mesh = 0x8014019C; // type:func rom:0xD502C +imgfx_appendGfx_mesh = 0x80140260; // type:func rom:0xD50F0 +imgfx_mesh_make_grid = 0x801410F8; // type:func rom:0xD5F88 +imgfx_mesh_anim_update = 0x801414A0; // type:func rom:0xD6330 +imgfx_mesh_make_strip = 0x80140D38; // type:func rom:0xD5BC8 +imgfx_mesh_make_wavy = 0x80143F18; // type:func rom:0xD8DA8 +imgfx_mesh_load_colors = 0x801442A8; // type:func rom:0xD9138 +imgfx_appendGfx_mesh_basic = 0x80142058; // type:func rom:0xD6EE8 +imgfx_appendGfx_mesh_grid = 0x80142B64; // type:func rom:0xD79F4 +imgfx_appendGfx_mesh_anim = 0x801433A0; // type:func rom:0xD8230 +imgfx_appendGfx_mesh_strip = 0x801439B4; // type:func rom:0xD8844 +imgfx_load_anim = 0x801412D0; // type:func rom:0xD6160 +gHudElementAuxCache = 0x80154060; // rom:0xE8EF0 +gHudElementCacheCapacity = 0x80154064; // rom:0xE8EF4 +HES_Empty = 0x80154068; // rom:0xE8EF8 +gHudElementSizes = 0x8015406C; // rom:0xE8EFC +D_8014F068 = 0x80154108; // rom:0xE8F98 +gHudElementsDLBackUI = 0x80154118; // rom:0xE8FA8 +gHudElementsDLFrontUI = 0x80154140; // rom:0xE8FD0 +D_8014F0C8 = 0x80154168; // rom:0xE8FF8 +HudElementLights = 0x801541A8; // rom:0xE9038 +hud_element_load_script = 0x80144400; // type:func rom:0xD9290 +hud_element_draw_rect = 0x801447B4; // type:func rom:0xD9644 +func_801413F8 = 0x801464A8; // type:func rom:0xDB338 +init_hud_element_list = 0x801463B0; // type:func rom:0xDB240 +hud_element_update = 0x801467B4; // type:func rom:0xDB644 +render_hud_element = 0x80147CAC; // type:func rom:0xDCB3C +func_80143C48 = 0x80148CF8; // type:func rom:0xDDB88 +func_80144218 = 0x801492C8; // type:func rom:0xDE158 +func_80144238 = 0x801492E8; // type:func rom:0xDE178 +func_80144258 = 0x80149308; // type:func rom:0xDE198 +func_80144278 = 0x80149328; // type:func rom:0xDE1B8 +draw_hud_element_internal = 0x80149348; // type:func rom:0xDE1D8 +hud_element_draw_without_clipping = 0x80149890; // type:func rom:0xDE720 +hud_element_get_script = 0x80149960; // type:func rom:0xDE7F0 +get_hud_element = 0x80149984; // type:func rom:0xDE814 +hud_element_free_transform = 0x8014A1B8; // type:func rom:0xDF048 +hud_element_get_render_pos = 0x80149A5C; // type:func rom:0xDE8EC +hud_element_set_render_depth = 0x80149A8C; // type:func rom:0xDE91C +hud_element_clear_flags = 0x80149ADC; // type:func rom:0xDE96C +ALT_clear_hud_element_cache = 0x80149B0C; // type:func rom:0xDE99C +hud_element_set_scale = 0x80149CD0; // type:func rom:0xDEB60 +hud_element_use_preset_size = 0x80149EA4; // type:func rom:0xDED34 +func_80144E4C = 0x80149EFC; // type:func rom:0xDED8C +func_80144E74 = 0x80149F24; // type:func rom:0xDEDB4 +hud_element_set_alpha = 0x80149F60; // type:func rom:0xDEDF0 +hud_element_create_transform_A = 0x80149FD8; // type:func rom:0xDEE68 +hud_element_create_transform_B = 0x8014A088; // type:func rom:0xDEF18 +hud_element_create_transform_C = 0x8014A120; // type:func rom:0xDEFB0 +hud_element_set_transform_pos = 0x8014A234; // type:func rom:0xDF0C4 +hud_element_set_transform_scale = 0x8014A284; // type:func rom:0xDF114 +hud_element_set_transform_rotation = 0x8014A2D4; // type:func rom:0xDF164 +hud_element_set_transform_rotation_pivot = 0x8014A324; // type:func rom:0xDF1B4 +copy_world_hud_element_ref_to_battle = 0x8014A364; // type:func rom:0xDF1F4 +hud_element_set_aux_cache = 0x8014A398; // type:func rom:0xDF228 +rodata_padding = 0x80156294; // rom:0xEB124 +D_8014C620 = 0x801516D0; // rom:0xE6560 +D_8014C6A0 = 0x80151750; // rom:0xE65E0 +D_8014C678 = 0x80151728; // rom:0xE65B8 +draw_ci_image_with_clipping = 0x80133B20; // type:func rom:0xC89B0 +draw_image_with_clipping = 0x80133E14; // type:func rom:0xC8CA4 +draw_tiled_image = 0x80134680; // type:func rom:0xC9510 +integer_log = 0x80134F90; // type:func rom:0xC9E20 +draw_adjustable_tiled_image = 0x80134FF8; // type:func rom:0xC9E88 +D_8014C2D8 = 0x80151388; // rom:0xE6218 +D_8014C588 = 0x80151638; // rom:0xE64C8 +gRewindArrowQuad = 0x80151348; // rom:0xE61D8 +gMsgNumbers = 0x801513F0; // rom:0xE6280 +gMsgDlistInitDrawNumber = 0x80151418; // rom:0xE62A8 +D_8014C580 = 0x80151630; // rom:0xE64C0 +D_8014C500 = 0x801515B0; // rom:0xE6440 +gMsgSpeechBoxMQuad = 0x801514B0; // rom:0xE6340 +gMsgArrowQuad2 = 0x80151570; // rom:0xE6400 +gNextMessageBuffer = 0x80151340; // rom:0xE61D0 +gMsgArrowQuad1 = 0x80151530; // rom:0xE63C0 +gMsgSpeechBoxLQuad = 0x80151470; // rom:0xE6300 +gMsgSpeechBoxRQuad = 0x801514F0; // rom:0xE6380 +reveal_item_entity = 0x8013612C; // type:func rom:0xCAFBC +draw_coin_sparkles = 0x80135C8C; // type:func rom:0xCAB1C +sparkle_script_init = 0x80135B70; // type:func rom:0xCAA00 +get_item_entity = 0x801360D8; // type:func rom:0xCAF68 +hide_item_entity = 0x801360F0; // type:func rom:0xCAF80 +sparkle_script_update = 0x80135C4C; // type:func rom:0xCAADC +gBattleShadowList = 0x801565A8; +item_entity_load = 0x80136298; // type:func rom:0xCB128 +make_item_entity_delayed = 0x80136C38; // type:func rom:0xCBAC8 +test_item_player_collision = 0x80138C7C; // type:func rom:0xCDB0C +remove_item_entity_by_reference = 0x80138AA0; // type:func rom:0xCD930 +draw_content_pickup_item_desc = 0x8013BAC4; // type:func rom:0xD0954 +draw_content_cant_carry_more = 0x8013BA8C; // type:func rom:0xD091C +D_8014C5A0 = 0x80151650; // rom:0xE64E0 +D_8014C5E0 = 0x80151690; // rom:0xE6520 +ItemEntityLights = 0x80151778; // rom:0xE6608 +sparkle_script_step = 0x80135B84; // type:func rom:0xCAA14 +draw_item_entities = 0x80137DF0; // type:func rom:0xCCC80 +draw_ui_item_entities = 0x80137F04; // type:func rom:0xCCD94 +init_item_entity_list = 0x80136244; // type:func rom:0xCB0D4 +item_entity_update = 0x80136F44; // type:func rom:0xCBDD4 +make_item_entity = 0x80136564; // type:func rom:0xCB3F4 +make_item_entity_nodelay = 0x80136C04; // type:func rom:0xCBA94 +make_item_entity_at_player = 0x80136C70; // type:func rom:0xCBB00 +update_item_entities = 0x8013705C; // type:func rom:0xCBEEC +update_item_entity_stationary = 0x8013A780; // type:func rom:0xCF610 +update_item_entity_no_pickup = 0x8013A7EC; // type:func rom:0xCF67C +update_item_entity_collectable = 0x80139390; // type:func rom:0xCE220 +update_item_entity_pickup = 0x8013A7FC; // type:func rom:0xCF68C +appendGfx_item_entity = 0x80137314; // type:func rom:0xCC1A4 +draw_ui_item_entity_stationary = 0x8013A7E4; // type:func rom:0xCF674 +draw_ui_item_entity_no_pickup = 0x8013A7F4; // type:func rom:0xCF684 +draw_ui_item_entity_collectable = 0x8013A6C4; // type:func rom:0xCF554 +remove_item_entity_by_index = 0x80138B6C; // type:func rom:0xCD9FC +func_80133A94 = 0x80138C04; // type:func rom:0xCDA94 +test_item_entity_position = 0x80139138; // type:func rom:0xCDFC8 +set_item_entity_flags = 0x801392B8; // type:func rom:0xCE148 +clear_item_entity_flags = 0x801392DC; // type:func rom:0xCE16C +auto_collect_item_entity = 0x80139304; // type:func rom:0xCE194 +is_picking_up_item = 0x8013933C; // type:func rom:0xCE1CC +set_item_entity_position = 0x8013934C; // type:func rom:0xCE1DC +set_current_item_entity_render_group = 0x80139370; // type:func rom:0xCE200 +get_current_item_entity_render_group = 0x80139380; // type:func rom:0xCE210 +func_801363A0 = 0x8013B4C0; // type:func rom:0xD0350 +draw_content_pickup_item_header = 0x8013B814; // type:func rom:0xD06A4 +charset_ROM_START = 0x10F330; +load_font_data = 0x80128918; // type:func rom:0xBD7A8 +msg_play_speech_sound = 0x801296D4; // type:func rom:0xBE564 +initialize_printer = 0x8012A908; // type:func rom:0xBF798 +msg_copy_to_print_buffer = 0x80129810; // type:func rom:0xBE6A0 +load_message_to_buffer = 0x8012AAEC; // type:func rom:0xBF97C +dma_load_msg = 0x8012AA68; // type:func rom:0xBF8F8 +msg_get_print_char_width = 0x8012AEE4; // type:func rom:0xBFD74 +msg_get_draw_char_width = 0x8012B054; // type:func rom:0xBFEE4 +msg_draw_frame = 0x80132CD0; // type:func rom:0xC7B60 +msg_draw_speech_arrow = 0x80132554; // type:func rom:0xC73E4 +msg_draw_speech_bubble = 0x80131D80; // type:func rom:0xC6C10 +msg_draw_prim_rect = 0x80131B20; // type:func rom:0xC69B0 +msg_draw_char = 0x8013149C; // type:func rom:0xC632C +msg_reset_gfx_state = 0x80131458; // type:func rom:0xC62E8 +appendGfx_message = 0x8012CFB0; // type:func rom:0xC1E40 +draw_message_window = 0x8012CDC4; // type:func rom:0xC1C54 +draw_digit = 0x8012C6D4; // type:func rom:0xC1564 +msg_draw_choice_pointer = 0x8012C18C; // type:func rom:0xC101C +msg_draw_rewind_arrow = 0x8012C0C8; // type:func rom:0xC0F58 +get_msg_properties = 0x8012B1C8; // type:func rom:0xC0058 +msg_update_rewind_arrow = 0x8012B9B4; // type:func rom:0xC0844 +D_8014C280 = 0x80151330; // rom:0xE61C0 +D_8014C594 = 0x80151644; // rom:0xE64D4 +load_font = 0x80128944; // type:func rom:0xBD7D4 +_update_message = 0x80128B20; // type:func rom:0xBD9B0 +_msg_get_printer_for_msg = 0x8012AB7C; // type:func rom:0xBFA0C +msg_printer_load_msg = 0x8012ACC8; // type:func rom:0xBFB58 +cancel_message = 0x8012AD68; // type:func rom:0xBFBF8 +set_message_images = 0x8012AD8C; // type:func rom:0xBFC1C +set_message_text_var = 0x8012AD9C; // type:func rom:0xBFC2C +close_message = 0x8012AED0; // type:func rom:0xBFD60 +drawbox_message_delegate = 0x8012CD90; // type:func rom:0xC1C20 +appendGfx_msg_prim_rect = 0x80131B80; // type:func rom:0xC6A10 +msg_get_glyph = 0x80133A58; // type:func rom:0xC88E8 +gAuxSpriteShadingProfile = 0x80156310; +gHudElementsNumber = 0x80156314; +gCurrentCustomModelGfxBuildersPtr = 0x80156318; +D_801512BC = 0x8015631C; +entity_numEntities = 0x80156320; +gEntityHeapBase = 0x80156324; +gHudElementCacheTableRaster = 0x80156328; +gHudElementCacheTablePalette = 0x80156330; +gAnimCount = 0x80156334; +gMsgBGScrollAmtX = 0x80156338; +D_801512DC = 0x8015633C; +gCurrentTransformGroups = 0x80156340; +gMsgGlobalWaveCounter = 0x80156344; +gCurrentCustomModelGfxPtr = 0x80156348; +gLastCreatedEntityIndex = 0x8015634C; +gMsgVarImages = 0x80156354; +ItemEntitiesCreated = 0x80156358; +gCurrentModelTreeRoot = 0x8015635C; +gEntityHeapBottom = 0x80156360; +D_80151304 = 0x80156364; +gMsgBGScrollAmtY = 0x8015636C; +D_8015130E = 0x8015636E; +gEntityHideMode = 0x80156370; +gHudElementCacheBuffer = 0x80156374; +gEntityModelCount = 0x80156378; +D_8015131C = 0x8015637C; +D_80151320 = 0x80156380; +entity_numShadows = 0x80156384; +isAreaSpecificEntityDataLoaded = 0x8015638C; +entity_updateCounter = 0x80156390; +gTriggerCount = 0x80156394; +D_80151338 = 0x80156398; +gHudElementCacheSize = 0x8015639C; +D_80151344 = 0x801563A4; +D_80151348 = 0x801563A8; +gWorldEntityList = 0x801563C0; +gBattleEntityList = 0x80156438; +gCurrentEntityListPtr = 0x801564B0; +D_80151474 = 0x801564B4; +gWorldShadowList = 0x801564B8; +gCurrentShadowListPtr = 0x80156698; +wEntityDataLoadedSize = 0x8015669C; +bEntityDataLoadedSize = 0x801566A0; +D_80151664 = 0x801566A4; +wEntityBlueprint = 0x801566A8; +bEntityBlueprint = 0x80156728; +D_801516FC = 0x8015673C; +gMainGameMode = 0x80156740; +gCurrentTextureHeader = 0x80156780; +wModelList = 0x801567B0; +bModelList = 0x80156BB0; +wTransformGroups = 0x80156FB0; +bTransformGroups = 0x80156FC0; +wCustomModelGfx = 0x80156FD0; +bCustomModelGfx = 0x80157050; +wCustomModelGfxBuilders = 0x801570D0; +bCustomModelGfxBuilders = 0x80157150; +wModelLocalVtxBuffers = 0x801571D0; +bModelLocalVtxBuffers = 0x80157210; +gCurrentModelLocalVtxBuffers = 0x80157250; +wModelTreeRoot = 0x80157254; +bModelTreeRoot = 0x80157258; +D_8015221C = 0x8015725C; +wModelTreeNodeInfo = 0x80157260; +bModelTreeNodeInfo = 0x80157A60; +wBackgroundTintMode = 0x80158260; +bBackgroundTintMode = 0x80158261; +D_80153222 = 0x80158262; +D_80153223 = 0x80158263; +TreeIterPos = 0x80158264; +wFogSettings = 0x80158268; +bFogSettings = 0x80158288; +gFogSettings = 0x801582A4; +texPannerMainU = 0x801582A8; +texPannerMainV = 0x801582E8; +texPannerAuxU = 0x80158328; +texPannerAuxV = 0x80158368; +TextureHeapPos = 0x801583A8; +mtg_IterIdx = 0x801583AC; +mtg_SearchModelID = 0x801583AE; +mtg_FoundModelNode = 0x801583B0; +mtg_MinChild = 0x801583B4; +mtg_MaxChild = 0x801583B6; +D_80153378 = 0x801583B8; +DepthCopyBuffer = 0x801583C0; +RenderTaskLists = 0x801583E0; +RenderTaskListIdx = 0x801583EC; +RenderTaskCount = 0x801583F0; +D_801533C0 = 0x80158400; +D_801536C0 = 0x80158700; +D_801539C0 = 0x80158A00; +D_80153A00 = 0x80158A40; +gCurrentAnimMeshListPtr = 0x80158A80; +gAnimModelFogEnabled = 0x80158A84; +gAnimModelFogR = 0x80158A88; +gAnimModelFogG = 0x80158A8C; +gAnimModelFogB = 0x80158A90; +gAnimModelFogA = 0x80158A94; +gAnimModelFogStart = 0x80158A98; +gAnimModelFogEnd = 0x80158A9C; +gAnimVtxSegment = 0x80158AA0; +D_80153A64 = 0x80158AA4; +gAnimRotMtx = 0x80158AA8; +gAnimScaleMtx = 0x80158AE8; +gAnimTranslateMtx = 0x80158B28; +gAnimRotScaleMtx = 0x80158B68; +gAnimTreeRoot = 0x80158BA8; +gWorldEntityModelList = 0x80158BB0; +gBattleEntityModelList = 0x80158FB0; +gCurrentEntityModelList = 0x801593B0; +D_80154374 = 0x801593B4; +entity_fog_enabled = 0x801593B8; +entity_fog_red = 0x801593BC; +entity_fog_green = 0x801593C0; +entity_fog_blue = 0x801593C4; +entity_fog_alpha = 0x801593C8; +entity_fog_dist_min = 0x801593CC; +entity_fog_dist_max = 0x801593D0; +D_80154394 = 0x801593D4; +gWorldWorkerList = 0x801593E0; +gBattleWorkerList = 0x80159420; +gCurrentWorkerListPtr = 0x80159460; +D_80154424 = 0x80159464; +gMessageBuffers = 0x80159470; +gMessagePrinters = 0x80159C70; +gMessageMsgVars = 0x8015ABB0; +D_80155C98 = 0x8015AC10; +gMessageWindowProjMatrix = 0x8015AC18; +D_80155D20 = 0x8015AC98; +D_8015DD24 = 0x8015AC9C; +msg_drawState = 0x8015ACF4; +D_8015DD78 = 0x8015ACF8; +UnusedItemPhysicsScriptID = 0x8015AD00; +ItemEntityAlternatingSpawn = 0x8015AD04; +ItemEntityRenderGroup = 0x8015AD08; +CoinSparkleCenterX = 0x8015AD0C; +CoinSparkleCenterY = 0x8015AD0E; +CoinSparkleCenterZ = 0x8015AD10; +pad_ItemEntity = 0x8015AD12; +WorldItemEntities = 0x8015AD20; +BattleItemEntities = 0x8015B120; +gCurrentItemEntities = 0x8015B520; +isPickingUpItem = 0x8015B524; +ItemSpawnWithinPlayerPickupDelay = 0x8015B526; +ItemPickupMenu = 0x8015B528; +ItemPickupIconID = 0x8015B858; +ItemPickupStateDelay = 0x8015B85C; +ThrowAwayMenuIdx = 0x8015B860; +ThrowAwayItemID = 0x8015B864; +ItemPickupGotOutline = 0x8015B868; +GotItemTutorialPrinter = 0x8015B86C; +GotItemTutorialClosed = 0x8015B870; +D_801568FC = 0x8015B874; +screen_overlay_frontType = 0x8015B880; +screen_overlay_frontZoom = 0x8015B884; +screen_overlay_backType = 0x8015B888; +screen_overlay_backZoom = 0x8015B88C; +D_80156910 = 0x8015B890; +ImgFXCurrentTexture = 0x8015B8A0; +ImgFXVtxBuffers = 0x8015B8C8; +imgfx_vtxBuf = 0x8015B8D0; +ImgFXInstances = 0x8015B8D4; +D_80156958 = 0x8015B8D8; +D_80156960 = 0x8015B8E0; +D_80156968 = 0x8015B8E8; +D_80156970 = 0x8015B8F0; +ImgFXAnimHeaders = 0x8015B900; +ImgFXDataCache = 0x8015BEA0; +gHudElementsWorld = 0x8015BEE0; +gHudElementsBattle = 0x8015C3E0; +gHudElements = 0x8015C8E0; +gHudElementCacheBufferWorld = 0x8015C8E4; +gHudElementCacheSizeWorld = 0x8015C8E8; +D_8015796C = 0x8015C8EC; +gHudElementCacheTableRasterWorld = 0x8015C8F0; +gHudElementCacheTablePaletteWorld = 0x8015CEF0; +gHudElementCacheBufferBattle = 0x8015D4F0; +gHudElementCacheSizeBattle = 0x8015D4F4; +D_80158578 = 0x8015D4F8; +gHudElementCacheTableRasterBattle = 0x8015D500; +gHudElementCacheTablePaletteBattle = 0x8015DB00; +D_80159180 = 0x8015E100; +wTriggerList = 0x8015E110; +bTriggerList = 0x8015E210; +gCurrentTriggerListPtr = 0x8015E310; +D_80159394 = 0x8015E314; +gBackgroundPalette = 0x8015E320; +gBackroundLastScrollValue = 0x8015E520; +wSpriteShadingProfile = 0x8015E540; +bSpriteShadingProfile = 0x8015E5F0; +wSpriteShadingProfileAux = 0x8015E6A0; +bSpriteShadingProfileAux = 0x8015E750; +SpriteShadingPalette = 0x8015E800; +wEnvSounds = 0x8015E820; +bEnvSounds = 0x8015E938; +gCurrentEnvSounds = 0x8015EA50; +SfxReverbMode = 0x8015EA54; +D_80159AD8 = 0x8015EA58; +MusicDefaultVolume = 0x8015EA60; +MusicTargetVolume = 0x8015EA62; +MusicMaxVolume = 0x8015EA64; +MusicCurrentVolume = 0x8015EA66; +D_80159AE8 = 0x8015EA68; +D_80159B50 = 0x8015EAD0; +TextureHandles = 0x8015F510; +ScreenOverlays = 0x80161710; +AmbientSoundData = 0x80161740; +D_8015C7E0 = 0x80161760; +D_8015C800 = 0x80161780; diff --git a/ver/jp/undefined_syms.txt b/ver/jp/undefined_syms.txt index dc6e0b378a4..50eeb688fcb 100644 --- a/ver/jp/undefined_syms.txt +++ b/ver/jp/undefined_syms.txt @@ -50,140 +50,6 @@ __osHwIntTable = 0x800958A0; // main.bss // subsequent segments -update_entities = 0x801148E0; -render_entities = 0x801150C4; -get_entity_by_index = 0x801157F8; -get_shadow_by_index = 0x80115814; -clear_entity_data = 0x80115EC8; -init_entity_data = 0x80116068; -create_shadow_type = 0x80117470; -delete_shadow = 0x80117538; -entity_raycast_down = 0x801177F8; -set_npc_shadow_scale = 0x80117B10; -clear_game_modes = 0x80117DA8; -set_game_mode_slot = 0x080117EB8; -game_mode_set_fpDrawAuxUI = 0x80117F94; -step_current_game_mode = 0x80118088; -state_render_backUI = 0x80118168; -state_render_frontUI = 0x801181D4; -mdl_load_all_textures = 0x8011AE34; -clear_model_data = 0x8011AF54; -init_model_data = 0x8011B1F8; -mdl_calculate_model_sizes = 0x8011B33C; -iterate_models = 0x8011B884; -mdl_update_transform_matrices = 0x8011B8A8; -render_models = 0x8011BDA0; -get_model_from_list_index = 0x8011FF40; -load_data_for_models = 0x8011FF58; -mdl_reset_transform_flags = 0x80120CF8; -mdl_set_shroud_tint_params = 0x8012106C; -mdl_get_shroud_tint_params = 0x80121090; -mdl_set_all_tint_type = 0x80122A3C; -clear_render_tasks = 0x80122AA0; -queue_render_task = 0x80122B20; -execute_render_tasks = 0x80122BC8; -clear_animator_list = 0x80123434; -reset_animator_list = 0x80123520; -clear_entity_models = 0x80125DC0; -init_entity_models = 0x80125E68; -get_entity_model = 0x80127FEC; -clear_worker_list = 0x801282C8; -init_worker_list = 0x80128324; -create_worker_world = 0x80128368; -update_workers = 0x80128614; -render_workers_world = 0x80128680; -render_workers_frontUI = 0x801286F0; -render_workers_backUI = 0x80128760; -clear_character_set = 0x80128870; -clear_printers = 0x80128884; -update_messages = 0x80128A60; -render_messages = 0x8012948C; -get_msg_width = 0x8012B6D4; -draw_msg = 0x8012B710; -clear_item_entity_data = 0x80136170; -init_item_entity_list = 0x80136244; -make_item_entity = 0x80136564; -make_item_entity_delayed = 0x80136C38; -update_item_entities = 0x8013705C; -render_item_entities = 0x80137FC4; -is_picking_up_item = 0x8013933C; -_render_transition_stencil = 0x8013BB30; -set_screen_overlay_params_front = 0x8013CE38; -set_screen_overlay_params_back = 0x8013CE54; -set_screen_overlay_color = 0x8013CEC0; -set_screen_overlay_center = 0x8013CEFC; -set_screen_overlay_alpha = 0x8013D184; -clear_screen_overlays = 0x8013D1B8; -func_80138188 = 0x8013D238; -func_80138198 = 0x8013D248; -render_screen_overlay_frontUI = 0x8013D250; -render_screen_overlay_backUI = 0x8013D2D0; -set_map_transition_effect = 0x8013D350; -update_exit_map_screen_overlay = 0x8013D35C; -update_enter_map_screen_overlay = 0x8013D684; -imgfx_update_cache = 0x8013F798; -hud_element_clear_cache = 0x801461B0; -init_hud_element_list = 0x801463B0; -hud_element_create = 0x80146554; -update_hud_elements = 0x801466C0; -render_hud_elements_backUI = 0x801472C0; -render_hud_elements_frontUI = 0x801477CC; -render_transformed_hud_elements = 0x80148764; -hud_element_draw_next = 0x80149874; -hud_element_set_script = 0x801498AC; -get_hud_element = 0x80149984; -hud_element_free = 0x801499A4; -hud_element_set_render_pos = 0x80149A34; -hud_element_set_flags = 0x80149AB0; -hud_element_clear_flags = 0x80149ADC; -hud_element_set_aux_cache = 0x8014A398; -clear_saved_variables = 0x8014A3D0; -clear_area_flags = 0x8014A440; -set_global_flag = 0x8014A500; -get_global_flag = 0x8014A56C; -clear_trigger_data = 0x8014A730; -init_trigger_list = 0x8014A7D8; -update_triggers = 0x8014A910; -load_map_bg = 0x8014AE20; -reset_background_settings = 0x8014AEA8; -set_background = 0x8014AED8; -set_background_size = 0x8014AF20; -appendGfx_background_texture = 0x8014AF70; -reset_ambient_sounds = 0x8014C2E0; -update_ambient_sounds = 0x8014C314; -clear_windows = 0x8014C4A0; -update_windows = 0x8014C4C4; -render_window_root = 0x8014CB74; -set_window_properties = 0x8014CD78; -set_window_update = 0x8014CF2C; -set_windows_visible = 0x8014CF74; -clear_sprite_shading_data = 0x8014D0F0; -init_sprite_shading_data = 0x8014D1A0; -sfx_reset_door_sounds = 0x8014E6B0; -sfx_clear_sounds = 0x8014E6C8; -sfx_clear_env_sounds = 0x8014E720; -sfx_update_env_sound_params = 0x8014E7E4; -sfx_set_reverb_mode = 0x8014E8AC; -sfx_get_reverb_mode = 0x8014E8D8; -sfx_stop_env_sounds = 0x8014E8E8; -sfx_stop_sound = 0x8014ED1C; -sfx_play_sound = 0x8014ED64; -sfx_play_sound_at_position = 0x8014EE0C; -bgm_reset_sequence_players = 0x8014F548; -bgm_reset_volume = 0x8014F5DC; -bgm_update_music_settings = 0x8014F5F8; -bgm_set_song = 0x8014F9C8; -bgm_init_music_players = 0x8014FCB8; -bgm_quiet_max_volume = 0x8014FD0C; -bgm_reset_max_volume = 0x8014FD20; -bgm_pop_battle_song = 0x8014FF1C; -bgm_push_battle_song = 0x8014FFA8; -bgm_set_battle_song = 0x8015003C; -gLastRenderTaskCount = 0x801508A0; -D_8014C248 = 0x801512F8; -gBackgroundTintModePtr = 0x80156350; -gWindows = 0x8015ECD0; -D_80164000 = 0x80164000; D_80197000 = 0x80197000; D_801A6000 = 0x801A6000; AuHeapBase = 0x801AA000; @@ -949,31 +815,16 @@ i_spy_ROM_START = 0xE2B440; i_spy_ROM_END = 0xE2C0F0; WorldTattleInteractionID = 0x802BDF60; -set_standard_shadow_scale = 0x80117A6C; -set_peach_shadow_scale = 0x80117BE4; -gCollisionStatus = 0x8015F4D0; -should_collider_allow_interact = 0x8014AD98; interact_inspect_setup = 0x802B70B4; appendGfx_interact_prompt = 0x802B71E8; -gCurrentHiddenPanels = 0x8015F4F8; ispy_notification_setup = 0x802b72c0; world_watt_sync_held_position = 0x802BE06C; -get_entity_type = 0x801158B4; appendGfx_speech_bubble = 0x802B71C8; interact_speech_setup = 0x802B70B4; appendGfx_pulse_stone_icon = 0x802B71D4; appendGfx_ispy_icon = 0x802b7000; pulse_stone_notification_setup = 0x802B7140; -sfx_play_sound_at_player = 0x8014ED88; world_lakilester_can_dismount = 0x802BD7DC; -copy_world_hud_element_ref_to_battle = 0x8014a364; -hud_element_set_tint = 0x80149fac; -get_worker = 0x8012884c; -create_worker_frontUI = 0x8012844c; -hud_element_draw_clipped = 0x80149858; -draw_number = 0x8012c8b0; -basic_hidden_window_update = 0x8014C624; -basic_window_update = 0x8014C524; action_update_idle = 0x802B6000; world_action_idle_ROM_START = 0xE2C0F0; @@ -1167,98 +1018,9 @@ EVS_WorldTwink_Update = 0x802BD20C; EVS_WorldTwink_UseAbility = 0x802BD228; EVS_WorldTwink_PutAway = 0x802BD244; -mdl_get_next_texture_address = 0x801229F4; -hud_element_draw_without_clipping = 0x80149890; -free_worker = 0x801287D0; -set_message_int_var = 0x8012AE48; -msg_printer_set_origin_pos = 0x8012AD18; -hud_element_set_scale = 0x80149CD0; -hud_element_set_alpha = 0x80149F60; -msg_get_printer_for_msg = 0x8012AB60; heap_spriteHead = 0x8034F800; -create_shading_palette = 0x8014D274; -imgfx_appendGfx_component = 0x80140020; -imgfx_update = 0x8013FB4C; -imgfx_release_instance = 0x8013F904; -imgfx_init = 0x8013F42C; -func_8013A4D0 = 0x8013F580; -gSpriteShadingProfile = 0x80156388; -imgfx_get_free_instances = 0x8013F7B4; -create_trigger = 0x8014A81C; -is_another_trigger_bound = 0x8014AD1C; -get_area_byte = 0x8014A700; -set_global_byte = 0x8014A5D0; -get_area_flag = 0x8014A6A0; -clear_global_flag = 0x8014A490; -get_global_byte = 0x8014A5E8; -set_area_flag = 0x8014A650; -clear_area_flag = 0x8014A5FC; -delete_trigger = 0x8014ACA4; -set_area_byte = 0x8014A6E8; -get_model_list_index_from_tree_index = 0x80120220; -set_main_pan_u = 0x80120E2C; -mdl_group_set_visibility = 0x801209D0; -mdl_make_local_vertex_copy = 0x80121374; -clone_model = 0x80120900; -set_custom_gfx = 0x80120EC4; -get_transform_group = 0x801203D0; -get_model_center_and_size = 0x801202FC; -gCurrentModels = 0x8015632C; -set_aux_pan_v = 0x80120E74; -get_transform_group_index = 0x801202A0; -set_main_pan_v = 0x80120E44; -mdl_make_transform_group = 0x8012058C; -set_tex_panner = 0x80120E24; -enable_transform_group = 0x801207E0; -set_custom_gfx_builders = 0x80120EE0; -set_mdl_custom_gfx_set = 0x80120E8C; gCurrentModelTreeNodeInfo = 0x8009A5D4; -disable_transform_group = 0x80120870; -set_aux_pan_u = 0x80120E5C; -play_model_animation_starting_from = 0x801253A8; -render_animated_model = 0x80124514; -get_animator_node_with_id = 0x801251A8; -create_model_animator = 0x801236C8; -get_animator_node_for_tree_index = 0x80125184; -get_animator_by_index = 0x801251F0; -delete_model_animator = 0x80123648; guMtxIdent = 0x80067420; -update_model_animator_with_transform = 0x80123C64; -play_model_animation = 0x80125358; -load_mesh_animator_tree = 0x80125684; -load_model_animator_tree = 0x801255BC; -set_message_text_var = 0x8012AD9C; -close_message = 0x8012AED0; -msg_printer_load_msg = 0x8012ACC8; -cancel_message = 0x8012AD68; -set_message_images = 0x8012AD8C; -draw_entity_model_E = 0x80127498; -clear_entity_model_flags = 0x80128134; -set_entity_model_render_command_list = 0x80127F8C; -draw_entity_model_A = 0x80126EF8; -set_entity_model_flags = 0x801280F8; -load_entity_model = 0x80125EF0; -free_entity_model_by_index = 0x8012800C; -exec_entity_model_commandlist = 0x80126114; -create_worker_backUI = 0x80128530; -ALT_load_entity_model = 0x80125FF4; -bgm_pop_song = 0x8014FE54; -snd_stop_tracking_env_sound_pos = 0x8014EB1C; -bgm_push_song = 0x8014FEA8; -sfx_play_sound_with_params = 0x8014EB68; -bgm_adjust_proximity = 0x8014FB04; -bgm_set_track_volumes = 0x8014FBBC; -gCurrentRoomDoorSounds = 0x80156368; -gCurrentDoorSounds = 0x801563A0; -play_ambient_sounds = 0x8014C418; -gMusicSettings = 0x8015EA70; -func_8014A964 = 0x8014FA14; -set_item_entity_flags = 0x801392B8; -make_item_entity_nodelay = 0x80136C04; -make_item_entity_at_player = 0x80136C70; -get_item_entity = 0x801360D8; -remove_item_entity_by_index = 0x80138B6C; -get_screen_overlay_params = 0x8013CE70; sprite_shading_profiles_ROM_START = 0x0031DF90; Entity_UltraBlockContent_Render = 0x0A000800; entity_model_SimpleSpring_gfx_ROM_END = 0x00E72BD0; @@ -1267,14 +1029,11 @@ entity_model_BlueSwitch_ROM_END = 0x00E6D750; Entity_HitYellowBlock_Mesh = 0x00000084; entity_model_Hammer3Block_ROM_END = 0x00E3B2A0; entity_model_SimpleSpring_anim_ROM_END = 0x00E74030; -create_entity = 0x80116AD4; Entity_SuperBlockContent_Render2 = 0x0A000380; Entity_Chest_RenderBox = 0x0A000EB8; -CreateEntityVarArgBuffer = 0x80161750; Entity_InertYellowBlock_Render = 0x0A0004E0; entity_model_HitYellowBlock_gfx_ROM_END = 0x00E4FC90; Entity_SaveBlock_RenderBlock = 0x0A0034F0; -entity_set_render_script = 0x80115DDC; entity_model_UltraBlockContent_ROM_END = 0x00E54160; Entity_HitFloatingYellowBlock_AnimationIdle = 0x0000022C; entity_model_PowBlock_ROM_START = 0x00E4C9A0; @@ -1303,7 +1062,6 @@ entity_model_ShatteringBrickBlock_ROM_END = 0x00E4B0C0; Entity_Chest_LidMtx = 0x0A000C48; Entity_HeartBlockContent_RenderHeartHappy = 0x0A000808; entity_model_GreenStompSwitch_ROM_END = 0x00E6B940; -set_item_entity_position = 0x8013934C; Entity_HeartBlockContent_RenderHeartSleeping = 0x0A000700; entity_model_RedBlock_ROM_END = 0x00E45C50; Entity_SaveBlock_RenderContent = 0x0A0034E0; @@ -1323,7 +1081,6 @@ entity_model_Chest_ROM_END = 0x00E6E620; entity_model_RedBlock_ROM_START = 0x00E451A0; entity_model_BrickBlock_ROM_START = 0x00E46C30; entity_model_HitFloatingYellowBlock_anim_ROM_END = 0x00E51600; -mdl_draw_hidden_panel_surface = 0x8012293C; entity_model_InertYellowBlock_ROM_END = 0x00E4B5C0; Entity_WoodenCrate_Render = 0x0A004338; entity_model_ShatteringHammer3Block_ROM_END = 0x00E446F0; @@ -1355,7 +1112,6 @@ Entity_BlueSwitch_Render = 0x0A000EF8; entity_model_PushBlock_ROM_START = 0x00E468E0; entity_model_BlueSwitch_ROM_START = 0x00E6C840; Entity_RedBlock_Render = 0x0A000A90; -is_block_on_ground = 0x80117D30; Entity_RedSwitch_Render = 0x0A000EE8; entity_model_HitFloatingYellowBlock_gfx_ROM_END = 0x00E51370; entity_model_HitYellowBlock_anim_ROM_END = 0x00E4FF30; @@ -1364,7 +1120,6 @@ entity_model_HitFloatingYellowBlock_gfx_ROM_START = 0x00E4FF30; Entity_BlueWarpPipe_RenderBase = 0x0A000680; entity_model_ScriptSpring_anim_ROM_END = 0x00E71400; Entity_ShatteringHammer2Block_FragmentsRender = 0x0A0031B0; -exec_entity_commandlist = 0x80114F78; entity_model_HeartBlock_ROM_END = 0x00E4C9A0; Gfx_HiddenPanel_Render2 = 0x0A0002A0; entity_model_Hammer1Block_ROM_END = 0x00E3A8B0; @@ -1381,7 +1136,6 @@ Entity_ShatteringBrickBlock_FragmentsMatrices = 0x0A002318; Entity_Hammer1Block_Render = 0x0A0004F0; entity_model_UltraBlock_ROM_END = 0x00E4E870; entity_model_YellowBlock_ROM_START = 0x00E446F0; -mdl_project_tex_coords = 0x8012153C; Gfx_HiddenPanel_RenderHole = 0x0A000230; entity_model_HeartBlockContent_ROM_START = 0x00E52CC0; D_0A000260_E4A900 = 0x0A000260; @@ -1398,7 +1152,6 @@ Entity_ShatteringHammer1Block_FragmentsRender = 0x0A0031E0; Gfx_HiddenPanel_RenderTop = 0x0A000180; entity_model_ScriptSpring_anim_ROM_START = 0x00E6FFA0; entity_model_HiddenPanel_ROM_START = 0x00E5FA20; -set_entity_commandlist = 0x80114DD0; Entity_UltraBlock_Render = 0x0A0008C8; Entity_HitFloatingYellowBlock_Mesh = 0x00000084; entity_model_RedSwitch_ROM_END = 0x00E6C840; @@ -1407,10 +1160,94 @@ Entity_HitYellowBlock_AnimationIdle = 0x0000023C; Entity_ScriptSpring_Mesh = 0x000001B8; Entity_SimpleSpring_AnimIdle = 0x0000131C; Entity_SaveBlock_Mtx = 0x0A003260; -entity_start_script = 0x80115888; D_0A000200_E4A8A0 = 0x0A000200; entity_model_RedSwitch_ROM_START = 0x00E6B940; entity_model_SimpleSpring_gfx_ROM_START = 0x00E71400; Entity_WoodenCrate_FragmentsRender = 0x0A004350; entity_model_ShatteringHammer2Block_ROM_START = 0x00E3E4F0; entity_model_SaveBlock_ROM_START = 0x00E54160; + +D_802E7790 = 0x802E7790; +D_802E7E50 = 0x802E7E50; +D_802E7990 = 0x802E7990; +D_802E7D10 = 0x802E7D10; +D_802E7910 = 0x802E7910; +D_802E7E30 = 0x802E7E30; +D_8015B864 = 0x8015B864; +D_13B98 = 0x00013B98; +D_802E673C = 0x802E673C; +D_802E7E10 = 0x802E7E10; +D_802E7810 = 0x802E7810; +D_802E7BD0 = 0x802E7BD0; +D_802E7A90 = 0x802E7A90; +D_15A60 = 0x00015A60; +D_802E670C = 0x802E670C; +D_802E676C = 0x802E676C; +D_8015ACA0 = 0x8015ACA0; +D_802E66F4 = 0x802E66F4; +D_802E7890 = 0x802E7890; +D_802E7710 = 0x802E7710; +D_1D4720 = 0x1D4720; +entity_default_ROM_START = 0x00E343B0; +BattleEntityHeapBottom = 0x801A7000; +entity_jan_iwa_ROM_START = 0x00E365B0; +entity_sbk_omo_ROM_END = 0x00E3A3B0; +ClearRenderTaskLists = 0x802B7E00; +entity_default_ROM_END = 0x00E365B0; +entity_sbk_omo_ROM_START = 0x00E385D0; +TextureHeap = 0x8028E000; +entity_jan_iwa_ROM_END = 0x00E385D0; +flip_card_1_header = 0x000C0490; +guTranslate = 0x80067800; +horizontal_pipe_curl_header = 0x0001E830; +shock_header = 0x00014358; +tutankoopa_swirl_2_header = 0x000A1820; +flutter_down_header = 0x000314E0; +tutankoopa_swirl_1_header = 0x000ACDE8; +unused_1_header = 0x0005B7A8; +tutankoopa_gather_header = 0x00096258; +imgfx_data_ROM_START = 0x00253C00; +vertical_pipe_curl_header = 0x0001A858; +flip_card_2_header = 0x000C49B8; +flip_card_3_header = 0x000C6150; +shuffle_cards_header = 0x000BBF68; +guScale = 0x800676E0; +unfurl_header = 0x00033498; +spirit_capture_header = 0x00039228; +unused_2_header = 0x0007CF10; +unused_3_header = 0x00086490; +cymbal_crush_header = 0x000CA380; +startle_header = 0x00029458; +get_in_bed_header = 0x00038988; +shiver_header = 0x00018200; +MsgCharImgNormal = 0x802ECE90; +D_JP_802F0FA0 = 0x802F0FA0; +D_JP_802EB928 = 0x802EB928; +charset_ROM_START = 0x10F330; +MsgCharsets = 0x802E66F4; +D_802F4560 = 0x802F25A0; +ui_msg_background_png = 0x802E7E70; +ui_msg_palettes = 0x802E7510; +ui_msg_arrow_png = 0x802E7090; +ui_msg_bubble_right_png = 0x802E6C90; +ui_msg_bubble_left_png = 0x802E6790; +ui_msg_bubble_mid_png = 0x802E6B90; +ui_msg_rewind_arrow_pal = 0x802E8790; +ui_msg_rewind_arrow_png = 0x802E8670; +ui_msg_star_png = 0x802E87B0; +ui_msg_star_silhouette_png = 0x802E89F0; +charset_standard_pal_OFFSET = 0xDC08; +charset_credits_pal_OFFSET = 0xFBF0; +charset_JP_5710_OFFSET = 0x5710; +charset_JP_62E0_OFFSET = 0x62E0; +charset_JP_97D0_OFFSET = 0x97D0; +charset_JP_9C30_OFFSET = 0x9C30; +charset_JP_D470_OFFSET = 0xD470; +MsgCharImgJP_5710 = 0x802F2AA0; +MsgCharImgJP_9C30 = 0x802E9230; +MsgCharImgJP_D470 = 0x802E8A90; +charset_title_OFFSET = 0xE108; +charset_subtitle_OFFSET = 0xF068; +charset_standard_OFFSET = 0x0; +MsgCharImgTitle = 0x802F3670; +MsgCharImgSubtitle = 0x802ECA30; diff --git a/ver/pal/asm/nonmatchings/msg/appendGfx_message.s b/ver/pal/asm/nonmatchings/msg_draw/appendGfx_message.s similarity index 100% rename from ver/pal/asm/nonmatchings/msg/appendGfx_message.s rename to ver/pal/asm/nonmatchings/msg_draw/appendGfx_message.s From a5ae9a2dde1c2db8930a31775eeb97ab1002e1ce Mon Sep 17 00:00:00 2001 From: AltoXorg <56553686+Alto1772@users.noreply.github.com> Date: Tue, 19 Dec 2023 10:34:52 +0800 Subject: [PATCH 08/18] identify all gu functions --- ver/jp/asm/os/guMtxIdent.s | 2 +- ver/jp/asm/os/guScale.s | 2 +- ver/jp/asm/os/guTranslate.s | 2 +- ver/jp/symbol_addrs.txt | 6 ++-- ver/jp/undefined_syms.txt | 66 ------------------------------------- 5 files changed, 6 insertions(+), 72 deletions(-) diff --git a/ver/jp/asm/os/guMtxIdent.s b/ver/jp/asm/os/guMtxIdent.s index da056d30a58..67d7dd7690b 100644 --- a/ver/jp/asm/os/guMtxIdent.s +++ b/ver/jp/asm/os/guMtxIdent.s @@ -10,7 +10,7 @@ /* Generated by spimdisasm 1.11.1 */ # Handwritten function -glabel func_JP_80067420 +glabel guMtxIdent /* 42820 80067420 20080001 */ addi $t0, $zero, 0x1 # handwritten instruction /* 42824 80067424 00084C00 */ sll $t1, $t0, 16 /* 42828 80067428 AC890000 */ sw $t1, 0x0($a0) diff --git a/ver/jp/asm/os/guScale.s b/ver/jp/asm/os/guScale.s index 684153f9631..f369fc0a6c8 100644 --- a/ver/jp/asm/os/guScale.s +++ b/ver/jp/asm/os/guScale.s @@ -9,7 +9,7 @@ /* Generated by spimdisasm 1.11.1 */ -glabel func_JP_800676E0 +glabel guScale /* 42AE0 800676E0 3C014780 */ lui $at, (0x47800000 >> 16) /* 42AE4 800676E4 44812000 */ mtc1 $at, $f4 /* 42AE8 800676E8 44853000 */ mtc1 $a1, $f6 diff --git a/ver/jp/asm/os/guTranslate.s b/ver/jp/asm/os/guTranslate.s index be11a5b2fb1..7cd5009d44c 100644 --- a/ver/jp/asm/os/guTranslate.s +++ b/ver/jp/asm/os/guTranslate.s @@ -9,7 +9,7 @@ /* Generated by spimdisasm 1.11.1 */ -glabel func_JP_80067800 +glabel guTranslate /* 42C00 80067800 3C014780 */ lui $at, (0x47800000 >> 16) /* 42C04 80067804 44812000 */ mtc1 $at, $f4 /* 42C08 80067808 44853000 */ mtc1 $a1, $f6 diff --git a/ver/jp/symbol_addrs.txt b/ver/jp/symbol_addrs.txt index 5eb99eb5314..74dc6cc8aaa 100644 --- a/ver/jp/symbol_addrs.txt +++ b/ver/jp/symbol_addrs.txt @@ -843,7 +843,7 @@ free_npc = 0x8003868C; // type:func rom:0x13A8C fx_quizmo_assistant = 0x80072870; // type:func rom:0x4DC70 func_800EF300 = 0x800EF294; // type:func rom:0x88744 fx_flame = 0x80070470; // type:func rom:0x4B870 -func_JP_80067420 = 0x80067420; // type:func rom:0x42820 +guMtxIdent = 0x80067420; // type:func rom:0x42820 suggest_player_anim_allow_backward = 0x800DFEDC; // type:func rom:0x7938C gCollisionData = 0x800B42C0; fx_tattle_window = 0x800720F0; // type:func rom:0x4D4F0 @@ -2029,7 +2029,7 @@ get_time_freeze_mode = 0x8002715C; // type:func rom:0x255C snd_ambient_play = 0x80055114; // type:func rom:0x30514 func_800561A4 = 0x80055E54; // type:func rom:0x31254 snd_load_ambient = 0x800550F8; // type:func rom:0x304F8 -func_JP_80067800 = 0x80067800; // type:func rom:0x42C00 +guTranslate = 0x80067800; // type:func rom:0x42C00 gEncounterState = 0x8009A5E0; test_ray_colliders = 0x8005C980; // type:func rom:0x37D80 gCurrentDoorSounds = 0x801563A0; @@ -2044,7 +2044,7 @@ snd_song_set_track_volumes = 0x80055A8C; // type:func rom:0x30E8C gWindows = 0x8015ECD0; gPlayerStatusPtr = 0x800F7CC0; // rom:0x91170 guOrtho = 0x80063A10; // type:func rom:0x3EE10 -func_JP_800676E0 = 0x800676E0; // type:func rom:0x42AE0 +guScale = 0x800676E0; // type:func rom:0x42AE0 bgm_set_proximity_mix_far = 0x80055CD8; // type:func rom:0x310D8 func_80055BB8 = 0x80055868; // type:func rom:0x30C68 _heap_malloc = 0x8002902C; // type:func rom:0x442C diff --git a/ver/jp/undefined_syms.txt b/ver/jp/undefined_syms.txt index 50eeb688fcb..3620ff988e3 100644 --- a/ver/jp/undefined_syms.txt +++ b/ver/jp/undefined_syms.txt @@ -74,38 +74,6 @@ shim_create_audio_system_obfuscated = 0x802B2000; shim_load_engine_data_obfuscated = 0x802B203C; shim_general_heap_create_obfuscated = 0x802B2078; shim_battle_heap_create_obfuscated = 0x802B20B4; -ui_msg_frame_a_1_1_png = 0x802E7110; -ui_msg_frame_a_1_2_png = 0x802E7130; -ui_msg_frame_a_1_3_png = 0x802E7150; -ui_msg_frame_a_1_4_png = 0x802E7170; -ui_msg_frame_a_1_5_png = 0x802E7190; -ui_msg_frame_a_2_1_png = 0x802E71B0; -ui_msg_frame_a_2_5_png = 0x802E71D0; -ui_msg_frame_a_3_1_png = 0x802E71F0; -ui_msg_frame_a_3_5_png = 0x802E7210; -ui_msg_frame_a_4_1_png = 0x802E7230; -ui_msg_frame_a_4_5_png = 0x802E7250; -ui_msg_frame_a_5_1_png = 0x802E7270; -ui_msg_frame_a_5_2_png = 0x802E7290; -ui_msg_frame_a_5_3_png = 0x802E72B0; -ui_msg_frame_a_5_4_png = 0x802E72D0; -ui_msg_frame_a_5_5_png = 0x802E72F0; -ui_msg_frame_b_1_1_png = 0x802E7310; -ui_msg_frame_b_1_2_png = 0x802E7330; -ui_msg_frame_b_1_3_png = 0x802E7350; -ui_msg_frame_b_1_4_png = 0x802E7370; -ui_msg_frame_b_1_5_png = 0x802E7390; -ui_msg_frame_b_2_1_png = 0x802E73B0; -ui_msg_frame_b_2_5_png = 0x802E73D0; -ui_msg_frame_b_3_1_png = 0x802E73F0; -ui_msg_frame_b_3_5_png = 0x802E7410; -ui_msg_frame_b_4_1_png = 0x802E7430; -ui_msg_frame_b_4_5_png = 0x802E7450; -ui_msg_frame_b_5_1_png = 0x802E7470; -ui_msg_frame_b_5_2_png = 0x802E7490; -ui_msg_frame_b_5_3_png = 0x802E74B0; -ui_msg_frame_b_5_4_png = 0x802E74D0; -ui_msg_frame_b_5_5_png = 0x802E74F0; heap_generalHead = 0x802FB800; gFrameBuf0 = 0x8038F800; gFrameBuf1 = 0x803B5000; @@ -1020,7 +988,6 @@ EVS_WorldTwink_PutAway = 0x802BD244; heap_spriteHead = 0x8034F800; gCurrentModelTreeNodeInfo = 0x8009A5D4; -guMtxIdent = 0x80067420; sprite_shading_profiles_ROM_START = 0x0031DF90; Entity_UltraBlockContent_Render = 0x0A000800; entity_model_SimpleSpring_gfx_ROM_END = 0x00E72BD0; @@ -1198,7 +1165,6 @@ entity_sbk_omo_ROM_START = 0x00E385D0; TextureHeap = 0x8028E000; entity_jan_iwa_ROM_END = 0x00E385D0; flip_card_1_header = 0x000C0490; -guTranslate = 0x80067800; horizontal_pipe_curl_header = 0x0001E830; shock_header = 0x00014358; tutankoopa_swirl_2_header = 0x000A1820; @@ -1211,7 +1177,6 @@ vertical_pipe_curl_header = 0x0001A858; flip_card_2_header = 0x000C49B8; flip_card_3_header = 0x000C6150; shuffle_cards_header = 0x000BBF68; -guScale = 0x800676E0; unfurl_header = 0x00033498; spirit_capture_header = 0x00039228; unused_2_header = 0x0007CF10; @@ -1220,34 +1185,3 @@ cymbal_crush_header = 0x000CA380; startle_header = 0x00029458; get_in_bed_header = 0x00038988; shiver_header = 0x00018200; -MsgCharImgNormal = 0x802ECE90; -D_JP_802F0FA0 = 0x802F0FA0; -D_JP_802EB928 = 0x802EB928; -charset_ROM_START = 0x10F330; -MsgCharsets = 0x802E66F4; -D_802F4560 = 0x802F25A0; -ui_msg_background_png = 0x802E7E70; -ui_msg_palettes = 0x802E7510; -ui_msg_arrow_png = 0x802E7090; -ui_msg_bubble_right_png = 0x802E6C90; -ui_msg_bubble_left_png = 0x802E6790; -ui_msg_bubble_mid_png = 0x802E6B90; -ui_msg_rewind_arrow_pal = 0x802E8790; -ui_msg_rewind_arrow_png = 0x802E8670; -ui_msg_star_png = 0x802E87B0; -ui_msg_star_silhouette_png = 0x802E89F0; -charset_standard_pal_OFFSET = 0xDC08; -charset_credits_pal_OFFSET = 0xFBF0; -charset_JP_5710_OFFSET = 0x5710; -charset_JP_62E0_OFFSET = 0x62E0; -charset_JP_97D0_OFFSET = 0x97D0; -charset_JP_9C30_OFFSET = 0x9C30; -charset_JP_D470_OFFSET = 0xD470; -MsgCharImgJP_5710 = 0x802F2AA0; -MsgCharImgJP_9C30 = 0x802E9230; -MsgCharImgJP_D470 = 0x802E8A90; -charset_title_OFFSET = 0xE108; -charset_subtitle_OFFSET = 0xF068; -charset_standard_OFFSET = 0x0; -MsgCharImgTitle = 0x802F3670; -MsgCharImgSubtitle = 0x802ECA30; From 4aedd74b0412bf677d4636897c9f49e95d37241d Mon Sep 17 00:00:00 2001 From: AltoXorg <56553686+Alto1772@users.noreply.github.com> Date: Tue, 19 Dec 2023 17:34:56 +0800 Subject: [PATCH 09/18] font_width + charset --- include/enums.h | 368 +++++++++++++ src/item_entity.c | 2 +- src/msg.c | 61 +- src/msg_data.c | 611 ++++++++++++++++++++- src/msg_img.c | 12 + tools/splat_ext/pm_charset.py | 29 +- tools/splat_ext/pm_charset_palettes.py | 21 +- ver/jp/asm/nonmatchings/msg/dma_load_msg.s | 38 -- ver/jp/splat.yaml | 164 +++++- ver/jp/symbol_addrs.txt | 77 +++ 10 files changed, 1259 insertions(+), 124 deletions(-) delete mode 100644 ver/jp/asm/nonmatchings/msg/dma_load_msg.s diff --git a/include/enums.h b/include/enums.h index c8315118c03..a08c9f8480a 100644 --- a/include/enums.h +++ b/include/enums.h @@ -5446,6 +5446,373 @@ enum MsgPalettes { }; enum MsgChars { +#if VERSION_JP + // Variant 0 - Hiragana, Katakana, Numeric, Fullwidth Symbols + MSG_CHAR_HIRAGANA_A = 0x00, + MSG_CHAR_HIRAGANA_I = 0x01, + MSG_CHAR_HIRAGANA_U = 0x02, + MSG_CHAR_HIRAGANA_E = 0x03, + MSG_CHAR_HIRAGANA_O = 0x04, + MSG_CHAR_HIRAGANA_KA = 0x05, + MSG_CHAR_HIRAGANA_KI = 0x06, + MSG_CHAR_HIRAGANA_KU = 0x07, + MSG_CHAR_HIRAGANA_KE = 0x08, + MSG_CHAR_HIRAGANA_KO = 0x09, + MSG_CHAR_HIRAGANA_SA = 0x0A, + MSG_CHAR_HIRAGANA_SI = 0x0B, + MSG_CHAR_HIRAGANA_SU = 0x0C, + MSG_CHAR_HIRAGANA_SE = 0x0D, + MSG_CHAR_HIRAGANA_SO = 0x0E, + MSG_CHAR_HIRAGANA_TA = 0x0F, + MSG_CHAR_HIRAGANA_TI = 0x10, + MSG_CHAR_HIRAGANA_TU = 0x11, + MSG_CHAR_HIRAGANA_TE = 0x12, + MSG_CHAR_HIRAGANA_TO = 0x13, + MSG_CHAR_HIRAGANA_NA = 0x14, + MSG_CHAR_HIRAGANA_NI = 0x15, + MSG_CHAR_HIRAGANA_NU = 0x16, + MSG_CHAR_HIRAGANA_NE = 0x17, + MSG_CHAR_HIRAGANA_NO = 0x18, + MSG_CHAR_HIRAGANA_HA = 0x19, + MSG_CHAR_HIRAGANA_HI = 0x1A, + MSG_CHAR_HIRAGANA_HU = 0x1B, + MSG_CHAR_HIRAGANA_HE = 0x1C, + MSG_CHAR_HIRAGANA_HO = 0x1D, + MSG_CHAR_HIRAGANA_MA = 0x1E, + MSG_CHAR_HIRAGANA_MI = 0x1F, + MSG_CHAR_HIRAGANA_MU = 0x20, + MSG_CHAR_HIRAGANA_ME = 0x21, + MSG_CHAR_HIRAGANA_MO = 0x22, + MSG_CHAR_HIRAGANA_YA = 0x23, + MSG_CHAR_HIRAGANA_YU = 0x24, + MSG_CHAR_HIRAGANA_YO = 0x25, + MSG_CHAR_HIRAGANA_RA = 0x26, + MSG_CHAR_HIRAGANA_RI = 0x27, + MSG_CHAR_HIRAGANA_RU = 0x28, + MSG_CHAR_HIRAGANA_RE = 0x29, + MSG_CHAR_HIRAGANA_RO = 0x2A, + MSG_CHAR_HIRAGANA_WA = 0x2B, + MSG_CHAR_HIRAGANA_WO = 0x2C, + MSG_CHAR_HIRAGANA_N = 0x2D, + MSG_CHAR_HIRAGANA_VU = 0x2E, + MSG_CHAR_HIRAGANA_GA = 0x2F, + MSG_CHAR_HIRAGANA_GI = 0x30, + MSG_CHAR_HIRAGANA_GU = 0x31, + MSG_CHAR_HIRAGANA_GE = 0x32, + MSG_CHAR_HIRAGANA_GO = 0x33, + MSG_CHAR_HIRAGANA_ZA = 0x34, + MSG_CHAR_HIRAGANA_ZI = 0x35, + MSG_CHAR_HIRAGANA_ZU = 0x36, + MSG_CHAR_HIRAGANA_ZE = 0x37, + MSG_CHAR_HIRAGANA_ZO = 0x38, + MSG_CHAR_HIRAGANA_DA = 0x39, + MSG_CHAR_HIRAGANA_DI = 0x3A, + MSG_CHAR_HIRAGANA_DU = 0x3B, + MSG_CHAR_HIRAGANA_DE = 0x3C, + MSG_CHAR_HIRAGANA_DO = 0x3D, + MSG_CHAR_HIRAGANA_BA = 0x3E, + MSG_CHAR_HIRAGANA_BI = 0x3F, + MSG_CHAR_HIRAGANA_BU = 0x40, + MSG_CHAR_HIRAGANA_BE = 0x41, + MSG_CHAR_HIRAGANA_BO = 0x42, + MSG_CHAR_HIRAGANA_PA = 0x43, + MSG_CHAR_HIRAGANA_PI = 0x44, + MSG_CHAR_HIRAGANA_PU = 0x45, + MSG_CHAR_HIRAGANA_PE = 0x46, + MSG_CHAR_HIRAGANA_PO = 0x47, + MSG_CHAR_HIRAGANA_SMALL_A = 0x48, + MSG_CHAR_HIRAGANA_SMALL_I = 0x49, + MSG_CHAR_HIRAGANA_SMALL_U = 0x4A, + MSG_CHAR_HIRAGANA_SMALL_E = 0x4B, + MSG_CHAR_HIRAGANA_SMALL_O = 0x4C, + MSG_CHAR_HIRAGANA_SMALL_TU = 0x4D, + MSG_CHAR_HIRAGANA_SMALL_YA = 0x4E, + MSG_CHAR_HIRAGANA_SMALL_YU = 0x4F, + MSG_CHAR_HIRAGANA_SMALL_YO = 0x50, + MSG_CHAR_KATAKANA_A = 0x51, + MSG_CHAR_KATAKANA_I = 0x52, + MSG_CHAR_KATAKANA_U = 0x53, + MSG_CHAR_KATAKANA_E = 0x54, + MSG_CHAR_KATAKANA_O = 0x55, + MSG_CHAR_KATAKANA_KA = 0x56, + MSG_CHAR_KATAKANA_KI = 0x57, + MSG_CHAR_KATAKANA_KU = 0x58, + MSG_CHAR_KATAKANA_KE = 0x59, + MSG_CHAR_KATAKANA_KO = 0x5A, + MSG_CHAR_KATAKANA_SA = 0x5B, + MSG_CHAR_KATAKANA_SI = 0x5C, + MSG_CHAR_KATAKANA_SU = 0x5D, + MSG_CHAR_KATAKANA_SE = 0x5E, + MSG_CHAR_KATAKANA_SO = 0x5F, + MSG_CHAR_KATAKANA_TA = 0x60, + MSG_CHAR_KATAKANA_TI = 0x61, + MSG_CHAR_KATAKANA_TU = 0x62, + MSG_CHAR_KATAKANA_TE = 0x63, + MSG_CHAR_KATAKANA_TO = 0x64, + MSG_CHAR_KATAKANA_NA = 0x65, + MSG_CHAR_KATAKANA_NI = 0x66, + MSG_CHAR_KATAKANA_NU = 0x67, + MSG_CHAR_KATAKANA_NE = 0x68, + MSG_CHAR_KATAKANA_NO = 0x69, + MSG_CHAR_KATAKANA_HA = 0x6A, + MSG_CHAR_KATAKANA_HI = 0x6B, + MSG_CHAR_KATAKANA_HU = 0x6C, + MSG_CHAR_KATAKANA_HE = 0x6D, + MSG_CHAR_KATAKANA_HO = 0x6E, + MSG_CHAR_KATAKANA_MA = 0x6F, + MSG_CHAR_KATAKANA_MI = 0x70, + MSG_CHAR_KATAKANA_MU = 0x71, + MSG_CHAR_KATAKANA_ME = 0x72, + MSG_CHAR_KATAKANA_MO = 0x73, + MSG_CHAR_KATAKANA_YA = 0x74, + MSG_CHAR_KATAKANA_YU = 0x75, + MSG_CHAR_KATAKANA_YO = 0x76, + MSG_CHAR_KATAKANA_RA = 0x77, + MSG_CHAR_KATAKANA_RI = 0x78, + MSG_CHAR_KATAKANA_RU = 0x79, + MSG_CHAR_KATAKANA_RE = 0x7A, + MSG_CHAR_KATAKANA_RO = 0x7B, + MSG_CHAR_KATAKANA_WA = 0x7C, + MSG_CHAR_KATAKANA_WO = 0x7D, + MSG_CHAR_KATAKANA_N = 0x7E, + MSG_CHAR_KATAKANA_VU = 0x7F, + MSG_CHAR_KATAKANA_GA = 0x80, + MSG_CHAR_KATAKANA_GI = 0x81, + MSG_CHAR_KATAKANA_GU = 0x82, + MSG_CHAR_KATAKANA_GE = 0x83, + MSG_CHAR_KATAKANA_GO = 0x84, + MSG_CHAR_KATAKANA_ZA = 0x85, + MSG_CHAR_KATAKANA_ZI = 0x86, + MSG_CHAR_KATAKANA_ZU = 0x87, + MSG_CHAR_KATAKANA_ZE = 0x88, + MSG_CHAR_KATAKANA_ZO = 0x89, + MSG_CHAR_KATAKANA_DA = 0x8A, + MSG_CHAR_KATAKANA_DI = 0x8B, + MSG_CHAR_KATAKANA_DU = 0x8C, + MSG_CHAR_KATAKANA_DE = 0x8D, + MSG_CHAR_KATAKANA_DO = 0x8E, + MSG_CHAR_KATAKANA_BA = 0x8F, + MSG_CHAR_KATAKANA_BI = 0x90, + MSG_CHAR_KATAKANA_BU = 0x91, + MSG_CHAR_KATAKANA_BE = 0x92, + MSG_CHAR_KATAKANA_BO = 0x93, + MSG_CHAR_KATAKANA_PA = 0x94, + MSG_CHAR_KATAKANA_PI = 0x95, + MSG_CHAR_KATAKANA_PU = 0x96, + MSG_CHAR_KATAKANA_PE = 0x97, + MSG_CHAR_KATAKANA_PO = 0x98, + MSG_CHAR_KATAKANA_SMALL_A = 0x99, + MSG_CHAR_KATAKANA_SMALL_I = 0x9A, + MSG_CHAR_KATAKANA_SMALL_U = 0x9B, + MSG_CHAR_KATAKANA_SMALL_E = 0x9C, + MSG_CHAR_KATAKANA_SMALL_O = 0x9D, + MSG_CHAR_KATAKANA_SMALL_TU = 0x9E, + MSG_CHAR_KATAKANA_SMALL_YA = 0x9F, + MSG_CHAR_KATAKANA_SMALL_YU = 0xA0, + MSG_CHAR_KATAKANA_SMALL_YO = 0xA1, + MSG_CHAR_PROLONGED_SOUND = 0xA2, + MSG_CHAR_TILDE = 0xA3, + MSG_CHAR_LONGDASH_0 = 0xA4, + MSG_CHAR_LONGDASH_1 = 0xA5, + MSG_CHAR_LONGDASH_2 = 0xA6, + MSG_CHAR_DIGIT_0 = 0xA7, + MSG_CHAR_DIGIT_1 = 0xA8, + MSG_CHAR_DIGIT_2 = 0xA9, + MSG_CHAR_DIGIT_3 = 0xAA, + MSG_CHAR_DIGIT_4 = 0xAB, + MSG_CHAR_DIGIT_5 = 0xAC, + MSG_CHAR_DIGIT_6 = 0xAD, + MSG_CHAR_DIGIT_7 = 0xAE, + MSG_CHAR_DIGIT_8 = 0xAF, + MSG_CHAR_DIGIT_9 = 0xB0, + MSG_CHAR_UP = 0xB1, + MSG_CHAR_DOWN = 0xB2, + MSG_CHAR_LEFT = 0xB3, + MSG_CHAR_RIGHT = 0xB4, + MSG_CHAR_EXCLAMATION = 0xB5, + MSG_CHAR_QUESTION = 0xB6, + MSG_CHAR_PLUS = 0xB7, + MSG_CHAR_MINUS = 0xB8, + MSG_CHAR_SLASH = 0xB9, + MSG_CHAR_PERIOD = 0xBA, + MSG_CHAR_AND = 0xBB, + MSG_CHAR_HASH = 0xBC, + MSG_CHAR_HEART = 0xBD, + MSG_CHAR_STAR = 0xBE, + MSG_CHAR_LPAREN = 0xBF, + MSG_CHAR_RPAREN = 0xC0, + MSG_CHAR_TLBRACKET = 0xC1, + MSG_CHAR_BRBRACKET = 0xC2, + MSG_CHAR_MIDDLE_DOT = 0xC3, + MSG_CHAR_HIRAGANA_SMALL_N = 0xC4, + MSG_CHAR_KATAKANA_SMALL_N = 0xC5, + MSG_CHAR_KANJI_C6 = 0xC6, + MSG_CHAR_KANJI_C7 = 0xC7, + + // Variant 1 - Latin Alphabet + MSG_CHAR_UPPER_A = 0x00, + MSG_CHAR_UPPER_B = 0x01, + MSG_CHAR_UPPER_C = 0x02, + MSG_CHAR_UPPER_D = 0x03, + MSG_CHAR_UPPER_E = 0x04, + MSG_CHAR_UPPER_F = 0x05, + MSG_CHAR_UPPER_G = 0x06, + MSG_CHAR_UPPER_H = 0x07, + MSG_CHAR_UPPER_I = 0x08, + MSG_CHAR_UPPER_J = 0x09, + MSG_CHAR_UPPER_K = 0x0A, + MSG_CHAR_UPPER_L = 0x0B, + MSG_CHAR_UPPER_M = 0x0C, + MSG_CHAR_UPPER_N = 0x0D, + MSG_CHAR_UPPER_O = 0x0E, + MSG_CHAR_UPPER_P = 0x0F, + MSG_CHAR_UPPER_Q = 0x10, + MSG_CHAR_UPPER_R = 0x11, + MSG_CHAR_UPPER_S = 0x12, + MSG_CHAR_UPPER_T = 0x13, + MSG_CHAR_UPPER_U = 0x14, + MSG_CHAR_UPPER_V = 0x15, + MSG_CHAR_UPPER_W = 0x16, + MSG_CHAR_UPPER_X = 0x17, + MSG_CHAR_UPPER_Y = 0x18, + MSG_CHAR_UPPER_Z = 0x19, + MSG_CHAR_LOWER_Z = 0x1A, + + // Variant 2 - Kanji (Chinese) characters + MSG_CHAR_KANJI_00 = 0x00, + MSG_CHAR_KANJI_01 = 0x01, + MSG_CHAR_KANJI_02 = 0x02, + MSG_CHAR_KANJI_03 = 0x03, + MSG_CHAR_KANJI_04 = 0x04, + MSG_CHAR_KANJI_05 = 0x05, + MSG_CHAR_KANJI_06 = 0x06, + MSG_CHAR_KANJI_07 = 0x07, + MSG_CHAR_KANJI_08 = 0x08, + MSG_CHAR_KANJI_09 = 0x09, + MSG_CHAR_KANJI_0A = 0x0A, + MSG_CHAR_KANJI_0B = 0x0B, + MSG_CHAR_KANJI_0C = 0x0C, + MSG_CHAR_KANJI_0D = 0x0D, + MSG_CHAR_KANJI_0E = 0x0E, + MSG_CHAR_KANJI_0F = 0x0F, + MSG_CHAR_KANJI_10 = 0x10, + MSG_CHAR_KANJI_11 = 0x11, + MSG_CHAR_KANJI_12 = 0x12, + MSG_CHAR_KANJI_13 = 0x13, + MSG_CHAR_KANJI_14 = 0x14, + MSG_CHAR_KANJI_15 = 0x15, + MSG_CHAR_KANJI_16 = 0x16, + MSG_CHAR_KANJI_17 = 0x17, + MSG_CHAR_KANJI_18 = 0x18, + MSG_CHAR_KANJI_19 = 0x19, + MSG_CHAR_KANJI_1A = 0x1A, + MSG_CHAR_KANJI_1B = 0x1B, + MSG_CHAR_KANJI_1C = 0x1C, + MSG_CHAR_KANJI_1D = 0x1D, + MSG_CHAR_KANJI_1E = 0x1E, + MSG_CHAR_KANJI_1F = 0x1F, + MSG_CHAR_KANJI_20 = 0x20, + MSG_CHAR_KANJI_21 = 0x21, + MSG_CHAR_KANJI_22 = 0x22, + MSG_CHAR_KANJI_23 = 0x23, + MSG_CHAR_KANJI_24 = 0x24, + MSG_CHAR_KANJI_25 = 0x25, + MSG_CHAR_KANJI_26 = 0x26, + MSG_CHAR_KANJI_27 = 0x27, + MSG_CHAR_KANJI_28 = 0x28, + MSG_CHAR_KANJI_29 = 0x29, + MSG_CHAR_KANJI_2A = 0x2A, + MSG_CHAR_KANJI_2B = 0x2B, + MSG_CHAR_KANJI_2C = 0x2C, + MSG_CHAR_KANJI_2D = 0x2D, + MSG_CHAR_KANJI_2E = 0x2E, + MSG_CHAR_KANJI_2F = 0x2F, + MSG_CHAR_KANJI_30 = 0x30, + MSG_CHAR_KANJI_31 = 0x31, + MSG_CHAR_KANJI_32 = 0x32, + MSG_CHAR_KANJI_33 = 0x33, + MSG_CHAR_KANJI_34 = 0x34, + MSG_CHAR_KANJI_35 = 0x35, + MSG_CHAR_KANJI_36 = 0x36, + MSG_CHAR_KANJI_37 = 0x37, + MSG_CHAR_KANJI_38 = 0x38, + MSG_CHAR_KANJI_39 = 0x39, + MSG_CHAR_KANJI_3A = 0x3A, + MSG_CHAR_KANJI_3B = 0x3B, + MSG_CHAR_KANJI_3C = 0x3C, + MSG_CHAR_KANJI_3D = 0x3D, + MSG_CHAR_KANJI_3E = 0x3E, + MSG_CHAR_KANJI_3F = 0x3F, + MSG_CHAR_KANJI_40 = 0x40, + MSG_CHAR_KANJI_41 = 0x41, + MSG_CHAR_KANJI_42 = 0x42, + MSG_CHAR_KANJI_43 = 0x43, + MSG_CHAR_KANJI_44 = 0x44, + MSG_CHAR_KANJI_45 = 0x45, + MSG_CHAR_KANJI_46 = 0x46, + MSG_CHAR_KANJI_47 = 0x47, + MSG_CHAR_KANJI_48 = 0x48, + MSG_CHAR_KANJI_49 = 0x49, + MSG_CHAR_KANJI_4A = 0x4A, + MSG_CHAR_KANJI_4B = 0x4B, + MSG_CHAR_KANJI_4C = 0x4C, + MSG_CHAR_KANJI_4D = 0x4D, + MSG_CHAR_KANJI_4E = 0x4E, + MSG_CHAR_KANJI_4F = 0x4F, + MSG_CHAR_KANJI_50 = 0x50, + MSG_CHAR_KANJI_51 = 0x51, + MSG_CHAR_KANJI_52 = 0x52, + MSG_CHAR_KANJI_53 = 0x53, + MSG_CHAR_KANJI_54 = 0x54, + MSG_CHAR_KANJI_55 = 0x55, + MSG_CHAR_KANJI_56 = 0x56, + MSG_CHAR_KANJI_57 = 0x57, + MSG_CHAR_KANJI_58 = 0x58, + MSG_CHAR_KANJI_59 = 0x59, + MSG_CHAR_KANJI_5A = 0x5A, + MSG_CHAR_KANJI_5B = 0x5B, + MSG_CHAR_KANJI_5C = 0x5C, + MSG_CHAR_KANJI_5D = 0x5D, + MSG_CHAR_KANJI_5E = 0x5E, + MSG_CHAR_KANJI_5F = 0x5F, + MSG_CHAR_KANJI_60 = 0x60, + MSG_CHAR_CIRCLE = 0x61, + MSG_CHAR_TIMES = 0x62, + MSG_CHAR_KANJI_63 = 0x63, + MSG_CHAR_KANJI_64 = 0x64, + MSG_CHAR_KANJI_65 = 0x65, + MSG_CHAR_KANJI_66 = 0x66, + MSG_CHAR_KANJI_67 = 0x67, + MSG_CHAR_KANJI_68 = 0x68, + MSG_CHAR_KANJI_69 = 0x69, + MSG_CHAR_NOTE = 0x6A, + MSG_CHAR_KANJI_6B = 0x6B, + MSG_CHAR_KANJI_6C = 0x6C, + MSG_CHAR_KANJI_6D = 0x6D, + MSG_CHAR_KANJI_6E = 0x6E, + MSG_CHAR_KANJI_6F = 0x6F, + MSG_CHAR_KANJI_70 = 0x70, + MSG_CHAR_KANJI_71 = 0x71, + MSG_CHAR_KANJI_72 = 0x72, + MSG_CHAR_KANJI_73 = 0x73, + MSG_CHAR_KANJI_74 = 0x74, + MSG_CHAR_KANJI_75 = 0x75, + MSG_CHAR_KANJI_76 = 0x76, + MSG_CHAR_KANJI_77 = 0x77, + MSG_CHAR_LOWER_X = 0x78, + + // Variant 3 - N64 Button Icons + MSG_CHAR_BUTTON_A = 0x00, + MSG_CHAR_BUTTON_B = 0x01, + MSG_CHAR_BUTTON_START = 0x02, + MSG_CHAR_BUTTON_C_UP = 0x03, + MSG_CHAR_BUTTON_C_DOWN = 0x04, + MSG_CHAR_BUTTON_C_LEFT = 0x05, + MSG_CHAR_BUTTON_C_RIGHT = 0x06, + MSG_CHAR_BUTTON_Z = 0x07, + MSG_CHAR_BUTTON_L = 0x08, + MSG_CHAR_BUTTON_R = 0x09, +#else MSG_CHAR_NOTE = 0x00, MSG_CHAR_EXCLAMTION = 0x01, MSG_CHAR_BACKSLASH = 0x02, @@ -5613,6 +5980,7 @@ enum MsgChars { MSG_CHAR_SINGLE_QUOTE_OPEN = 0xA4, MSG_CHAR_SINGLE_QUOTE_CLOSE = 0xA5, // 0xA6 to 0xEF are unused +#endif #if VERSION_IQUE // All US characters are in the rom, but their range is used for multibyte characters diff --git a/src/item_entity.c b/src/item_entity.c index d23731a06c5..83c8cb98e76 100644 --- a/src/item_entity.c +++ b/src/item_entity.c @@ -50,7 +50,7 @@ SHIFT_BSS MessagePrintState* GotItemTutorialPrinter; SHIFT_BSS b32 GotItemTutorialClosed; #if VERSION_JP -extern s32 D_8015B864; // TODO find out what is this +extern s32 D_8015B864; #endif void item_entity_update(ItemEntity*); diff --git a/src/msg.c b/src/msg.c index cc74480f789..80a3806533a 100644 --- a/src/msg.c +++ b/src/msg.c @@ -3,32 +3,8 @@ #include "message_ids.h" #include "sprite.h" -#if !VERSION_JP // TODO remove when charset data is split #include "charset/postcard.png.h" #include "charset/letter_content_1.png.h" -#endif - -#if VERSION_JP // TODO remove when charset data is split -extern Addr charset_ROM_START; -extern Addr charset_standard_pal_OFFSET; -extern Addr charset_credits_pal_OFFSET; -extern Addr charset_standard_OFFSET; -extern Addr charset_title_OFFSET; -extern Addr charset_subtitle_OFFSET; -extern Addr charset_JP_5710_OFFSET; -extern Addr charset_JP_62E0_OFFSET; -extern Addr charset_JP_97D0_OFFSET; -extern Addr charset_JP_9C30_OFFSET; -extern Addr charset_JP_D470_OFFSET; -extern Addr charset_postcard_pal_OFFSET; -extern Addr charset_postcard_OFFSET; -extern Addr msg_ROM_START; - -#define charset_postcard_png_width 150 -#define charset_postcard_png_height 105 -#define charset_letter_content_1_png_width 70 -#define charset_letter_content_1_png_height 95 -#endif enum RewindArrowStates { REWIND_ARROW_STATE_INIT = 0, @@ -157,13 +133,10 @@ extern IMG_BIN MsgCharImgSubtitle[]; extern PAL_BIN D_802F4560[80][8]; #if VERSION_JP -// TODO rename these into something we can understand -// in the meantime split font_width to find out where they belong... -extern IMG_BIN D_JP_802EB928[]; -extern IMG_BIN D_JP_802F0FA0[]; -extern IMG_BIN MsgCharImgJP_5710[]; -extern IMG_BIN MsgCharImgJP_9C30[]; -extern IMG_BIN MsgCharImgJP_D470[]; +extern IMG_BIN MsgCharImgKana[]; +extern IMG_BIN MsgCharImgLatin[]; +extern IMG_BIN MsgCharImgMenuKana[]; +extern IMG_BIN MsgCharImgMenuLatin[]; #endif extern s32 gMessageBoxFrameParts[2][16]; @@ -171,26 +144,24 @@ extern s32 gMessageBoxFrameParts[2][16]; extern IMG_BIN ui_point_right_png[]; extern PAL_BIN ui_point_right_pal[]; -#if VERSION_JP MessageNumber gMsgNumbers[] = { +#if VERSION_JP { - .rasters = &D_JP_802F0FA0[0x800], // huh? + .rasters = &MsgCharImgKana[0x4910], .texSize = 112, .texWidth = 16, .texHeight = 14, .digitWidth = {11, 8, 11, 11, 11, 11, 11, 11, 11, 11}, .fixedWidth = 11 }, { - .rasters = &D_JP_802EB928[0x800], // what? + .rasters = &MsgCharImgMenuKana[0x2EF8], .texSize = 72, .texWidth = 12, .texHeight = 12, .digitWidth = {9, 8, 9, 9, 9, 9, 9, 9, 9, 9}, .fixedWidth = 9 } -}; #else -MessageNumber gMsgNumbers[] = { { .rasters = &MsgCharImgNormal[0x800], .texSize = 128, @@ -206,8 +177,8 @@ MessageNumber gMsgNumbers[] = { .digitWidth = {9, 8, 9, 9, 9, 9, 9, 9, 9, 9}, .fixedWidth = 9 } -}; #endif +}; Gfx gMsgDlistInitDrawNumber[] = { gsDPPipeSync(), @@ -282,12 +253,12 @@ void load_font(s32 font) { if (font != D_80155C98) { if (font == 0) { #if VERSION_JP - load_font_data(charset_standard_OFFSET, 0x5710, MsgCharImgNormal); - load_font_data(charset_JP_5710_OFFSET, 0xBD0, MsgCharImgJP_5710); - load_font_data(charset_JP_62E0_OFFSET, 0x34F0, MsgCharImgTitle); // huh - load_font_data(charset_JP_97D0_OFFSET, 0x460, MsgCharImgSubtitle); // what - load_font_data(charset_JP_9C30_OFFSET, 0x37F8, MsgCharImgJP_9C30); - load_font_data(charset_JP_D470_OFFSET, 0x798, MsgCharImgJP_D470); + load_font_data(charset_kana_OFFSET, 0x5710, MsgCharImgKana); + load_font_data(charset_latin_OFFSET, 0xBD0, MsgCharImgLatin); + load_font_data(charset_kanji_OFFSET, 0x34F0, MsgCharImgTitle); // huh + load_font_data(charset_buttons_OFFSET, 0x460, MsgCharImgSubtitle); // what + load_font_data(charset_menu_kana_OFFSET, 0x37F8, MsgCharImgMenuKana); + load_font_data(charset_menu_latin_OFFSET, 0x798, MsgCharImgMenuLatin); #else load_font_data(charset_standard_OFFSET, 0x5100, MsgCharImgNormal); #endif @@ -1609,11 +1580,7 @@ void set_message_int_var(s32 value, s32 index) { if (thisChar == 0) { break; } -#if VERSION_JP - gMessageMsgVars[index][i] = thisChar + 0x77; // TODO -#else gMessageMsgVars[index][i] = thisChar - '0' + MSG_CHAR_DIGIT_0; -#endif } gMessageMsgVars[index][i] = MSG_CHAR_READ_END; } diff --git a/src/msg_data.c b/src/msg_data.c index e9f4d9b5809..aa25e7ee383 100644 --- a/src/msg_data.c +++ b/src/msg_data.c @@ -4,7 +4,563 @@ extern IMG_BIN MsgCharImgTitle[]; extern IMG_BIN MsgCharImgSubtitle[]; extern IMG_BIN MsgCharImgNormal[]; +extern IMG_BIN MsgCharImgMenuLatin[]; +extern IMG_BIN MsgCharImgMenuKana[]; +extern IMG_BIN MsgCharImgKana[]; +extern IMG_BIN MsgCharImgLatin[]; +#if VERSION_JP +u8 MsgCharWidthKana[] = { + [MSG_CHAR_HIRAGANA_A] 11, + [MSG_CHAR_HIRAGANA_I] 11, + [MSG_CHAR_HIRAGANA_U] 10, + [MSG_CHAR_HIRAGANA_E] 10, + [MSG_CHAR_HIRAGANA_O] 11, + [MSG_CHAR_HIRAGANA_KA] 11, + [MSG_CHAR_HIRAGANA_KI] 9, + [MSG_CHAR_HIRAGANA_KU] 9, + [MSG_CHAR_HIRAGANA_KE] 11, + [MSG_CHAR_HIRAGANA_KO] 10, + [MSG_CHAR_HIRAGANA_SA] 10, + [MSG_CHAR_HIRAGANA_SI] 9, + [MSG_CHAR_HIRAGANA_SU] 11, + [MSG_CHAR_HIRAGANA_SE] 11, + [MSG_CHAR_HIRAGANA_SO] 10, + [MSG_CHAR_HIRAGANA_TA] 11, + [MSG_CHAR_HIRAGANA_TI] 11, + [MSG_CHAR_HIRAGANA_TU] 11, + [MSG_CHAR_HIRAGANA_TE] 11, + [MSG_CHAR_HIRAGANA_TO] 10, + [MSG_CHAR_HIRAGANA_NA] 11, + [MSG_CHAR_HIRAGANA_NI] 11, + [MSG_CHAR_HIRAGANA_NU] 11, + [MSG_CHAR_HIRAGANA_NE] 11, + [MSG_CHAR_HIRAGANA_NO] 11, + [MSG_CHAR_HIRAGANA_HA] 11, + [MSG_CHAR_HIRAGANA_HI] 11, + [MSG_CHAR_HIRAGANA_HU] 11, + [MSG_CHAR_HIRAGANA_HE] 11, + [MSG_CHAR_HIRAGANA_HO] 11, + [MSG_CHAR_HIRAGANA_MA] 9, + [MSG_CHAR_HIRAGANA_MI] 11, + [MSG_CHAR_HIRAGANA_MU] 11, + [MSG_CHAR_HIRAGANA_ME] 11, + [MSG_CHAR_HIRAGANA_MO] 11, + [MSG_CHAR_HIRAGANA_YA] 11, + [MSG_CHAR_HIRAGANA_YU] 11, + [MSG_CHAR_HIRAGANA_YO] 11, + [MSG_CHAR_HIRAGANA_RA] 11, + [MSG_CHAR_HIRAGANA_RI] 11, + [MSG_CHAR_HIRAGANA_RU] 11, + [MSG_CHAR_HIRAGANA_RE] 11, + [MSG_CHAR_HIRAGANA_RO] 11, + [MSG_CHAR_HIRAGANA_WA] 11, + [MSG_CHAR_HIRAGANA_WO] 11, + [MSG_CHAR_HIRAGANA_N] 11, + [MSG_CHAR_HIRAGANA_VU] 11, + [MSG_CHAR_HIRAGANA_GA] 11, + [MSG_CHAR_HIRAGANA_GI] 11, + [MSG_CHAR_HIRAGANA_GU] 11, + [MSG_CHAR_HIRAGANA_GE] 11, + [MSG_CHAR_HIRAGANA_GO] 12, + [MSG_CHAR_HIRAGANA_ZA] 11, + [MSG_CHAR_HIRAGANA_ZI] 10, + [MSG_CHAR_HIRAGANA_ZU] 11, + [MSG_CHAR_HIRAGANA_ZE] 11, + [MSG_CHAR_HIRAGANA_ZO] 11, + [MSG_CHAR_HIRAGANA_DA] 11, + [MSG_CHAR_HIRAGANA_DI] 11, + [MSG_CHAR_HIRAGANA_DU] 11, + [MSG_CHAR_HIRAGANA_DE] 11, + [MSG_CHAR_HIRAGANA_DO] 11, + [MSG_CHAR_HIRAGANA_BA] 12, + [MSG_CHAR_HIRAGANA_BI] 11, + [MSG_CHAR_HIRAGANA_BU] 11, + [MSG_CHAR_HIRAGANA_BE] 11, + [MSG_CHAR_HIRAGANA_BO] 11, + [MSG_CHAR_HIRAGANA_PA] 12, + [MSG_CHAR_HIRAGANA_PI] 11, + [MSG_CHAR_HIRAGANA_PU] 11, + [MSG_CHAR_HIRAGANA_PE] 11, + [MSG_CHAR_HIRAGANA_PO] 11, + [MSG_CHAR_HIRAGANA_SMALL_A] 9, + [MSG_CHAR_HIRAGANA_SMALL_I] 8, + [MSG_CHAR_HIRAGANA_SMALL_U] 8, + [MSG_CHAR_HIRAGANA_SMALL_E] 8, + [MSG_CHAR_HIRAGANA_SMALL_O] 9, + [MSG_CHAR_HIRAGANA_SMALL_TU] 9, + [MSG_CHAR_HIRAGANA_SMALL_YA] 9, + [MSG_CHAR_HIRAGANA_SMALL_YU] 9, + [MSG_CHAR_HIRAGANA_SMALL_YO] 8, + [MSG_CHAR_KATAKANA_A] 11, + [MSG_CHAR_KATAKANA_I] 10, + [MSG_CHAR_KATAKANA_U] 10, + [MSG_CHAR_KATAKANA_E] 11, + [MSG_CHAR_KATAKANA_O] 11, + [MSG_CHAR_KATAKANA_KA] 11, + [MSG_CHAR_KATAKANA_KI] 11, + [MSG_CHAR_KATAKANA_KU] 10, + [MSG_CHAR_KATAKANA_KE] 11, + [MSG_CHAR_KATAKANA_KO] 11, + [MSG_CHAR_KATAKANA_SA] 11, + [MSG_CHAR_KATAKANA_SI] 11, + [MSG_CHAR_KATAKANA_SU] 11, + [MSG_CHAR_KATAKANA_SE] 11, + [MSG_CHAR_KATAKANA_SO] 11, + [MSG_CHAR_KATAKANA_TA] 11, + [MSG_CHAR_KATAKANA_TI] 11, + [MSG_CHAR_KATAKANA_TU] 11, + [MSG_CHAR_KATAKANA_TE] 11, + [MSG_CHAR_KATAKANA_TO] 8, + [MSG_CHAR_KATAKANA_NA] 11, + [MSG_CHAR_KATAKANA_NI] 9, + [MSG_CHAR_KATAKANA_NU] 11, + [MSG_CHAR_KATAKANA_NE] 10, + [MSG_CHAR_KATAKANA_NO] 11, + [MSG_CHAR_KATAKANA_HA] 11, + [MSG_CHAR_KATAKANA_HI] 11, + [MSG_CHAR_KATAKANA_HU] 11, + [MSG_CHAR_KATAKANA_HE] 11, + [MSG_CHAR_KATAKANA_HO] 11, + [MSG_CHAR_KATAKANA_MA] 11, + [MSG_CHAR_KATAKANA_MI] 10, + [MSG_CHAR_KATAKANA_MU] 11, + [MSG_CHAR_KATAKANA_ME] 10, + [MSG_CHAR_KATAKANA_MO] 11, + [MSG_CHAR_KATAKANA_YA] 11, + [MSG_CHAR_KATAKANA_YU] 11, + [MSG_CHAR_KATAKANA_YO] 10, + [MSG_CHAR_KATAKANA_RA] 11, + [MSG_CHAR_KATAKANA_RI] 10, + [MSG_CHAR_KATAKANA_RU] 11, + [MSG_CHAR_KATAKANA_RE] 10, + [MSG_CHAR_KATAKANA_RO] 10, + [MSG_CHAR_KATAKANA_WA] 10, + [MSG_CHAR_KATAKANA_WO] 10, + [MSG_CHAR_KATAKANA_N] 11, + [MSG_CHAR_KATAKANA_VU] 11, + [MSG_CHAR_KATAKANA_GA] 11, + [MSG_CHAR_KATAKANA_GI] 11, + [MSG_CHAR_KATAKANA_GU] 11, + [MSG_CHAR_KATAKANA_GE] 11, + [MSG_CHAR_KATAKANA_GO] 11, + [MSG_CHAR_KATAKANA_ZA] 11, + [MSG_CHAR_KATAKANA_ZI] 11, + [MSG_CHAR_KATAKANA_ZU] 11, + [MSG_CHAR_KATAKANA_ZE] 11, + [MSG_CHAR_KATAKANA_ZO] 11, + [MSG_CHAR_KATAKANA_DA] 11, + [MSG_CHAR_KATAKANA_DI] 11, + [MSG_CHAR_KATAKANA_DU] 9, + [MSG_CHAR_KATAKANA_DE] 11, + [MSG_CHAR_KATAKANA_DO] 11, + [MSG_CHAR_KATAKANA_BA] 11, + [MSG_CHAR_KATAKANA_BI] 11, + [MSG_CHAR_KATAKANA_BU] 11, + [MSG_CHAR_KATAKANA_BE] 11, + [MSG_CHAR_KATAKANA_BO] 11, + [MSG_CHAR_KATAKANA_PA] 11, + [MSG_CHAR_KATAKANA_PI] 11, + [MSG_CHAR_KATAKANA_PU] 11, + [MSG_CHAR_KATAKANA_PE] 11, + [MSG_CHAR_KATAKANA_PO] 11, + [MSG_CHAR_KATAKANA_SMALL_A] 9, + [MSG_CHAR_KATAKANA_SMALL_I] 8, + [MSG_CHAR_KATAKANA_SMALL_U] 8, + [MSG_CHAR_KATAKANA_SMALL_E] 9, + [MSG_CHAR_KATAKANA_SMALL_O] 9, + [MSG_CHAR_KATAKANA_SMALL_TU] 9, + [MSG_CHAR_KATAKANA_SMALL_YA] 9, + [MSG_CHAR_KATAKANA_SMALL_YU] 9, + [MSG_CHAR_KATAKANA_SMALL_YO] 8, + [MSG_CHAR_PROLONGED_SOUND] 11, + [MSG_CHAR_TILDE] 11, + [MSG_CHAR_LONGDASH_0] 12, + [MSG_CHAR_LONGDASH_1] 12, + [MSG_CHAR_LONGDASH_2] 11, + [MSG_CHAR_DIGIT_0] 11, + [MSG_CHAR_DIGIT_1] 8, + [MSG_CHAR_DIGIT_2] 10, + [MSG_CHAR_DIGIT_3] 11, + [MSG_CHAR_DIGIT_4] 11, + [MSG_CHAR_DIGIT_5] 10, + [MSG_CHAR_DIGIT_6] 11, + [MSG_CHAR_DIGIT_7] 11, + [MSG_CHAR_DIGIT_8] 11, + [MSG_CHAR_DIGIT_9] 11, + [MSG_CHAR_UP] 11, + [MSG_CHAR_DOWN] 11, + [MSG_CHAR_LEFT] 12, + [MSG_CHAR_RIGHT] 12, + [MSG_CHAR_EXCLAMATION] 11, + [MSG_CHAR_QUESTION] 10, + [MSG_CHAR_PLUS] 9, + [MSG_CHAR_MINUS] 9, + [MSG_CHAR_SLASH] 11, + [MSG_CHAR_PERIOD] 8, + [MSG_CHAR_AND] 10, + [MSG_CHAR_HASH] 11, + [MSG_CHAR_HEART] 11, + [MSG_CHAR_STAR] 11, + [MSG_CHAR_LPAREN] 9, + [MSG_CHAR_RPAREN] 9, + [MSG_CHAR_TLBRACKET] 11, + [MSG_CHAR_BRBRACKET] 11, + [MSG_CHAR_MIDDLE_DOT] 8, + [MSG_CHAR_HIRAGANA_SMALL_N] 9, + [MSG_CHAR_KATAKANA_SMALL_N] 9, + [MSG_CHAR_KANJI_C6] 11, +}; + +u8 MsgCharWidthLatin[] = { + [MSG_CHAR_UPPER_A] 11, + [MSG_CHAR_UPPER_B] 10, + [MSG_CHAR_UPPER_C] 10, + [MSG_CHAR_UPPER_D] 10, + [MSG_CHAR_UPPER_E] 11, + [MSG_CHAR_UPPER_F] 10, + [MSG_CHAR_UPPER_G] 11, + [MSG_CHAR_UPPER_H] 10, + [MSG_CHAR_UPPER_I] 8, + [MSG_CHAR_UPPER_J] 9, + [MSG_CHAR_UPPER_K] 10, + [MSG_CHAR_UPPER_L] 11, + [MSG_CHAR_UPPER_M] 11, + [MSG_CHAR_UPPER_N] 11, + [MSG_CHAR_UPPER_O] 11, + [MSG_CHAR_UPPER_P] 11, + [MSG_CHAR_UPPER_Q] 11, + [MSG_CHAR_UPPER_R] 10, + [MSG_CHAR_UPPER_S] 11, + [MSG_CHAR_UPPER_T] 11, + [MSG_CHAR_UPPER_U] 11, + [MSG_CHAR_UPPER_V] 11, + [MSG_CHAR_UPPER_W] 11, + [MSG_CHAR_UPPER_X] 11, + [MSG_CHAR_UPPER_Y] 11, + [MSG_CHAR_UPPER_Z] 10, + [MSG_CHAR_LOWER_Z] 9, +}; + +u8 MsgCharWidthKanji[] = { + [MSG_CHAR_KANJI_00 ... MSG_CHAR_KANJI_77] = 11, + [MSG_CHAR_LOWER_X] 7, +}; + +u8 MsgCharWidthButtons[] = { + [MSG_CHAR_BUTTON_A] 13, + [MSG_CHAR_BUTTON_B] 13, + [MSG_CHAR_BUTTON_START] 16, + [MSG_CHAR_BUTTON_C_UP] 13, + [MSG_CHAR_BUTTON_C_DOWN] 13, + [MSG_CHAR_BUTTON_C_LEFT] 13, + [MSG_CHAR_BUTTON_C_RIGHT] 13, + [MSG_CHAR_BUTTON_Z] 12, + [MSG_CHAR_BUTTON_L] 14, + [MSG_CHAR_BUTTON_R] 14, +}; + +u8 MsgCharWidthMenuKana[] = { + [MSG_CHAR_HIRAGANA_A] 9, + [MSG_CHAR_HIRAGANA_I] 9, + [MSG_CHAR_HIRAGANA_U] 9, + [MSG_CHAR_HIRAGANA_E] 9, + [MSG_CHAR_HIRAGANA_O] 9, + [MSG_CHAR_HIRAGANA_KA] 9, + [MSG_CHAR_HIRAGANA_KI] 9, + [MSG_CHAR_HIRAGANA_KU] 9, + [MSG_CHAR_HIRAGANA_KE] 9, + [MSG_CHAR_HIRAGANA_KO] 9, + [MSG_CHAR_HIRAGANA_SA] 9, + [MSG_CHAR_HIRAGANA_SI] 9, + [MSG_CHAR_HIRAGANA_SU] 9, + [MSG_CHAR_HIRAGANA_SE] 9, + [MSG_CHAR_HIRAGANA_SO] 9, + [MSG_CHAR_HIRAGANA_TA] 9, + [MSG_CHAR_HIRAGANA_TI] 9, + [MSG_CHAR_HIRAGANA_TU] 9, + [MSG_CHAR_HIRAGANA_TE] 9, + [MSG_CHAR_HIRAGANA_TO] 9, + [MSG_CHAR_HIRAGANA_NA] 9, + [MSG_CHAR_HIRAGANA_NI] 9, + [MSG_CHAR_HIRAGANA_NU] 9, + [MSG_CHAR_HIRAGANA_NE] 9, + [MSG_CHAR_HIRAGANA_NO] 9, + [MSG_CHAR_HIRAGANA_HA] 9, + [MSG_CHAR_HIRAGANA_HI] 9, + [MSG_CHAR_HIRAGANA_HU] 9, + [MSG_CHAR_HIRAGANA_HE] 9, + [MSG_CHAR_HIRAGANA_HO] 9, + [MSG_CHAR_HIRAGANA_MA] 9, + [MSG_CHAR_HIRAGANA_MI] 9, + [MSG_CHAR_HIRAGANA_MU] 9, + [MSG_CHAR_HIRAGANA_ME] 9, + [MSG_CHAR_HIRAGANA_MO] 9, + [MSG_CHAR_HIRAGANA_YA] 9, + [MSG_CHAR_HIRAGANA_YU] 9, + [MSG_CHAR_HIRAGANA_YO] 9, + [MSG_CHAR_HIRAGANA_RA] 9, + [MSG_CHAR_HIRAGANA_RI] 9, + [MSG_CHAR_HIRAGANA_RU] 9, + [MSG_CHAR_HIRAGANA_RE] 9, + [MSG_CHAR_HIRAGANA_RO] 9, + [MSG_CHAR_HIRAGANA_WA] 9, + [MSG_CHAR_HIRAGANA_WO] 9, + [MSG_CHAR_HIRAGANA_N] 9, + [MSG_CHAR_HIRAGANA_VU] 9, + [MSG_CHAR_HIRAGANA_GA] 9, + [MSG_CHAR_HIRAGANA_GI] 9, + [MSG_CHAR_HIRAGANA_GU] 9, + [MSG_CHAR_HIRAGANA_GE] 9, + [MSG_CHAR_HIRAGANA_GO] 9, + [MSG_CHAR_HIRAGANA_ZA] 9, + [MSG_CHAR_HIRAGANA_ZI] 9, + [MSG_CHAR_HIRAGANA_ZU] 9, + [MSG_CHAR_HIRAGANA_ZE] 9, + [MSG_CHAR_HIRAGANA_ZO] 9, + [MSG_CHAR_HIRAGANA_DA] 9, + [MSG_CHAR_HIRAGANA_DI] 9, + [MSG_CHAR_HIRAGANA_DU] 9, + [MSG_CHAR_HIRAGANA_DE] 9, + [MSG_CHAR_HIRAGANA_DO] 9, + [MSG_CHAR_HIRAGANA_BA] 9, + [MSG_CHAR_HIRAGANA_BI] 9, + [MSG_CHAR_HIRAGANA_BU] 9, + [MSG_CHAR_HIRAGANA_BE] 9, + [MSG_CHAR_HIRAGANA_BO] 9, + [MSG_CHAR_HIRAGANA_PA] 9, + [MSG_CHAR_HIRAGANA_PI] 9, + [MSG_CHAR_HIRAGANA_PU] 9, + [MSG_CHAR_HIRAGANA_PE] 9, + [MSG_CHAR_HIRAGANA_PO] 9, + [MSG_CHAR_HIRAGANA_SMALL_A] 9, + [MSG_CHAR_HIRAGANA_SMALL_I] 8, + [MSG_CHAR_HIRAGANA_SMALL_U] 8, + [MSG_CHAR_HIRAGANA_SMALL_E] 8, + [MSG_CHAR_HIRAGANA_SMALL_O] 8, + [MSG_CHAR_HIRAGANA_SMALL_TU] 8, + [MSG_CHAR_HIRAGANA_SMALL_YA] 8, + [MSG_CHAR_HIRAGANA_SMALL_YU] 8, + [MSG_CHAR_HIRAGANA_SMALL_YO] 8, + [MSG_CHAR_KATAKANA_A] 9, + [MSG_CHAR_KATAKANA_I] 8, + [MSG_CHAR_KATAKANA_U] 9, + [MSG_CHAR_KATAKANA_E] 9, + [MSG_CHAR_KATAKANA_O] 9, + [MSG_CHAR_KATAKANA_KA] 9, + [MSG_CHAR_KATAKANA_KI] 9, + [MSG_CHAR_KATAKANA_KU] 9, + [MSG_CHAR_KATAKANA_KE] 9, + [MSG_CHAR_KATAKANA_KO] 9, + [MSG_CHAR_KATAKANA_SA] 9, + [MSG_CHAR_KATAKANA_SI] 9, + [MSG_CHAR_KATAKANA_SU] 9, + [MSG_CHAR_KATAKANA_SE] 9, + [MSG_CHAR_KATAKANA_SO] 9, + [MSG_CHAR_KATAKANA_TA] 9, + [MSG_CHAR_KATAKANA_TI] 9, + [MSG_CHAR_KATAKANA_TU] 9, + [MSG_CHAR_KATAKANA_TE] 9, + [MSG_CHAR_KATAKANA_TO] 9, + [MSG_CHAR_KATAKANA_NA] 9, + [MSG_CHAR_KATAKANA_NI] 9, + [MSG_CHAR_KATAKANA_NU] 9, + [MSG_CHAR_KATAKANA_NE] 9, + [MSG_CHAR_KATAKANA_NO] 9, + [MSG_CHAR_KATAKANA_HA] 9, + [MSG_CHAR_KATAKANA_HI] 9, + [MSG_CHAR_KATAKANA_HU] 9, + [MSG_CHAR_KATAKANA_HE] 9, + [MSG_CHAR_KATAKANA_HO] 9, + [MSG_CHAR_KATAKANA_MA] 9, + [MSG_CHAR_KATAKANA_MI] 9, + [MSG_CHAR_KATAKANA_MU] 9, + [MSG_CHAR_KATAKANA_ME] 9, + [MSG_CHAR_KATAKANA_MO] 9, + [MSG_CHAR_KATAKANA_YA] 9, + [MSG_CHAR_KATAKANA_YU] 9, + [MSG_CHAR_KATAKANA_YO] 9, + [MSG_CHAR_KATAKANA_RA] 9, + [MSG_CHAR_KATAKANA_RI] 9, + [MSG_CHAR_KATAKANA_RU] 9, + [MSG_CHAR_KATAKANA_RE] 9, + [MSG_CHAR_KATAKANA_RO] 9, + [MSG_CHAR_KATAKANA_WA] 9, + [MSG_CHAR_KATAKANA_WO] 9, + [MSG_CHAR_KATAKANA_N] 9, + [MSG_CHAR_KATAKANA_VU] 9, + [MSG_CHAR_KATAKANA_GA] 9, + [MSG_CHAR_KATAKANA_GI] 9, + [MSG_CHAR_KATAKANA_GU] 9, + [MSG_CHAR_KATAKANA_GE] 9, + [MSG_CHAR_KATAKANA_GO] 9, + [MSG_CHAR_KATAKANA_ZA] 9, + [MSG_CHAR_KATAKANA_ZI] 9, + [MSG_CHAR_KATAKANA_ZU] 9, + [MSG_CHAR_KATAKANA_ZE] 9, + [MSG_CHAR_KATAKANA_ZO] 9, + [MSG_CHAR_KATAKANA_DA] 9, + [MSG_CHAR_KATAKANA_DI] 9, + [MSG_CHAR_KATAKANA_DU] 9, + [MSG_CHAR_KATAKANA_DE] 9, + [MSG_CHAR_KATAKANA_DO] 9, + [MSG_CHAR_KATAKANA_BA] 9, + [MSG_CHAR_KATAKANA_BI] 9, + [MSG_CHAR_KATAKANA_BU] 9, + [MSG_CHAR_KATAKANA_BE] 9, + [MSG_CHAR_KATAKANA_BO] 9, + [MSG_CHAR_KATAKANA_PA] 9, + [MSG_CHAR_KATAKANA_PI] 9, + [MSG_CHAR_KATAKANA_PU] 9, + [MSG_CHAR_KATAKANA_PE] 9, + [MSG_CHAR_KATAKANA_PO] 9, + [MSG_CHAR_KATAKANA_SMALL_A] 8, + [MSG_CHAR_KATAKANA_SMALL_I] 8, + [MSG_CHAR_KATAKANA_SMALL_U] 8, + [MSG_CHAR_KATAKANA_SMALL_E] 8, + [MSG_CHAR_KATAKANA_SMALL_O] 8, + [MSG_CHAR_KATAKANA_SMALL_TU] 8, + [MSG_CHAR_KATAKANA_SMALL_YA] 8, + [MSG_CHAR_KATAKANA_SMALL_YU] 8, + [MSG_CHAR_KATAKANA_SMALL_YO] 8, + [MSG_CHAR_PROLONGED_SOUND] 9, + [MSG_CHAR_TILDE] 9, + [MSG_CHAR_LONGDASH_0] 9, + [MSG_CHAR_LONGDASH_1] 9, + [MSG_CHAR_LONGDASH_2] 11, + [MSG_CHAR_DIGIT_0] 9, + [MSG_CHAR_DIGIT_1] 8, + [MSG_CHAR_DIGIT_2] 9, + [MSG_CHAR_DIGIT_3] 9, + [MSG_CHAR_DIGIT_4] 9, + [MSG_CHAR_DIGIT_5] 9, + [MSG_CHAR_DIGIT_6] 9, + [MSG_CHAR_DIGIT_7] 9, + [MSG_CHAR_DIGIT_8] 9, + [MSG_CHAR_DIGIT_9] 9, + [MSG_CHAR_UP] 9, + [MSG_CHAR_DOWN] 9, + [MSG_CHAR_LEFT] 9, + [MSG_CHAR_RIGHT] 9, + [MSG_CHAR_EXCLAMATION] 9, + [MSG_CHAR_QUESTION] 9, + [MSG_CHAR_PLUS] 9, + [MSG_CHAR_MINUS] 9, + [MSG_CHAR_SLASH] 10, + [MSG_CHAR_PERIOD] 7, + [MSG_CHAR_AND] 9, + [MSG_CHAR_HASH] 9, + [MSG_CHAR_HEART] 9, + [MSG_CHAR_STAR] 9, + [MSG_CHAR_LPAREN] 9, + [MSG_CHAR_RPAREN] 9, + [MSG_CHAR_TLBRACKET] 9, + [MSG_CHAR_BRBRACKET] 9, + [MSG_CHAR_MIDDLE_DOT] 7, + [MSG_CHAR_HIRAGANA_SMALL_N] 8, + [MSG_CHAR_KATAKANA_SMALL_N] 8, + [MSG_CHAR_KANJI_C6] 11, + [MSG_CHAR_KANJI_C7] 11, +}; + +u8 MsgCharWidthMenuLatin[] = { + [MSG_CHAR_UPPER_A] 9, + [MSG_CHAR_UPPER_B] 9, + [MSG_CHAR_UPPER_C] 9, + [MSG_CHAR_UPPER_D] 9, + [MSG_CHAR_UPPER_E] 9, + [MSG_CHAR_UPPER_F] 9, + [MSG_CHAR_UPPER_G] 9, + [MSG_CHAR_UPPER_H] 9, + [MSG_CHAR_UPPER_I] 8, + [MSG_CHAR_UPPER_J] 9, + [MSG_CHAR_UPPER_K] 9, + [MSG_CHAR_UPPER_L] 9, + [MSG_CHAR_UPPER_M] 9, + [MSG_CHAR_UPPER_N] 9, + [MSG_CHAR_UPPER_O] 9, + [MSG_CHAR_UPPER_P] 9, + [MSG_CHAR_UPPER_Q] 9, + [MSG_CHAR_UPPER_R] 9, + [MSG_CHAR_UPPER_S] 9, + [MSG_CHAR_UPPER_T] 9, + [MSG_CHAR_UPPER_U] 9, + [MSG_CHAR_UPPER_V] 9, + [MSG_CHAR_UPPER_W] 9, + [MSG_CHAR_UPPER_X] 9, + [MSG_CHAR_UPPER_Y] 9, + [MSG_CHAR_UPPER_Z] 9, + [MSG_CHAR_LOWER_Z] 9, +}; + +MessageCharData MsgCharDataNormal[] = { + { + .raster = MsgCharImgKana, + .charWidthTable = MsgCharWidthKana, + .monospaceWidth = 11, + .baseHeightOffset = 0, + }, + { + .raster = MsgCharImgLatin, + .charWidthTable = MsgCharWidthLatin, + .monospaceWidth = 11, + .baseHeightOffset = 2, + }, + { + .raster = MsgCharImgTitle, + .charWidthTable = MsgCharWidthKanji, + .monospaceWidth = 12, + .baseHeightOffset = 0, + }, + { + .raster = MsgCharImgSubtitle, + .charWidthTable = MsgCharWidthButtons, + .monospaceWidth = 14, + .baseHeightOffset = 0, + }, + {} +}; + +MessageCharset MsgCharsetNormal = { + .texSize = { 16, 14 }, + .unk_02 = 14, + .newLineY = 16, + .charRasterSize = 112, + .rasters = MsgCharDataNormal +}; + +MessageCharData MsgCharDataMenu[] = { + { + .raster = MsgCharImgMenuKana, + .charWidthTable = MsgCharWidthMenuKana, + .monospaceWidth = 9, + .baseHeightOffset = 0, + }, + { + .raster = MsgCharImgMenuLatin, + .charWidthTable = MsgCharWidthMenuLatin, + .monospaceWidth = 9, + .baseHeightOffset = 0, + }, + {} +}; + +MessageCharset MsgCharsetMenu = { + .texSize = { 12, 12 }, + .unk_02 = 10, + .newLineY = 12, + .charRasterSize = 72, + .rasters = MsgCharDataMenu +}; + +MessageCharset MsgCharsetMenu2 = { + .texSize = { 12, 12 }, + .unk_02 = 10, + .newLineY = 16, + .charRasterSize = 72, + .rasters = MsgCharDataMenu +}; +#else u8 MsgCharWidthNormal[] = { [MSG_CHAR_NOTE] 11, [MSG_CHAR_EXCLAMTION] 8, @@ -249,6 +805,7 @@ MessageCharset MsgCharsetMenu = { .charRasterSize = 128, .rasters = MsgCharDataMenu }; +#endif u8 MsgCharWidthTitle[] = { 8, 8, 8, 9, 8, 8, 8, 8, @@ -307,38 +864,44 @@ MessageCharset MsgCharsetSubtitle = { MessageCharset* MsgCharsets[] = { [MSG_FONT_NORMAL] &MsgCharsetNormal, [MSG_FONT_MENU] &MsgCharsetMenu, +#if VERSION_JP + [MSG_FONT_2] &MsgCharsetMenu2, +#else [MSG_FONT_2] &MsgCharsetMenu, +#endif [MSG_FONT_TITLE] &MsgCharsetTitle, [MSG_FONT_SUBTITLE] &MsgCharsetSubtitle, NULL }; -u8 *MsgLetterRasterOffsets[] = { - charset_letter_content_1_OFFSET, - charset_letter_content_2_OFFSET, - charset_letter_content_3_OFFSET, - charset_letter_content_4_OFFSET, - charset_letter_content_5_OFFSET, - charset_letter_content_6_OFFSET, - charset_letter_content_7_OFFSET, - charset_letter_content_8_OFFSET, - charset_letter_content_9_OFFSET, - charset_letter_content_10_OFFSET, - charset_letter_content_11_OFFSET, - charset_letter_content_12_OFFSET, +s32 MsgLetterRasterOffsets[] = { + (s32) charset_letter_content_1_OFFSET, + (s32) charset_letter_content_2_OFFSET, + (s32) charset_letter_content_3_OFFSET, + (s32) charset_letter_content_4_OFFSET, + (s32) charset_letter_content_5_OFFSET, + (s32) charset_letter_content_6_OFFSET, + (s32) charset_letter_content_7_OFFSET, + (s32) charset_letter_content_8_OFFSET, + (s32) charset_letter_content_9_OFFSET, + (s32) charset_letter_content_10_OFFSET, + (s32) charset_letter_content_11_OFFSET, + (s32) charset_letter_content_12_OFFSET, }; -// TODO: palette offsets s32 MsgLetterPaletteOffsets[] = { -#if VERSION_IQUE - 0x00058890, 0x0005A490, 0x0005C090, 0x0005DC90, - 0x0005F890, 0x00061490, 0x00063090, 0x00064C90, - 0x00066890, 0x00068490, 0x0006A090, 0x0006BC90, -#else - 0x0000EB78, 0x00010778, 0x00012378, 0x00013F78, - 0x00015B78, 0x00017778, 0x00019378, 0x0001AF78, - 0x0001CB78, 0x0001E778, 0x00020378, 0x00021F78, -#endif + (s32) charset_letter_content_1_pal_OFFSET + 6, + (s32) charset_letter_content_2_pal_OFFSET + 6, + (s32) charset_letter_content_3_pal_OFFSET + 6, + (s32) charset_letter_content_4_pal_OFFSET + 6, + (s32) charset_letter_content_5_pal_OFFSET + 6, + (s32) charset_letter_content_6_pal_OFFSET + 6, + (s32) charset_letter_content_7_pal_OFFSET + 6, + (s32) charset_letter_content_8_pal_OFFSET + 6, + (s32) charset_letter_content_9_pal_OFFSET + 6, + (s32) charset_letter_content_10_pal_OFFSET + 6, + (s32) charset_letter_content_11_pal_OFFSET + 6, + (s32) charset_letter_content_12_pal_OFFSET + 6, }; MsgVoice MsgVoices[] = { @@ -359,6 +922,7 @@ MsgVoice MsgVoices[] = { }, }; +#if !VERSION_JP s16 MsgStyleVerticalLineOffsets[] = { [MSG_STYLE_NONE] 0, [MSG_STYLE_RIGHT] -4, @@ -377,3 +941,4 @@ s16 MsgStyleVerticalLineOffsets[] = { [MSG_STYLE_EPILOGUE] -4, [MSG_STYLE_F] 0, }; +#endif diff --git a/src/msg_img.c b/src/msg_img.c index 308e29dcfdc..e78ba314ed7 100644 --- a/src/msg_img.c +++ b/src/msg_img.c @@ -76,6 +76,17 @@ INCLUDE_PAL("ui/msg/rewind_arrow.pal", ui_msg_rewind_arrow_pal); INCLUDE_IMG("ui/msg/star.png", ui_msg_star_png); INCLUDE_IMG("ui/msg/star_silhouette.png", ui_msg_star_silhouette_png); +#if VERSION_JP +BSS IMG_BIN MsgCharImgMenuLatin[0x798] ALIGNED(16); +BSS IMG_BIN MsgCharImgMenuKana[0x37F8] ALIGNED(16); +// in JP button icons uses this, which has smaller size to store the credits subtitle character set. What's going on here? +BSS IMG_BIN MsgCharImgSubtitle[0x460] ALIGNED(16); +BSS IMG_BIN MsgCharImgKana[0x5710] ALIGNED(16); +BSS PAL_BIN D_802F4560[80][8]; +BSS IMG_BIN MsgCharImgLatin[0xBD0] ALIGNED(16); +// in JP kanji chars also uses this +BSS IMG_BIN MsgCharImgTitle[0x34F0] ALIGNED(16); +#else BSS IMG_BIN MsgCharImgTitle[0xF60]; BSS IMG_BIN MsgCharImgNormal[0x5100]; BSS IMG_BIN MsgCharImgSubtitle[0xB88]; @@ -84,5 +95,6 @@ BSS PAL_BIN D_802F4560[80][8] ALIGNED(16) #endif ; +#endif MATCHING_BSS(0x6DA0); diff --git a/tools/splat_ext/pm_charset.py b/tools/splat_ext/pm_charset.py index ae6fff39eeb..0351ae7dd5a 100644 --- a/tools/splat_ext/pm_charset.py +++ b/tools/splat_ext/pm_charset.py @@ -36,6 +36,27 @@ def get_palette_idx(charset_name, char_id): pal_id = 0x13 elif char_id == 0xA1: pal_id = 0x12 + elif charset_name == "buttons": + if char_id == 0x00: + pal_id = 0x10 + elif char_id == 0x01: + pal_id = 0x11 + elif char_id == 0x02: + pal_id = 0x12 + elif char_id == 0x03: + pal_id = 0x13 + elif char_id == 0x04: + pal_id = 0x13 + elif char_id == 0x05: + pal_id = 0x13 + elif char_id == 0x06: + pal_id = 0x13 + elif char_id == 0x07: + pal_id = 0x14 + elif char_id == 0x08: + pal_id = 0x14 + elif char_id == 0x09: + pal_id = 0x15 return pal_id @@ -43,14 +64,18 @@ class N64SegPm_charset(N64Segment): def scan(self, rom_bytes): data = rom_bytes[self.rom_start : self.rom_end] - # start, type, name, WIDTH, HEIGHT, NUM_RASTERS + # start, type, name, WIDTH, HEIGHT, NUM_RASTERS, palette self.width = self.yaml[3] self.height = self.yaml[4] + if len(self.yaml) > 6: + self.palette = self.yaml[6] + else: + self.palette = self.name # pm_charset_palettes sibling self.sibling = next( filter( - lambda s: s.type == "pm_charset_palettes" and s.name == self.name, + lambda s: s.type == "pm_charset_palettes" and s.name == self.palette, self.parent.subsegments, ) ) diff --git a/tools/splat_ext/pm_charset_palettes.py b/tools/splat_ext/pm_charset_palettes.py index 208b8014791..aa4847b439c 100644 --- a/tools/splat_ext/pm_charset_palettes.py +++ b/tools/splat_ext/pm_charset_palettes.py @@ -20,13 +20,16 @@ class N64SegPm_charset_palettes(N64Segment): def scan(self, rom_bytes): data = rom_bytes[self.rom_start : self.rom_end] - # pm_charset sibling - self.sibling = next( - filter( - lambda s: s.type == "pm_charset" and s.name == self.name, - self.parent.subsegments, - ) - ) + # pm_charset siblings + self.siblings = [] + for s in self.parent.subsegments: + if s.type == "pm_charset": + if len(s.yaml) > 6: + charset_pal = s.yaml[6] + else: + charset_pal = s.name + if self.name == charset_pal: + self.siblings.append(s) self.palettes = [] @@ -39,9 +42,9 @@ def split(self, rom_bytes): fs_dir.mkdir(parents=True, exist_ok=True) for i, palette in enumerate(self.palettes): - raster = self.sibling.rasters[0] + raster = self.siblings[0].rasters[0] - w = png.Writer(self.sibling.width, self.sibling.height, palette=palette) + w = png.Writer(self.siblings[0].width, self.siblings[0].height, palette=palette) with open(fs_dir / f"{i:02X}.png", "wb") as f: w.write_array(f, raster) diff --git a/ver/jp/asm/nonmatchings/msg/dma_load_msg.s b/ver/jp/asm/nonmatchings/msg/dma_load_msg.s deleted file mode 100644 index 9f74542ff00..00000000000 --- a/ver/jp/asm/nonmatchings/msg/dma_load_msg.s +++ /dev/null @@ -1,38 +0,0 @@ -.set noat /* allow manual use of $at */ -.set noreorder /* don't insert nops after branches */ - -glabel dma_load_msg -/* BF8F8 8012AA68 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* BF8FC 8012AA6C AFB00018 */ sw $s0, 0x18($sp) -/* BF900 8012AA70 0080802D */ daddu $s0, $a0, $zero -/* BF904 8012AA74 AFB20020 */ sw $s2, 0x20($sp) -/* BF908 8012AA78 00A0902D */ daddu $s2, $a1, $zero -/* BF90C 8012AA7C 00101382 */ srl $v0, $s0, 14 -/* BF910 8012AA80 AFB1001C */ sw $s1, 0x1C($sp) -/* BF914 8012AA84 3C1101D4 */ lui $s1, %hi(D_1D40004) -/* BF918 8012AA88 00512021 */ addu $a0, $v0, $s1 -/* BF91C 8012AA8C 24850004 */ addiu $a1, $a0, %lo(D_1D40004) -/* BF920 8012AA90 AFBF0024 */ sw $ra, 0x24($sp) -/* BF924 8012AA94 0C00A5BF */ jal dma_copy -/* BF928 8012AA98 27A60010 */ addiu $a2, $sp, 0x10 -/* BF92C 8012AA9C 27A60010 */ addiu $a2, $sp, 0x10 -/* BF930 8012AAA0 3210FFFF */ andi $s0, $s0, 0xFFFF -/* BF934 8012AAA4 00108080 */ sll $s0, $s0, 2 -/* BF938 8012AAA8 8FA20010 */ lw $v0, 0x10($sp) -/* BF93C 8012AAAC 02118021 */ addu $s0, $s0, $s1 -/* BF940 8012AAB0 00502021 */ addu $a0, $v0, $s0 -/* BF944 8012AAB4 0C00A5BF */ jal dma_copy -/* BF948 8012AAB8 24850008 */ addiu $a1, $a0, %lo(D_1D40008) -/* BF94C 8012AABC 0240302D */ daddu $a2, $s2, $zero -/* BF950 8012AAC0 8FA40010 */ lw $a0, 0x10($sp) -/* BF954 8012AAC4 8FA50014 */ lw $a1, 0x14($sp) -/* BF958 8012AAC8 00912021 */ addu $a0, $a0, $s1 -/* BF95C 8012AACC 0C00A5BF */ jal dma_copy -/* BF960 8012AAD0 00B12821 */ addu $a1, $a1, $s1 -/* BF964 8012AAD4 8FBF0024 */ lw $ra, 0x24($sp) -/* BF968 8012AAD8 8FB20020 */ lw $s2, 0x20($sp) -/* BF96C 8012AADC 8FB1001C */ lw $s1, 0x1C($sp) -/* BF970 8012AAE0 8FB00018 */ lw $s0, 0x18($sp) -/* BF974 8012AAE4 03E00008 */ jr $ra -/* BF978 8012AAE8 27BD0028 */ addiu $sp, $sp, 0x28 -.size dma_load_msg, . - dma_load_msg diff --git a/ver/jp/splat.yaml b/ver/jp/splat.yaml index 97814a331a1..a991f681363 100644 --- a/ver/jp/splat.yaml +++ b/ver/jp/splat.yaml @@ -970,10 +970,166 @@ segments: start: 0x10cc20 vram: 0x802e6380 subsegments: - - [0x10cc20, bin] - - [0x10f330] - - - [0x10f330, bin] + - [auto, c, msg_data] + - [auto, c, msg_img] + - [auto, .data, msg_data] + - start: 0x10D030 + type: .data + name: msg_img + subsegments: + - [auto, ci4, ui/msg/bubble_left, 32, 64, ui/msg/bubble_left] + - [auto, ci4, ui/msg/bubble_mid, 8, 64, ui/msg/bubble_left] + - [auto, ci4, ui/msg/bubble_right, 32, 64, ui/msg/bubble_left] + - [auto, ci4, ui/msg/arrow, 16, 16, ui/msg/bubble_left] + - [auto, ci4, ui/msg/frame_a_1_1, 8, 8, ui/msg/bubble_left] + - [auto, ci4, ui/msg/frame_a_1_2, 8, 8, ui/msg/bubble_left] + - [auto, ci4, ui/msg/frame_a_1_3, 8, 8, ui/msg/bubble_left] + - [auto, ci4, ui/msg/frame_a_1_4, 8, 8, ui/msg/bubble_left] + - [auto, ci4, ui/msg/frame_a_1_5, 8, 8, ui/msg/bubble_left] + - [auto, ci4, ui/msg/frame_a_2_1, 8, 8, ui/msg/bubble_left] + - [auto, ci4, ui/msg/frame_a_2_5, 8, 8, ui/msg/bubble_left] + - [auto, ci4, ui/msg/frame_a_3_1, 8, 8, ui/msg/bubble_left] + - [auto, ci4, ui/msg/frame_a_3_5, 8, 8, ui/msg/bubble_left] + - [auto, ci4, ui/msg/frame_a_4_1, 8, 8, ui/msg/bubble_left] + - [auto, ci4, ui/msg/frame_a_4_5, 8, 8, ui/msg/bubble_left] + - [auto, ci4, ui/msg/frame_a_5_1, 8, 8, ui/msg/bubble_left] + - [auto, ci4, ui/msg/frame_a_5_2, 8, 8, ui/msg/bubble_left] + - [auto, ci4, ui/msg/frame_a_5_3, 8, 8, ui/msg/bubble_left] + - [auto, ci4, ui/msg/frame_a_5_4, 8, 8, ui/msg/bubble_left] + - [auto, ci4, ui/msg/frame_a_5_5, 8, 8, ui/msg/bubble_left] + - [auto, ci4, ui/msg/frame_b_1_1, 8, 8, ui/msg/bubble_left] + - [auto, ci4, ui/msg/frame_b_1_2, 8, 8, ui/msg/bubble_left] + - [auto, ci4, ui/msg/frame_b_1_3, 8, 8, ui/msg/bubble_left] + - [auto, ci4, ui/msg/frame_b_1_4, 8, 8, ui/msg/bubble_left] + - [auto, ci4, ui/msg/frame_b_1_5, 8, 8, ui/msg/bubble_left] + - [auto, ci4, ui/msg/frame_b_2_1, 8, 8, ui/msg/bubble_left] + - [auto, ci4, ui/msg/frame_b_2_5, 8, 8, ui/msg/bubble_left] + - [auto, ci4, ui/msg/frame_b_3_1, 8, 8, ui/msg/bubble_left] + - [auto, ci4, ui/msg/frame_b_3_5, 8, 8, ui/msg/bubble_left] + - [auto, ci4, ui/msg/frame_b_4_1, 8, 8, ui/msg/bubble_left] + - [auto, ci4, ui/msg/frame_b_4_5, 8, 8, ui/msg/bubble_left] + - [auto, ci4, ui/msg/frame_b_5_1, 8, 8, ui/msg/bubble_left] + - [auto, ci4, ui/msg/frame_b_5_2, 8, 8, ui/msg/bubble_left] + - [auto, ci4, ui/msg/frame_b_5_3, 8, 8, ui/msg/bubble_left] + - [auto, ci4, ui/msg/frame_b_5_4, 8, 8, ui/msg/bubble_left] + - [auto, ci4, ui/msg/frame_b_5_5, 8, 8, ui/msg/bubble_left] + # all 16 following palettes can be applied to all images above + - {start: auto, type: palette, name: ui/msg/bubble_left, size: 0x200} + #- [auto, palette, ui/msg/palette_0] + #- [auto, palette, ui/msg/palette_1] + #- [auto, palette, ui/msg/palette_2] + #- [auto, palette, ui/msg/palette_3] + #- [auto, palette, ui/msg/palette_4] + #- [auto, palette, ui/msg/palette_5] + #- [auto, palette, ui/msg/palette_6] + #- [auto, palette, ui/msg/palette_7] + #- [auto, palette, ui/msg/palette_8] + #- [auto, palette, ui/msg/palette_9] + #- [auto, palette, ui/msg/palette_A] + #- [auto, palette, ui/msg/palette_B] + #- [auto, palette, ui/msg/palette_C] + #- [auto, palette, ui/msg/palette_D] + #- [auto, palette, ui/msg/palette_E] + #- [auto, palette, ui/msg/palette_F] + - [auto, ci4, ui/msg/sign_corner_topleft, 16, 16, ui/msg/sign_corner_topleft] + - [auto, ci4, ui/msg/sign_corner_topright, 16, 16, ui/msg/sign_corner_topleft] + - [auto, ci4, ui/msg/sign_corner_bottomleft, 16, 16, ui/msg/sign_corner_topleft] + - [auto, ci4, ui/msg/sign_corner_bottomright, 16, 16, ui/msg/sign_corner_topleft] + - [auto, ci4, ui/msg/lamppost_corner_bottomright, 16, 16, ui/msg/lamppost_corner_bottomright] + - [auto, ci4, ui/msg/sign_side_top, 32, 16, ui/msg/sign_corner_topleft] + - [auto, ci4, ui/msg/sign_side_left, 16, 40, ui/msg/sign_corner_topleft] + - [auto, ci4, ui/msg/sign_side_right, 16, 40, ui/msg/sign_corner_topleft] + - [auto, ci4, ui/msg/sign_side_bottom, 32, 16, ui/msg/sign_corner_topleft] + - [auto, ci4, ui/msg/sign_fill, 8, 8, ui/msg/sign_corner_topleft] + # these two palettes can be applied to all sign and lamppost frame images + - [auto, palette, ui/msg/sign_corner_topleft] + - [auto, palette, ui/msg/lamppost_corner_bottomright] + - [auto, i4, ui/msg/background, 64, 64] + - [auto, ci4, ui/msg/rewind_arrow, 24, 24] + - [auto, palette, ui/msg/rewind_arrow] + - [auto, rgba16, ui/msg/star, 16, 18] + - [auto, i4, ui/msg/star_silhouette, 16, 20] + - type: group + dir: charset + vram: 0 + start: 0x10F330 + subsegments: + - [0x10F330, linker_offset, kana] + - [0x10F330, pm_charset, kana, 16, 14, 0xC7, standard] + - [0x114A40, linker_offset, latin] + - [0x114A40, pm_charset, latin, 16, 14, 0x1B, standard] + - [0x115610, linker_offset, kanji] + - [0x115610, pm_charset, kanji, 16, 14, 0x79, standard] + - [0x118B00, linker_offset, buttons] + - [0x118B00, pm_charset, buttons, 16, 14, 0xA, standard] + - [0x118F60, linker_offset, menu_kana] + - [0x118F60, pm_charset, menu_kana, 12, 12, 0xC8, standard] + - [0x11C7A0, linker_offset, menu_latin] + - [0x11C7A0, pm_charset, menu_latin, 12, 12, 0x1B, standard] + - [0x11CF38, linker_offset, standard_pal] + - [0x11CF38, pm_charset_palettes, standard, 0x50] + - [0x11D438, linker_offset, title] + - [0x11D438, pm_charset, title, 12, 15, 0x29] + - [0x11E398, linker_offset, subtitle] + - [0x11E398, pm_charset, subtitle, 12, 12, 0x29] + - [0x11EF20, linker_offset, credits_pal] + - [0x11EF20, pm_charset_palettes, subtitle, 1] + - [0x11EF30, pm_charset_palettes, title, 1] + - [0x11EF40, ci8, peach_letter, 150, 105] + - [0x122CC8, palette, peach_letter] + - [0x122EC8, linker_offset, postcard] + - [0x122EC8, ci4, postcard, 150, 105] + - [0x124D90, linker_offset, postcard_pal] + - [0x124D90, palette, postcard] + - [0x124DB0, linker_offset, letter_content_1] + - [0x124DB0, ci8, letter_content_1, 70, 95] + - [0x1267B0, linker_offset, letter_content_1_pal] + - [0x1267B0, palette, letter_content_1] + - [0x1269B0, linker_offset, letter_content_2] + - [0x1269B0, ci8, letter_content_2, 70, 95] + - [0x1283B0, linker_offset, letter_content_2_pal] + - [0x1283B0, palette, letter_content_2] + - [0x1285B0, linker_offset, letter_content_3] + - [0x1285B0, ci8, letter_content_3, 70, 95] + - [0x129FB0, linker_offset, letter_content_3_pal] + - [0x129FB0, palette, letter_content_3] + - [0x12A1B0, linker_offset, letter_content_4] + - [0x12A1B0, ci8, letter_content_4, 70, 95] + - [0x12BBB0, linker_offset, letter_content_4_pal] + - [0x12BBB0, palette, letter_content_4] + - [0x12BDB0, linker_offset, letter_content_5] + - [0x12BDB0, ci8, letter_content_5, 70, 95] + - [0x12D7B0, linker_offset, letter_content_5_pal] + - [0x12D7B0, palette, letter_content_5] + - [0x12D9B0, linker_offset, letter_content_6] + - [0x12D9B0, ci8, letter_content_6, 70, 95] + - [0x12F3B0, linker_offset, letter_content_6_pal] + - [0x12F3B0, palette, letter_content_6] + - [0x12F5B0, linker_offset, letter_content_7] + - [0x12F5B0, ci8, letter_content_7, 70, 95] + - [0x130FB0, linker_offset, letter_content_7_pal] + - [0x130FB0, palette, letter_content_7] + - [0x1311B0, linker_offset, letter_content_8] + - [0x1311B0, ci8, letter_content_8, 70, 95] + - [0x132BB0, linker_offset, letter_content_8_pal] + - [0x132BB0, palette, letter_content_8] + - [0x132DB0, linker_offset, letter_content_9] + - [0x132DB0, ci8, letter_content_9, 70, 95] + - [0x1347B0, linker_offset, letter_content_9_pal] + - [0x1347B0, palette, letter_content_9] + - [0x1349B0, linker_offset, letter_content_10] + - [0x1349B0, ci8, letter_content_10, 70, 95] + - [0x1363B0, linker_offset, letter_content_10_pal] + - [0x1363B0, palette, letter_content_10] + - [0x1365B0, linker_offset, letter_content_11] + - [0x1365B0, ci8, letter_content_11, 70, 95] + - [0x137FB0, linker_offset, letter_content_11_pal] + - [0x137FB0, palette, letter_content_11] + - [0x1381B0, linker_offset, letter_content_12] + - [0x1381B0, ci8, letter_content_12, 70, 95] + - [0x139BB0, linker_offset, letter_content_12_pal] + - [0x139BB0, palette, letter_content_12] + - [0x139DB0, bin] - name: battle_code type: bin diff --git a/ver/jp/symbol_addrs.txt b/ver/jp/symbol_addrs.txt index 74dc6cc8aaa..26ec259f6e9 100644 --- a/ver/jp/symbol_addrs.txt +++ b/ver/jp/symbol_addrs.txt @@ -2925,3 +2925,80 @@ ScreenOverlays = 0x80161710; AmbientSoundData = 0x80161740; D_8015C7E0 = 0x80161760; D_8015C800 = 0x80161780; +ui_msg_bubble_left_png = 0x802E6790; // rom:0x10D030 +ui_msg_bubble_mid_png = 0x802E6B90; // rom:0x10D430 +ui_msg_bubble_right_png = 0x802E6C90; // rom:0x10D530 +ui_msg_arrow_png = 0x802E7090; // rom:0x10D930 +ui_msg_frame_a_1_1_png = 0x802E7110; // rom:0x10D9B0 +ui_msg_frame_a_1_2_png = 0x802E7130; // rom:0x10D9D0 +ui_msg_frame_a_1_3_png = 0x802E7150; // rom:0x10D9F0 +ui_msg_frame_a_1_4_png = 0x802E7170; // rom:0x10DA10 +ui_msg_frame_a_1_5_png = 0x802E7190; // rom:0x10DA30 +ui_msg_frame_a_2_1_png = 0x802E71B0; // rom:0x10DA50 +ui_msg_frame_a_2_5_png = 0x802E71D0; // rom:0x10DA70 +ui_msg_frame_a_3_1_png = 0x802E71F0; // rom:0x10DA90 +ui_msg_frame_a_3_5_png = 0x802E7210; // rom:0x10DAB0 +ui_msg_frame_a_4_1_png = 0x802E7230; // rom:0x10DAD0 +ui_msg_frame_a_4_5_png = 0x802E7250; // rom:0x10DAF0 +ui_msg_frame_a_5_1_png = 0x802E7270; // rom:0x10DB10 +ui_msg_frame_a_5_2_png = 0x802E7290; // rom:0x10DB30 +ui_msg_frame_a_5_3_png = 0x802E72B0; // rom:0x10DB50 +ui_msg_frame_a_5_4_png = 0x802E72D0; // rom:0x10DB70 +ui_msg_frame_a_5_5_png = 0x802E72F0; // rom:0x10DB90 +ui_msg_frame_b_1_1_png = 0x802E7310; // rom:0x10DBB0 +ui_msg_frame_b_1_2_png = 0x802E7330; // rom:0x10DBD0 +ui_msg_frame_b_1_3_png = 0x802E7350; // rom:0x10DBF0 +ui_msg_frame_b_1_4_png = 0x802E7370; // rom:0x10DC10 +ui_msg_frame_b_1_5_png = 0x802E7390; // rom:0x10DC30 +ui_msg_frame_b_2_1_png = 0x802E73B0; // rom:0x10DC50 +ui_msg_frame_b_2_5_png = 0x802E73D0; // rom:0x10DC70 +ui_msg_frame_b_3_1_png = 0x802E73F0; // rom:0x10DC90 +ui_msg_frame_b_3_5_png = 0x802E7410; // rom:0x10DCB0 +ui_msg_frame_b_4_1_png = 0x802E7430; // rom:0x10DCD0 +ui_msg_frame_b_4_5_png = 0x802E7450; // rom:0x10DCF0 +ui_msg_frame_b_5_1_png = 0x802E7470; // rom:0x10DD10 +ui_msg_frame_b_5_2_png = 0x802E7490; // rom:0x10DD30 +ui_msg_frame_b_5_3_png = 0x802E74B0; // rom:0x10DD50 +ui_msg_frame_b_5_4_png = 0x802E74D0; // rom:0x10DD70 +ui_msg_frame_b_5_5_png = 0x802E74F0; // rom:0x10DD90 +ui_msg_palettes = 0x802E7510; // rom:0x10DDB0 +ui_msg_sign_corner_topleft_png = 0x802E7710; // rom:0x10DFB0 +ui_msg_sign_corner_topright_png = 0x802E7790; // rom:0x10E030 +ui_msg_sign_corner_bottomleft_png = 0x802E7810; // rom:0x10E0B0 +ui_msg_sign_corner_bottomright_png = 0x802E7890; // rom:0x10E130 +ui_msg_lamppost_corner_bottomright_png = 0x802E7910; // rom:0x10E1B0 +ui_msg_sign_side_top_png = 0x802E7990; // rom:0x10E230 +ui_msg_sign_side_left_png = 0x802E7A90; // rom:0x10E330 +ui_msg_sign_side_right_png = 0x802E7BD0; // rom:0x10E470 +ui_msg_sign_side_bottom_png = 0x802E7D10; // rom:0x10E5B0 +ui_msg_sign_fill_png = 0x802E7E10; // rom:0x10E6B0 +ui_msg_sign_pal = 0x802E7E30; // rom:0x10E6D0 +ui_msg_lamppost_pal = 0x802E7E50; // rom:0x10E6F0 +ui_msg_background_png = 0x802E7E70; // rom:0x10E710 +ui_msg_rewind_arrow_png = 0x802E8670; // rom:0x10EF10 +ui_msg_rewind_arrow_pal = 0x802E8790; // rom:0x10F030 +ui_msg_star_png = 0x802E87B0; // rom:0x10F050 +ui_msg_star_silhouette_png = 0x802E89F0; // rom:0x10F290 +MsgVoices = 0x802E676C; // rom:0x10D00C +MsgLetterRasterOffsets = 0x802E670C; // rom:0x10CFAC +MsgLetterPaletteOffsets = 0x802E673C; // rom:0x10CFDC +MsgCharsets = 0x802E66F4; // rom:0x10CF94 +MsgCharImgTitle = 0x802F3670; +MsgCharImgSubtitle = 0x802ECA30; +MsgCharWidthTitle = 0x802E6654; // rom:0x10CEF4 +MsgCharWidthSubtitle = 0x802E6680; // rom:0x10CF20 +MsgCharDataTitle = 0x802E66AC; // rom:0x10CF4C +MsgCharDataSubtitle = 0x802E66C4; // rom:0x10CF64 +MsgCharsetTitle = 0x802E66DC; // rom:0x10CF7C +MsgCharsetSubtitle = 0x802E66E8; // rom:0x10CF88 +MsgCharsetNormal = 0x802E660C; // rom:0x10CEAC +MsgCharsetMenu = 0x802E663C; // rom:0x10CEDC +MsgCharsetMenu2 = 0x802E6648; // rom:0x10CEE8 +MsgCharDataMenu = 0x802E6618; // rom:0x10CEB8 +MsgCharDataNormal = 0x802E65D0; // rom:0x10CE70 +MsgCharWidthMenuKana = 0x802E64EC; // rom:0x10CD8C +MsgCharWidthMenuLatin = 0x802E65B4; // rom:0x10CE54 +MsgCharWidthKana = 0x802E6380; // rom:0x10CC20 +MsgCharWidthLatin = 0x802E6448; // rom:0x10CCE8 +MsgCharWidthKanji = 0x802E6464; // rom:0x10CD04 +MsgCharWidthButtons = 0x802E64E0; // rom:0x10CD80 From e3d60ac76cae7d41af6a8f20ae2699cfd8aac205 Mon Sep 17 00:00:00 2001 From: AltoXorg <56553686+Alto1772@users.noreply.github.com> Date: Mon, 25 Dec 2023 22:40:57 +0800 Subject: [PATCH 10/18] update msg ids --- include/enums.h | 2 +- src/8a860_len_3f30.c | 2 +- tools/splat_ext/msg_jp.yaml | 47 +++++++++++++++++++++++++++++++++++ tools/splat_ext/pm_charset.py | 2 +- 4 files changed, 50 insertions(+), 3 deletions(-) diff --git a/include/enums.h b/include/enums.h index a08c9f8480a..452c98cf657 100644 --- a/include/enums.h +++ b/include/enums.h @@ -5777,7 +5777,7 @@ enum MsgChars { MSG_CHAR_KANJI_5F = 0x5F, MSG_CHAR_KANJI_60 = 0x60, MSG_CHAR_CIRCLE = 0x61, - MSG_CHAR_TIMES = 0x62, + MSG_CHAR_CROSS = 0x62, MSG_CHAR_KANJI_63 = 0x63, MSG_CHAR_KANJI_64 = 0x64, MSG_CHAR_KANJI_65 = 0x65, diff --git a/src/8a860_len_3f30.c b/src/8a860_len_3f30.c index 9bdb383d23e..ff4e7a82ad7 100644 --- a/src/8a860_len_3f30.c +++ b/src/8a860_len_3f30.c @@ -1837,7 +1837,7 @@ void popup_menu_draw_title_contents( break; #if VERSION_JP case POPUP_MENU_UPGRADE_PARTNER: - draw_msg(MSG_Menus_JP_004D, baseX + 20, baseY + 2, PopupMenu_Alpha, MSG_PAL_34, DRAW_MSG_STYLE_MENU); + draw_msg(MSG_Menus_PartyMember, baseX + 20, baseY + 2, PopupMenu_Alpha, MSG_PAL_34, DRAW_MSG_STYLE_MENU); break; #endif case POPUP_MENU_READ_LETTER: diff --git a/tools/splat_ext/msg_jp.yaml b/tools/splat_ext/msg_jp.yaml index 76755779f2b..47fe7864880 100644 --- a/tools/splat_ext/msg_jp.yaml +++ b/tools/splat_ext/msg_jp.yaml @@ -1,6 +1,12 @@ # This file describes what to name messages when splitting. - [0x00, 0x0000, NONE] +- [0x20, 0x0000, Menus_Tutorial_SaveBlock] +- [0x20, 0x0001, Menus_Tutorial_HeartBlock] +- [0x20, 0x0002, Menus_Tutorial_GotItem] +- [0x20, 0x0003, Menus_Tutorial_GotStarPiece] +- [0x20, 0x0004, Menus_SavePrompt] +- [0x20, 0x0005, Menus_SaveComplete] - [0x20, 0x000E, Menus_Party_Goombario] - [0x20, 0x000F, Menus_Party_Kooper] - [0x20, 0x0010, Menus_Party_Bombette] @@ -37,12 +43,53 @@ - [0x20, 0x0069, Menus_Jump] - [0x20, 0x006A, Menus_Hammer] - [0x20, 0x006B, Menus_Items] +- [0x20, 0x004D, Menus_PartyMember] +- [0x20, 0x004F, Menus_JP_004F] +- [0x20, 0x0050, Menus_JP_0050] +- [0x20, 0x0051, Menus_DoubleDip] +- [0x20, 0x0052, Menus_TripleDip] +- [0x20, 0x006C, Menus_0058] +- [0x20, 0x006D, Menus_0059] +- [0x20, 0x006E, Menus_005A] +- [0x20, 0x006F, Menus_005B] +- [0x20, 0x0070, Menus_005C] +- [0x20, 0x0071, Menus_005D] +- [0x20, 0x0072, Menus_005E] +- [0x20, 0x0073, Menus_005F] +- [0x20, 0x0074, Menus_0060] +- [0x20, 0x0075, Menus_0061] +- [0x20, 0x0076, Menus_0062] +- [0x20, 0x0077, Menus_0063] +- [0x20, 0x0078, Menus_0064] +- [0x20, 0x0079, Menus_0065] +- [0x20, 0x007A, Menus_0066] +- [0x20, 0x007B, Menus_0067] +- [0x20, 0x007C, Menus_0068] +- [0x20, 0x007D, Menus_0069] +- [0x20, 0x007E, Menus_0070] +- [0x20, 0x007F, Menus_006A] +- [0x20, 0x0080, Menus_006B] +- [0x20, 0x0081, Menus_JP_0081] +- [0x20, 0x0082, Menus_006C] +- [0x20, 0x0082, Menus_006E] +- [0x20, 0x0083, Menus_006D] +- [0x20, 0x0084, Menus_JP_0084] +- [0x20, 0x0085, Menus_006F] +- [0x20, 0x00E7, Menus_00CD] +- [0x20, 0x00E8, Menus_00CE] +- [0x20, 0x00EA, Menus_00D0] +- [0x20, 0x00F0, Menus_00D6] +- [0x20, 0x00F1, Menus_00D7] - [0x20, 0x0089, Menus_Merlee_IncreaseCoins] - [0x20, 0x008A, Menus_Merlee_Exhausted] - [0x20, 0x00BB, Menus_Action_UseItem] - [0x20, 0x00C4, Menus_PlayerFirstStrike] - [0x20, 0x00C5, Menus_PartnerFirstStrike] - [0x20, 0x00C6, Menus_EnemyFirstStrike] +- [0x21, 0x000A, Choice_000A] +- [0x21, 0x001D, Choice_001D] +- [0x22, 0x0001, MenuTip_0032] +- [0x22, 0x0014, MenuTip_0033] - [0x28, 0x0000, ItemShortDesc_FireFlower] - [0x28, 0x0001, ItemShortDesc_SnowmanDoll] - [0x28, 0x0002, ItemShortDesc_ThunderRage] diff --git a/tools/splat_ext/pm_charset.py b/tools/splat_ext/pm_charset.py index 0351ae7dd5a..60de269c5f4 100644 --- a/tools/splat_ext/pm_charset.py +++ b/tools/splat_ext/pm_charset.py @@ -56,7 +56,7 @@ def get_palette_idx(charset_name, char_id): elif char_id == 0x08: pal_id = 0x14 elif char_id == 0x09: - pal_id = 0x15 + pal_id = 0x14 return pal_id From 8bbef8a952c400dc060c3f4d6845a9146c847d0b Mon Sep 17 00:00:00 2001 From: AltoXorg <56553686+Alto1772@users.noreply.github.com> Date: Thu, 11 Jan 2024 23:44:19 +0800 Subject: [PATCH 11/18] os stuff --- include/enums.h | 2 +- src/msg_data.c | 4 +- src/os/initialize.c | 6 --- ver/jp/asm/os/__osGetSR.s | 2 +- ver/jp/asm/os/exceptasm.s | 37 ++++++++++++---- ver/jp/asm/os/parameters.s | 63 +++++++++++++-------------- ver/jp/splat.yaml | 1 + ver/jp/undefined_syms.txt | 18 +------- ver/us/asm/os/exceptasm.s | 88 ++++++++++++++++++++++++++++++++------ ver/us/splat.yaml | 1 + 10 files changed, 145 insertions(+), 77 deletions(-) diff --git a/include/enums.h b/include/enums.h index 452c98cf657..e0b916a4785 100644 --- a/include/enums.h +++ b/include/enums.h @@ -5633,7 +5633,7 @@ enum MsgChars { MSG_CHAR_QUESTION = 0xB6, MSG_CHAR_PLUS = 0xB7, MSG_CHAR_MINUS = 0xB8, - MSG_CHAR_SLASH = 0xB9, + MSG_CHAR_FORWARDSLASH = 0xB9, MSG_CHAR_PERIOD = 0xBA, MSG_CHAR_AND = 0xBB, MSG_CHAR_HASH = 0xBC, diff --git a/src/msg_data.c b/src/msg_data.c index aa25e7ee383..500784e2fbb 100644 --- a/src/msg_data.c +++ b/src/msg_data.c @@ -196,7 +196,7 @@ u8 MsgCharWidthKana[] = { [MSG_CHAR_QUESTION] 10, [MSG_CHAR_PLUS] 9, [MSG_CHAR_MINUS] 9, - [MSG_CHAR_SLASH] 11, + [MSG_CHAR_FORWARDSLASH] 11, [MSG_CHAR_PERIOD] 8, [MSG_CHAR_AND] 10, [MSG_CHAR_HASH] 11, @@ -446,7 +446,7 @@ u8 MsgCharWidthMenuKana[] = { [MSG_CHAR_QUESTION] 9, [MSG_CHAR_PLUS] 9, [MSG_CHAR_MINUS] 9, - [MSG_CHAR_SLASH] 10, + [MSG_CHAR_FORWARDSLASH] 10, [MSG_CHAR_PERIOD] 7, [MSG_CHAR_AND] 9, [MSG_CHAR_HASH] 9, diff --git a/src/os/initialize.c b/src/os/initialize.c index 1716ce26af8..b00bcd4568a 100644 --- a/src/os/initialize.c +++ b/src/os/initialize.c @@ -41,12 +41,6 @@ u32 __kmc_pt_mode; void* __printfunc = NULL; #endif -#if !VERSION_IQUE -s32 D_80095904[3] = { 0 }; // padding? -s32 D_80095910[10] = { 0 }; -s32 D_80095938[2] = { 0 }; -#endif - void __createSpeedParam(void) { __Dom1SpeedParam.type = DEVICE_TYPE_INIT; __Dom1SpeedParam.latency = IO_READ(PI_BSD_DOM1_LAT_REG); diff --git a/ver/jp/asm/os/__osGetSR.s b/ver/jp/asm/os/__osGetSR.s index c7cc499a145..1dde530b9f5 100644 --- a/ver/jp/asm/os/__osGetSR.s +++ b/ver/jp/asm/os/__osGetSR.s @@ -10,7 +10,7 @@ /* Generated by spimdisasm 1.11.1 */ # Handwritten function -glabel func_JP_8006C650 +glabel __osGetSR /* 47A50 8006C650 40026000 */ mfc0 $v0, $12 # handwritten instruction /* 47A54 8006C654 03E00008 */ jr $ra /* 47A58 8006C658 00000000 */ nop diff --git a/ver/jp/asm/os/exceptasm.s b/ver/jp/asm/os/exceptasm.s index bfd23ff36d3..41fadbb5728 100644 --- a/ver/jp/asm/os/exceptasm.s +++ b/ver/jp/asm/os/exceptasm.s @@ -7,7 +7,7 @@ .section .rodata -glabel D_JP_80099D60 +glabel __osIntOffTable /* 75160 80099D60 */ .byte 0x00 /* 75161 80099D61 */ .byte 0x14 /* 75162 80099D62 */ .byte 0x18 @@ -42,7 +42,7 @@ glabel D_JP_80099D60 /* 7517F 80099D7F */ .byte 0x10 .align 3 -glabel jtbl_JP_80099D80 +glabel __osIntTable /* 75180 80099D80 8006AEE0 */ .word .LJP_8006AEE0 /* 75184 80099D84 8006AEA4 */ .word .LJP_8006AEA4 /* 75188 80099D88 8006AE80 */ .word .LJP_8006AE80 @@ -55,6 +55,27 @@ glabel jtbl_JP_80099D80 /* 751A4 80099DA4 00000000 */ .word 0x00000000 /* 751A8 80099DA8 00000000 */ .word 0x00000000 /* 751AC 80099DAC 00000000 */ .word 0x00000000 +.size __osIntTable, . - __osIntTable + +.section .data + +glabel __osHwIntTable + .word 0x00000000 + .word 0x00000000 + .word 0x00000000 + .word 0x00000000 + .word 0x00000000 + .word 0x00000000 + .word 0x00000000 + .word 0x00000000 + .word 0x00000000 + .word 0x00000000 +.size __osHwIntTable, . - __osHwIntTable + +glabel __osPiIntTable + .word 0x00000000 + .word 0x00000000 +.size __osPiIntTable, . - __osPiIntTable .section .text, "ax" @@ -211,12 +232,12 @@ glabel osExceptionPreamble /* 45FFC 8006ABFC 00095202 */ srl $t2, $t1, 8 /* 46000 8006AC00 214A0010 */ addi $t2, $t2, 0x10 # handwritten instruction .LJP_8006AC04: -/* 46004 8006AC04 3C01800A */ lui $at, %hi(D_JP_80099D60) +/* 46004 8006AC04 3C01800A */ lui $at, %hi(__osIntOffTable) /* 46008 8006AC08 002A0821 */ addu $at, $at, $t2 -/* 4600C 8006AC0C 902A9D60 */ lbu $t2, %lo(D_JP_80099D60)($at) -/* 46010 8006AC10 3C01800A */ lui $at, %hi(jtbl_JP_80099D80) +/* 4600C 8006AC0C 902A9D60 */ lbu $t2, %lo(__osIntOffTable)($at) +/* 46010 8006AC10 3C01800A */ lui $at, %hi(__osIntTable) /* 46014 8006AC14 002A0821 */ addu $at, $at, $t2 -/* 46018 8006AC18 8C2A9D80 */ lw $t2, %lo(jtbl_JP_80099D80)($at) +/* 46018 8006AC18 8C2A9D80 */ lw $t2, %lo(__osIntTable)($at) /* 4601C 8006AC1C 01400008 */ jr $t2 /* 46020 8006AC20 00000000 */ nop glabel .LJP_8006AC24 @@ -330,8 +351,8 @@ glabel .LJP_8006ACA8 /* 461A8 8006ADA8 24090002 */ addiu $t1, $zero, 0x2 /* 461AC 8006ADAC 3C01A460 */ lui $at, %hi(D_A4600010) /* 461B0 8006ADB0 AC290010 */ sw $t1, %lo(D_A4600010)($at) -/* 461B4 8006ADB4 3C098009 */ lui $t1, %hi(D_80095938) -/* 461B8 8006ADB8 252958C8 */ addiu $t1, $t1, %lo(D_80095938) +/* 461B4 8006ADB4 3C098009 */ lui $t1, %hi(__osPiIntTable) +/* 461B8 8006ADB8 252958C8 */ addiu $t1, $t1, %lo(__osPiIntTable) /* 461BC 8006ADBC 8D2A0000 */ lw $t2, 0x0($t1) /* 461C0 8006ADC0 11400006 */ beqz $t2, .LJP_8006ADDC /* 461C4 8006ADC4 00000000 */ nop diff --git a/ver/jp/asm/os/parameters.s b/ver/jp/asm/os/parameters.s index 76bc4e703e5..73d6bcc4541 100644 --- a/ver/jp/asm/os/parameters.s +++ b/ver/jp/asm/os/parameters.s @@ -1,36 +1,37 @@ .include "macro.inc" -/* assembler directives */ -.set noat /* allow manual use of $at */ -.set noreorder /* don't insert nops after branches */ -.set gp=64 /* allow use of 64-bit general purpose registers */ +# assembler directives +.set noat # allow manual use of $at +.set noreorder # don't insert nops after branches +.set gp=64 # allow use of 64-bit general purpose registers .section .text, "ax" -/* Generated by spimdisasm 1.11.1 */ - -glabel func_JP_8006A5B0 -/* 459B0 8006A5B0 00000000 */ nop -/* 459B4 8006A5B4 00000000 */ nop -/* 459B8 8006A5B8 00000000 */ nop -/* 459BC 8006A5BC 00000000 */ nop -/* 459C0 8006A5C0 00000000 */ nop -/* 459C4 8006A5C4 00000000 */ nop -/* 459C8 8006A5C8 00000000 */ nop -/* 459CC 8006A5CC 00000000 */ nop -/* 459D0 8006A5D0 00000000 */ nop -/* 459D4 8006A5D4 00000000 */ nop -/* 459D8 8006A5D8 00000000 */ nop -/* 459DC 8006A5DC 00000000 */ nop -/* 459E0 8006A5E0 00000000 */ nop -/* 459E4 8006A5E4 00000000 */ nop -/* 459E8 8006A5E8 00000000 */ nop -/* 459EC 8006A5EC 00000000 */ nop -/* 459F0 8006A5F0 00000000 */ nop -/* 459F4 8006A5F4 00000000 */ nop -/* 459F8 8006A5F8 00000000 */ nop -/* 459FC 8006A5FC 00000000 */ nop -/* 45A00 8006A600 00000000 */ nop -/* 45A04 8006A604 00000000 */ nop -/* 45A08 8006A608 00000000 */ nop -/* 45A0C 8006A60C 00000000 */ nop +.globl leoBootID +leoBootID = 0x800001a0 + +.globl osTvType +osTvType = 0x80000300 + +.globl osRomType +osRomType = 0x80000304 + +.globl osRomBase +osRomBase = 0x80000308 + +.globl osResetType +osResetType = 0x8000030C + +.globl osCicId +osCicId = 0x80000310 + +.globl osVersion +osVersion = 0x80000314 + +.globl osMemSize +osMemSize = 0x80000318 + +.globl osAppNMIBuffer +osAppNMIBuffer = 0x8000031C + +.fill 0x60 diff --git a/ver/jp/splat.yaml b/ver/jp/splat.yaml index a991f681363..eb7bd17c333 100644 --- a/ver/jp/splat.yaml +++ b/ver/jp/splat.yaml @@ -383,6 +383,7 @@ segments: - [auto, .data, os/contpfs] - [auto, .data, os/contramread] - [auto, .data, os/initialize] + - [auto, .data, os/exceptasm] - [auto, .data, os/xlitob] - [auto, .data, os/vi] - [auto, .data, os/vimodepallan1] diff --git a/ver/jp/undefined_syms.txt b/ver/jp/undefined_syms.txt index 3620ff988e3..b9195e2064b 100644 --- a/ver/jp/undefined_syms.txt +++ b/ver/jp/undefined_syms.txt @@ -7,10 +7,6 @@ D_A450000C = 0xA450000C; D_A4600010 = 0xA4600010; D_A4800018 = 0xA4800018; -sprite_shading_profiles_data_ROM_START = sprite_shading_profiles_ROM_START + 0x1D0; - -obfuscated_obfuscation_shims_ROM_START = 0xF79E611F; - filemenu_ROM_START = 0x0016B550; filemenu_ROM_END = 0x01749F0; filemenu_VRAM = 0x80242370; @@ -31,23 +27,13 @@ pause_RODATA_END = 0x8026F790; pause_BSS_START = 0x8026F790; pause_BSS_END = 0x80277D00; +sprite_shading_profiles_data_ROM_START = sprite_shading_profiles_ROM_START + 0x1D0; battle_heap_create_obfuscated_ROM_START = 0x31F1A0; obfuscation_shims_ROM_START = 0x31F340; battle_heap_create_obfuscated_ROM_END = 0x31F340; obfuscation_shims_ROM_END = 0x31F430; obfuscated_obfuscation_shims_VRAM = 0x7599F6D8; -osMemSize = 0x80000318; -osTvType = 0x80000300; -osRomBase = 0x80000308; -osResetType = 0x8000030C; -osAppNMIBuffer = 0x8000031C; - -// main.data - -__osGetSR = 0x8006C650; -__osHwIntTable = 0x800958A0; - -// main.bss +obfuscated_obfuscation_shims_ROM_START = 0xF79E611F; // subsequent segments D_80197000 = 0x80197000; diff --git a/ver/us/asm/os/exceptasm.s b/ver/us/asm/os/exceptasm.s index aed93c4a017..beae7ec8f96 100644 --- a/ver/us/asm/os/exceptasm.s +++ b/ver/us/asm/os/exceptasm.s @@ -7,11 +7,75 @@ .section .rodata -dlabel jtbl_80099D80 -.word 0x141818, 0x1C1C1C1C, 0x20202020, 0x20202020, 0x40808, 0xC0C0C0C, 0x10101010, 0x10101010 +glabel __osIntOffTable + .byte 0x00 + .byte 0x14 + .byte 0x18 + .byte 0x18 + .byte 0x1C + .byte 0x1C + .byte 0x1C + .byte 0x1C + .byte 0x20 + .byte 0x20 + .byte 0x20 + .byte 0x20 + .byte 0x20 + .byte 0x20 + .byte 0x20 + .byte 0x20 + .byte 0x00 + .byte 0x04 + .byte 0x08 + .byte 0x08 + .byte 0x0C + .byte 0x0C + .byte 0x0C + .byte 0x0C + .byte 0x10 + .byte 0x10 + .byte 0x10 + .byte 0x10 + .byte 0x10 + .byte 0x10 + .byte 0x10 + .byte 0x10 +.size __osIntOffTable, . - __osIntOffTable -dlabel jtbl_80099DA0 -.word .L8006AF00_46300, .L8006AEC4_462C4, .L8006AEA0_462A0, .L8006ACC8_460C8, .L8006AC80_46080, .L8006AE3C_4623C, .L8006AC44_46044, .L8006AC50_46050, .L8006AC5C_4605C, 0, 0, 0 +glabel __osIntTable + .word .L8006AF00_46300 + .word .L8006AEC4_462C4 + .word .L8006AEA0_462A0 + .word .L8006ACC8_460C8 + .word .L8006AC80_46080 + .word .L8006AE3C_4623C + .word .L8006AC44_46044 + .word .L8006AC50_46050 + .word .L8006AC5C_4605C + .word 0x00000000 + .word 0x00000000 + .word 0x00000000 +.size __osIntTable, . - __osIntTable + +.section .data + +glabel __osHwIntTable + .word 0x00000000 + .word 0x00000000 + .word 0x00000000 + .word 0x00000000 + .word 0x00000000 + .word 0x00000000 + .word 0x00000000 + .word 0x00000000 + .word 0x00000000 + .word 0x00000000 +.size __osHwIntTable, . - __osHwIntTable + +glabel __osPiIntTable + .word 0x00000000 + .word 0x00000000 +.size __osPiIntTable, . - __osPiIntTable .section .text, "ax" @@ -166,12 +230,12 @@ glabel func_8006AA34 /* 4601C 8006AC1C 00095202 */ srl $t2, $t1, 8 /* 46020 8006AC20 214A0010 */ addi $t2, $t2, 0x10 .L8006AC24: -/* 46024 8006AC24 3C01800A */ lui $at, %hi(jtbl_80099D80) +/* 46024 8006AC24 3C01800A */ lui $at, %hi(__osIntOffTable) /* 46028 8006AC28 002A0821 */ addu $at, $at, $t2 -/* 4602C 8006AC2C 902A9D80 */ lbu $t2, %lo(jtbl_80099D80)($at) -/* 46030 8006AC30 3C01800A */ lui $at, %hi(jtbl_80099DA0) +/* 4602C 8006AC2C 902A9D80 */ lbu $t2, %lo(__osIntOffTable)($at) +/* 46030 8006AC30 3C01800A */ lui $at, %hi(__osIntTable) /* 46034 8006AC34 002A0821 */ addu $at, $at, $t2 -/* 46038 8006AC38 8C2A9DA0 */ lw $t2, %lo(jtbl_80099DA0)($at) +/* 46038 8006AC38 8C2A9DA0 */ lw $t2, %lo(__osIntTable)($at) /* 4603C 8006AC3C 01400008 */ jr $t2 /* 46040 8006AC40 00000000 */ nop .L8006AC44_46044: @@ -195,8 +259,8 @@ glabel func_8006AA34 .L8006AC80_46080: /* 46080 8006AC80 2401F7FF */ addiu $at, $zero, -0x801 /* 46084 8006AC84 02018024 */ and $s0, $s0, $at -/* 46088 8006AC88 3C098009 */ lui $t1, %hi(D_80095910) -/* 4608C 8006AC8C 25295910 */ addiu $t1, $t1, %lo(D_80095910) +/* 46088 8006AC88 3C098009 */ lui $t1, %hi(__osHwIntTable) +/* 4608C 8006AC8C 25295910 */ addiu $t1, $t1, %lo(__osHwIntTable) /* 46090 8006AC90 21290008 */ addi $t1, $t1, 8 /* 46094 8006AC94 8D2A0000 */ lw $t2, ($t1) /* 46098 8006AC98 11400007 */ beqz $t2, .L8006ACB8 @@ -285,8 +349,8 @@ glabel func_8006AA34 /* 461C8 8006ADC8 24090002 */ addiu $t1, $zero, 2 /* 461CC 8006ADCC 3C01A460 */ lui $at, %hi(D_A4600010) /* 461D0 8006ADD0 AC290010 */ sw $t1, %lo(D_A4600010)($at) -/* 461D4 8006ADD4 3C098009 */ lui $t1, %hi(D_80095938) -/* 461D8 8006ADD8 25295938 */ addiu $t1, $t1, %lo(D_80095938) +/* 461D4 8006ADD4 3C098009 */ lui $t1, %hi(__osPiIntTable) +/* 461D8 8006ADD8 25295938 */ addiu $t1, $t1, %lo(__osPiIntTable) /* 461DC 8006ADDC 8D2A0000 */ lw $t2, ($t1) /* 461E0 8006ADE0 11400006 */ beqz $t2, .L8006ADFC /* 461E4 8006ADE4 00000000 */ nop diff --git a/ver/us/splat.yaml b/ver/us/splat.yaml index 29fd87cd8e1..4f0ce7319bf 100644 --- a/ver/us/splat.yaml +++ b/ver/us/splat.yaml @@ -427,6 +427,7 @@ segments: - [auto, .data, os/contpfs] - [auto, .data, os/contramread] - [auto, .data, os/initialize] + - [auto, .data, os/exceptasm] - [auto, .data, os/xlitob] - [auto, .data, os/vi] - [auto, .data, os/pfsisplug] From 3f76ac004ca459ed65bec11f4f19ff0e2a6dba52 Mon Sep 17 00:00:00 2001 From: AltoXorg <56553686+Alto1772@users.noreply.github.com> Date: Fri, 12 Jan 2024 00:15:48 +0800 Subject: [PATCH 12/18] msg stuffs --- include/common_structs.h | 6 ++-- src/8a860_len_3f30.c | 72 +++++++++++++++++++------------------ tools/splat_ext/msg_jp.yaml | 25 +++++++------ 3 files changed, 53 insertions(+), 50 deletions(-) diff --git a/include/common_structs.h b/include/common_structs.h index 285d022748b..3df65a10c30 100644 --- a/include/common_structs.h +++ b/include/common_structs.h @@ -1169,9 +1169,9 @@ typedef struct ItemEntity { } ItemEntity; // size = 0x5C #if VERSION_JP -#define MESSAGEPRINTSTATE_BUFFER_SIZE 1024 +#define PRINT_BUFFER_SIZE 1024 #else -#define MESSAGEPRINTSTATE_BUFFER_SIZE 1088 // slightly larger than source buffer +#define PRINT_BUFFER_SIZE 1088 // slightly larger than source buffer #endif typedef struct MessagePrintState { @@ -1181,7 +1181,7 @@ typedef struct MessagePrintState { /* 0x008 */ s32 msgID; /* 0x00C */ u16 srcBufferPos; /* 0x00E */ u16 curPrintDelay; - /* 0x010 */ u8 printBuffer[MESSAGEPRINTSTATE_BUFFER_SIZE]; + /* 0x010 */ u8 printBuffer[PRINT_BUFFER_SIZE]; /* 0x450 */ s16 printBufferSize; /* 0x452 */ u16 effectFrameCounter; /* 0x454 */ u8 font; diff --git a/src/8a860_len_3f30.c b/src/8a860_len_3f30.c index ff4e7a82ad7..e87b3adae2e 100644 --- a/src/8a860_len_3f30.c +++ b/src/8a860_len_3f30.c @@ -1779,29 +1779,25 @@ void popup_menu_draw_title_contents(s32* userData, s32 baseX, s32 baseY, s32 wid #else #if VERSION_JP -#define MSG_USE_ITEM_DIFF MSG_Menus_JP_004F -#define MSG_USE_KEY_DIFF MSG_Menus_JP_0050 -#define X_TITLE_VAR1 35 -#define X_TITLE_VAR2 82 -#define X_TITLE_VAR3 102 -#define X_TITLE_VAR4 4 -#define X_TITLE_VAR5 38 -#define X_TITLE_VAR6 31 -#define X_TITLE_VAR7 16 -#define X_TITLE_VAR8 35 -#define X_TITLE_VAR9 23 +#define POPUP_ITEM_X 35 +#define POPUP_ITEMDIP_NUMBER_X 82 +#define POPUP_ITEMDIP_X 102 +#define POPUP_TRIPLE_DIP_X 4 +#define POPUP_BADGE_X 38 +#define POPUP_CHEST_X 31 +#define POPUP_POSTCARD_X 16 +#define POPUP_ITEM_KEY_X 35 +#define POPUP_POSTOFFICE_X 23 #else -#define MSG_USE_ITEM_DIFF MSG_Menus_Items -#define MSG_USE_KEY_DIFF MSG_Menus_Items -#define X_TITLE_VAR1 26 -#define X_TITLE_VAR2 94 -#define X_TITLE_VAR3 114 -#define X_TITLE_VAR4 6 -#define X_TITLE_VAR5 27 -#define X_TITLE_VAR6 4 -#define X_TITLE_VAR7 6 -#define X_TITLE_VAR8 27 -#define X_TITLE_VAR9 8 +#define POPUP_ITEM_X 26 +#define POPUP_ITEMDIP_NUMBER_X 94 +#define POPUP_ITEMDIP_X 114 +#define POPUP_TRIPLE_DIP_X 6 +#define POPUP_BADGE_X 27 +#define POPUP_CHEST_X 4 +#define POPUP_POSTCARD_X 6 +#define POPUP_ITEM_KEY_X 27 +#define POPUP_POSTOFFICE_X 8 #endif void popup_menu_draw_title_contents( @@ -1815,25 +1811,29 @@ void popup_menu_draw_title_contents( case POPUP_MENU_CLAIM_ITEM: switch (gPopupMenu->dipMode) { case 0: - draw_msg(MSG_USE_ITEM_DIFF, baseX + X_TITLE_VAR1, baseY + 2, PopupMenu_Alpha, MSG_PAL_32, DRAW_MSG_STYLE_MENU); +#if VERSION_JP + draw_msg(MSG_Menus_JP_004F, baseX + POPUP_ITEM_X, baseY + 2, PopupMenu_Alpha, MSG_PAL_32, DRAW_MSG_STYLE_MENU); +#else + draw_msg(MSG_Menus_Items, baseX + POPUP_ITEM_X, baseY + 2, PopupMenu_Alpha, MSG_PAL_32, DRAW_MSG_STYLE_MENU); +#endif break; case 1: draw_msg(MSG_Menus_DoubleDip, baseX + 4, baseY + 2, PopupMenu_Alpha, MSG_PAL_32, DRAW_MSG_STYLE_MENU); - draw_number(gPopupMenu->titleNumber, baseX + X_TITLE_VAR2, baseY + 2, DRAW_NUMBER_CHARSET_THIN, MSG_PAL_32, + draw_number(gPopupMenu->titleNumber, baseX + POPUP_ITEMDIP_NUMBER_X, baseY + 2, DRAW_NUMBER_CHARSET_THIN, MSG_PAL_32, PopupMenu_Alpha, DRAW_NUMBER_STYLE_MONOSPACE | DRAW_NUMBER_STYLE_ALIGN_RIGHT); - draw_number(2, baseX + X_TITLE_VAR3, baseY + 2, DRAW_NUMBER_CHARSET_THIN, MSG_PAL_32, PopupMenu_Alpha, DRAW_NUMBER_STYLE_MONOSPACE | DRAW_NUMBER_STYLE_ALIGN_RIGHT); + draw_number(2, baseX + POPUP_ITEMDIP_X, baseY + 2, DRAW_NUMBER_CHARSET_THIN, MSG_PAL_32, PopupMenu_Alpha, DRAW_NUMBER_STYLE_MONOSPACE | DRAW_NUMBER_STYLE_ALIGN_RIGHT); break; case 2: - draw_msg(MSG_Menus_TripleDip, baseX + X_TITLE_VAR4, baseY + 2, PopupMenu_Alpha, MSG_PAL_32, DRAW_MSG_STYLE_MENU); - draw_number(gPopupMenu->titleNumber, baseX + X_TITLE_VAR2, baseY + 2, DRAW_NUMBER_CHARSET_THIN, MSG_PAL_32, + draw_msg(MSG_Menus_TripleDip, baseX + POPUP_TRIPLE_DIP_X, baseY + 2, PopupMenu_Alpha, MSG_PAL_32, DRAW_MSG_STYLE_MENU); + draw_number(gPopupMenu->titleNumber, baseX + POPUP_ITEMDIP_NUMBER_X, baseY + 2, DRAW_NUMBER_CHARSET_THIN, MSG_PAL_32, PopupMenu_Alpha, DRAW_NUMBER_STYLE_MONOSPACE | DRAW_NUMBER_STYLE_ALIGN_RIGHT); - draw_number(3, baseX + X_TITLE_VAR3, baseY + 2, DRAW_NUMBER_CHARSET_THIN, MSG_PAL_32, PopupMenu_Alpha, + draw_number(3, baseX + POPUP_ITEMDIP_X, baseY + 2, DRAW_NUMBER_CHARSET_THIN, MSG_PAL_32, PopupMenu_Alpha, DRAW_NUMBER_STYLE_MONOSPACE | DRAW_NUMBER_STYLE_ALIGN_RIGHT); break; } break; case POPUP_MENU_TRADE_FOR_BADGE: - draw_msg(MSG_MenuTip_0032, baseX + X_TITLE_VAR5, baseY + 2, PopupMenu_Alpha, MSG_PAL_32, DRAW_MSG_STYLE_MENU); + draw_msg(MSG_MenuTip_0032, baseX + POPUP_BADGE_X, baseY + 2, PopupMenu_Alpha, MSG_PAL_32, DRAW_MSG_STYLE_MENU); break; #if VERSION_JP case POPUP_MENU_UPGRADE_PARTNER: @@ -1844,23 +1844,27 @@ void popup_menu_draw_title_contents( draw_msg(MSG_MenuTip_0033, baseX + 23, baseY + 2, PopupMenu_Alpha, MSG_PAL_32, DRAW_MSG_STYLE_MENU); break; case POPUP_MENU_TAKE_FROM_CHEST: - draw_msg(MSG_Menus_00D7, baseX + X_TITLE_VAR6, baseY + 2, PopupMenu_Alpha, MSG_PAL_32, DRAW_MSG_STYLE_MENU); + draw_msg(MSG_Menus_00D7, baseX + POPUP_CHEST_X, baseY + 2, PopupMenu_Alpha, MSG_PAL_32, DRAW_MSG_STYLE_MENU); break; case POPUP_MENU_READ_DIARY_PAGE: draw_msg(MSG_Menus_00CE, baseX + 8, baseY + 2, PopupMenu_Alpha, MSG_PAL_32, DRAW_MSG_STYLE_MENU); break; case POPUP_MENU_READ_POSTCARD: - draw_msg(MSG_Menus_00D0, baseX + X_TITLE_VAR7, baseY + 2, PopupMenu_Alpha, MSG_PAL_32, DRAW_MSG_STYLE_MENU); + draw_msg(MSG_Menus_00D0, baseX + POPUP_POSTCARD_X, baseY + 2, PopupMenu_Alpha, MSG_PAL_32, DRAW_MSG_STYLE_MENU); break; case POPUP_MENU_USEKEY: - draw_msg(MSG_USE_KEY_DIFF, baseX + X_TITLE_VAR8, baseY + 2, PopupMenu_Alpha, MSG_PAL_32, DRAW_MSG_STYLE_MENU); +#if VERSION_JP + draw_msg(MSG_Menus_KeyItems, baseX + POPUP_ITEM_KEY_X, baseY + 2, PopupMenu_Alpha, MSG_PAL_32, DRAW_MSG_STYLE_MENU); +#else + draw_msg(MSG_Menus_Items, baseX + POPUP_ITEM_KEY_X, baseY + 2, PopupMenu_Alpha, MSG_PAL_32, DRAW_MSG_STYLE_MENU); +#endif break; case POPUP_MENU_SWITCH_PARTNER: #if !VERSION_JP case POPUP_MENU_UPGRADE_PARTNER: #endif case POPUP_MENU_POST_OFFICE: - draw_msg(MSG_Menus_PartyMember, baseX + X_TITLE_VAR9, baseY + 2, PopupMenu_Alpha, MSG_PAL_34, DRAW_MSG_STYLE_MENU); + draw_msg(MSG_Menus_PartyMember, baseX + POPUP_POSTOFFICE_X, baseY + 2, PopupMenu_Alpha, MSG_PAL_34, DRAW_MSG_STYLE_MENU); break; } } @@ -2084,7 +2088,7 @@ void popup_draw_cost_icon(s32* userData, s32 x, s32 y) { break; #if VERSION_JP case POPUP_TYPE_UPGRADE_PARTNER: - draw_msg(MSG_Menus_JP_0084, x + 7, y + 2, PopupMenu_Alpha, MSG_PAL_34, 1); + draw_msg(MSG_Menus_006E, x + 7, y + 2, PopupMenu_Alpha, MSG_PAL_34, 1); return; #endif case POPUP_TYPE_SELL_ITEM: diff --git a/tools/splat_ext/msg_jp.yaml b/tools/splat_ext/msg_jp.yaml index 47fe7864880..70f7e304938 100644 --- a/tools/splat_ext/msg_jp.yaml +++ b/tools/splat_ext/msg_jp.yaml @@ -40,14 +40,14 @@ - [0x20, 0x002E, Menus_StarPowerDesc_UpAndAway] - [0x20, 0x002F, Menus_StarPowerDesc_StarBeam] - [0x20, 0x0030, Menus_StarPowerDesc_PeachBeam] -- [0x20, 0x0069, Menus_Jump] -- [0x20, 0x006A, Menus_Hammer] -- [0x20, 0x006B, Menus_Items] - [0x20, 0x004D, Menus_PartyMember] -- [0x20, 0x004F, Menus_JP_004F] -- [0x20, 0x0050, Menus_JP_0050] +- [0x20, 0x004F, Menus_JP_004F] # duplicate of Menus_Items +- [0x20, 0x0050, Menus_KeyItems] - [0x20, 0x0051, Menus_DoubleDip] - [0x20, 0x0052, Menus_TripleDip] +- [0x20, 0x0069, Menus_Jump] +- [0x20, 0x006A, Menus_Hammer] +- [0x20, 0x006B, Menus_Items] - [0x20, 0x006C, Menus_0058] - [0x20, 0x006D, Menus_0059] - [0x20, 0x006E, Menus_005A] @@ -69,23 +69,22 @@ - [0x20, 0x007E, Menus_0070] - [0x20, 0x007F, Menus_006A] - [0x20, 0x0080, Menus_006B] -- [0x20, 0x0081, Menus_JP_0081] +- [0x20, 0x0081, Menus_JP_0081] # duplicate of Menus_006D - [0x20, 0x0082, Menus_006C] -- [0x20, 0x0082, Menus_006E] - [0x20, 0x0083, Menus_006D] -- [0x20, 0x0084, Menus_JP_0084] +- [0x20, 0x0084, Menus_006E] - [0x20, 0x0085, Menus_006F] -- [0x20, 0x00E7, Menus_00CD] -- [0x20, 0x00E8, Menus_00CE] -- [0x20, 0x00EA, Menus_00D0] -- [0x20, 0x00F0, Menus_00D6] -- [0x20, 0x00F1, Menus_00D7] - [0x20, 0x0089, Menus_Merlee_IncreaseCoins] - [0x20, 0x008A, Menus_Merlee_Exhausted] - [0x20, 0x00BB, Menus_Action_UseItem] - [0x20, 0x00C4, Menus_PlayerFirstStrike] - [0x20, 0x00C5, Menus_PartnerFirstStrike] - [0x20, 0x00C6, Menus_EnemyFirstStrike] +- [0x20, 0x00E7, Menus_00CD] +- [0x20, 0x00E8, Menus_00CE] +- [0x20, 0x00EA, Menus_00D0] +- [0x20, 0x00F0, Menus_00D6] +- [0x20, 0x00F1, Menus_00D7] - [0x21, 0x000A, Choice_000A] - [0x21, 0x001D, Choice_001D] - [0x22, 0x0001, MenuTip_0032] From 65845b0be5f9606d2b445f2e876ac9208629c7d8 Mon Sep 17 00:00:00 2001 From: AltoXorg <56553686+Alto1772@users.noreply.github.com> Date: Fri, 12 Jan 2024 23:19:16 +0800 Subject: [PATCH 13/18] msg_copy_to_print_buffer --- src/msg.c | 5 +- .../msg/msg_copy_to_print_buffer.s | 1324 ----------------- 2 files changed, 2 insertions(+), 1327 deletions(-) delete mode 100644 ver/jp/asm/nonmatchings/msg/msg_copy_to_print_buffer.s diff --git a/src/msg.c b/src/msg.c index 80a3806533a..5a380e168c9 100644 --- a/src/msg.c +++ b/src/msg.c @@ -663,7 +663,7 @@ extern s32 MsgLetterRasterOffsets[]; extern s32 MsgLetterPaletteOffsets[]; extern MsgVoice MsgVoices[]; -#if VERSION_PAL || VERSION_JP +#if VERSION_PAL INCLUDE_ASM(s32, "msg", msg_copy_to_print_buffer); #else void msg_copy_to_print_buffer(MessagePrintState* printer, s32 arg1, s32 arg2) { @@ -1198,8 +1198,7 @@ void msg_copy_to_print_buffer(MessagePrintState* printer, s32 arg1, s32 arg2) { case MSG_CHAR_READ_VARIANT2: case MSG_CHAR_READ_VARIANT3: sp10[0] = (argQ - MSG_CHAR_READ_VARIANT0) + MSG_CHAR_PRINT_VARIANT0; - temp = argQ - MSG_CHAR_READ_VARIANT0 + 0x200; - printer->fontVariant = temp; + printer->fontVariant = sp10[0] + 0x10F; break; #if !VERSION_JP case MSG_CHAR_READ_SPACE: diff --git a/ver/jp/asm/nonmatchings/msg/msg_copy_to_print_buffer.s b/ver/jp/asm/nonmatchings/msg/msg_copy_to_print_buffer.s deleted file mode 100644 index 53c15aae988..00000000000 --- a/ver/jp/asm/nonmatchings/msg/msg_copy_to_print_buffer.s +++ /dev/null @@ -1,1324 +0,0 @@ -.set noat /* allow manual use of $at */ -.set noreorder /* don't insert nops after branches */ - -.section .rodata -.align 3 -dlabel jtbl_JP_80155458 -/* EA2E8 80155458 801298A0 */ .word .LJP_801298A0 -/* EA2EC 8015545C 80129904 */ .word .LJP_80129904 -/* EA2F0 80155460 80129964 */ .word .LJP_80129964 -/* EA2F4 80155464 8012998C */ .word .LJP_8012998C -/* EA2F8 80155468 8012998C */ .word .LJP_8012998C -/* EA2FC 8015546C 8012998C */ .word .LJP_8012998C -/* EA300 80155470 8012998C */ .word .LJP_8012998C -/* EA304 80155474 801299A4 */ .word .LJP_801299A4 -/* EA308 80155478 801299AC */ .word .LJP_801299AC -/* EA30C 8015547C 801299B4 */ .word .LJP_801299B4 -/* EA310 80155480 801299BC */ .word .LJP_801299BC -/* EA314 80155484 801299D0 */ .word .LJP_801299D0 -/* EA318 80155488 80129A54 */ .word .LJP_80129A54 -/* EA31C 8015548C 80129D90 */ .word .LJP_80129D90 -/* EA320 80155490 8012A808 */ .word .LJP_8012A808 -/* EA324 80155494 80129E04 */ .word .LJP_80129E04 -.size jtbl_JP_80155458, . - jtbl_JP_80155458 - -.align 3 -dlabel jtbl_JP_80155498 -/* EA328 80155498 80129AA0 */ .word .LJP_80129AA0 -/* EA32C 8015549C 80129AA0 */ .word .LJP_80129AA0 -/* EA330 801554A0 80129AA0 */ .word .LJP_80129AA0 -/* EA334 801554A4 80129AA0 */ .word .LJP_80129AA0 -/* EA338 801554A8 80129B00 */ .word .LJP_80129B00 -/* EA33C 801554AC 80129B44 */ .word .LJP_80129B44 -/* EA340 801554B0 80129C18 */ .word .LJP_80129C18 -/* EA344 801554B4 80129C0C */ .word .LJP_80129C0C -/* EA348 801554B8 80129C40 */ .word .LJP_80129C40 -/* EA34C 801554BC 80129D2C */ .word .LJP_80129D2C -/* EA350 801554C0 80129D2C */ .word .LJP_80129D2C -/* EA354 801554C4 80129BA8 */ .word .LJP_80129BA8 -/* EA358 801554C8 80129B44 */ .word .LJP_80129B44 -/* EA35C 801554CC 80129D70 */ .word .LJP_80129D70 -/* EA360 801554D0 80129B44 */ .word .LJP_80129B44 -/* EA364 801554D4 00000000 */ .word 0x00000000 -.size jtbl_JP_80155498, . - jtbl_JP_80155498 - -.align 3 -dlabel jtbl_JP_801554D8 -/* EA368 801554D8 80129E2C */ .word .LJP_80129E2C -/* EA36C 801554DC 80129E4C */ .word .LJP_80129E4C -/* EA370 801554E0 8012A864 */ .word .LJP_8012A864 -/* EA374 801554E4 8012A3A8 */ .word .LJP_8012A3A8 -/* EA378 801554E8 8012A3B8 */ .word .LJP_8012A3B8 -/* EA37C 801554EC 80129E70 */ .word .LJP_80129E70 -/* EA380 801554F0 80129E80 */ .word .LJP_80129E80 -/* EA384 801554F4 80129E8C */ .word .LJP_80129E8C -/* EA388 801554F8 80129EA0 */ .word .LJP_80129EA0 -/* EA38C 801554FC 80129EC0 */ .word .LJP_80129EC0 -/* EA390 80155500 80129ED0 */ .word .LJP_80129ED0 -/* EA394 80155504 80129EB0 */ .word .LJP_80129EB0 -/* EA398 80155508 80129EDC */ .word .LJP_80129EDC -/* EA39C 8015550C 80129F58 */ .word .LJP_80129F58 -/* EA3A0 80155510 80129FC4 */ .word .LJP_80129FC4 -/* EA3A4 80155514 80129FE8 */ .word .LJP_80129FE8 -/* EA3A8 80155518 8012A004 */ .word .LJP_8012A004 -/* EA3AC 8015551C 8012A024 */ .word .LJP_8012A024 -/* EA3B0 80155520 8012A034 */ .word .LJP_8012A034 -/* EA3B4 80155524 8012A044 */ .word .LJP_8012A044 -/* EA3B8 80155528 8012A054 */ .word .LJP_8012A054 -/* EA3BC 8015552C 8012A064 */ .word .LJP_8012A064 -/* EA3C0 80155530 8012A098 */ .word .LJP_8012A098 -/* EA3C4 80155534 8012A0EC */ .word .LJP_8012A0EC -/* EA3C8 80155538 8012A188 */ .word .LJP_8012A188 -/* EA3CC 8015553C 8012A218 */ .word .LJP_8012A218 -/* EA3D0 80155540 8012A23C */ .word .LJP_8012A23C -/* EA3D4 80155544 8012A290 */ .word .LJP_8012A290 -/* EA3D8 80155548 8012A2B0 */ .word .LJP_8012A2B0 -/* EA3DC 8015554C 8012A2F4 */ .word .LJP_8012A2F4 -/* EA3E0 80155550 8012A334 */ .word .LJP_8012A334 -/* EA3E4 80155554 8012A344 */ .word .LJP_8012A344 -/* EA3E8 80155558 8012A388 */ .word .LJP_8012A388 -/* EA3EC 8015555C 8012A398 */ .word .LJP_8012A398 -/* EA3F0 80155560 8012A3F4 */ .word .LJP_8012A3F4 -/* EA3F4 80155564 8012A404 */ .word .LJP_8012A404 -/* EA3F8 80155568 8012A414 */ .word .LJP_8012A414 -/* EA3FC 8015556C 8012A424 */ .word .LJP_8012A424 -/* EA400 80155570 8012A434 */ .word .LJP_8012A434 -/* EA404 80155574 8012A488 */ .word .LJP_8012A488 -/* EA408 80155578 8012A4B4 */ .word .LJP_8012A4B4 -/* EA40C 8015557C 8012A7A0 */ .word .LJP_8012A7A0 -/* EA410 80155580 8012A7C8 */ .word .LJP_8012A7C8 -/* EA414 80155584 8012A7F8 */ .word .LJP_8012A7F8 -/* EA418 80155588 8012A724 */ .word .LJP_8012A724 -/* EA41C 8015558C 8012A864 */ .word .LJP_8012A864 -/* EA420 80155590 8012A714 */ .word .LJP_8012A714 -/* EA424 80155594 8012A6D0 */ .word .LJP_8012A6D0 -.size jtbl_JP_801554D8, . - jtbl_JP_801554D8 - -.align 3 -dlabel jtbl_JP_80155598 -/* EA428 80155598 8012A474 */ .word .LJP_8012A474 -/* EA42C 8015559C 8012A474 */ .word .LJP_8012A474 -/* EA430 801555A0 8012A474 */ .word .LJP_8012A474 -/* EA434 801555A4 8012A480 */ .word .LJP_8012A480 -/* EA438 801555A8 8012A864 */ .word .LJP_8012A864 -/* EA43C 801555AC 8012A480 */ .word .LJP_8012A480 -/* EA440 801555B0 8012A474 */ .word .LJP_8012A474 -/* EA444 801555B4 8012A480 */ .word .LJP_8012A480 -/* EA448 801555B8 8012A474 */ .word .LJP_8012A474 -/* EA44C 801555BC 8012A474 */ .word .LJP_8012A474 -/* EA450 801555C0 8012A474 */ .word .LJP_8012A474 -/* EA454 801555C4 8012A474 */ .word .LJP_8012A474 -/* EA458 801555C8 8012A474 */ .word .LJP_8012A474 -/* EA45C 801555CC 8012A474 */ .word .LJP_8012A474 -/* EA460 801555D0 8012A474 */ .word .LJP_8012A474 -/* EA464 801555D4 00000000 */ .word 0x00000000 -.size jtbl_JP_80155598, . - jtbl_JP_80155598 - - -.section .text -/* Generated by spimdisasm 1.19.0 */ - -glabel msg_copy_to_print_buffer -/* BE6A0 80129810 27BDFFB8 */ addiu $sp, $sp, -0x48 -/* BE6A4 80129814 AFB40030 */ sw $s4, 0x30($sp) -/* BE6A8 80129818 0080A02D */ daddu $s4, $a0, $zero -/* BE6AC 8012981C AFB50034 */ sw $s5, 0x34($sp) -/* BE6B0 80129820 00A0A82D */ daddu $s5, $a1, $zero -/* BE6B4 80129824 26890428 */ addiu $t1, $s4, 0x428 -/* BE6B8 80129828 AFB7003C */ sw $s7, 0x3C($sp) -/* BE6BC 8012982C 24170002 */ addiu $s7, $zero, 0x2 -/* BE6C0 80129830 AFBE0040 */ sw $fp, 0x40($sp) -/* BE6C4 80129834 30DE0001 */ andi $fp, $a2, 0x1 -/* BE6C8 80129838 AFB60038 */ sw $s6, 0x38($sp) -/* BE6CC 8012983C 241600FF */ addiu $s6, $zero, 0xFF -/* BE6D0 80129840 AFBF0044 */ sw $ra, 0x44($sp) -/* BE6D4 80129844 AFB3002C */ sw $s3, 0x2C($sp) -/* BE6D8 80129848 AFB20028 */ sw $s2, 0x28($sp) -/* BE6DC 8012984C AFB10024 */ sw $s1, 0x24($sp) -/* BE6E0 80129850 AFB00020 */ sw $s0, 0x20($sp) -/* BE6E4 80129854 AFA90018 */ sw $t1, 0x18($sp) -/* BE6E8 80129858 96820004 */ lhu $v0, 0x4($s4) -/* BE6EC 8012985C 9684000C */ lhu $a0, 0xC($s4) -/* BE6F0 80129860 8E830000 */ lw $v1, 0x0($s4) -/* BE6F4 80129864 24420010 */ addiu $v0, $v0, 0x10 -/* BE6F8 80129868 02829021 */ addu $s2, $s4, $v0 -/* BE6FC 8012986C 00649821 */ addu $s3, $v1, $a0 -.LJP_80129870: -/* BE700 80129870 92650000 */ lbu $a1, 0x0($s3) -/* BE704 80129874 26730001 */ addiu $s3, $s3, 0x1 -/* BE708 80129878 92660000 */ lbu $a2, 0x0($s3) -/* BE70C 8012987C 24A3FF10 */ addiu $v1, $a1, -0xF0 -/* BE710 80129880 2C620010 */ sltiu $v0, $v1, 0x10 -/* BE714 80129884 104003E0 */ beqz $v0, .LJP_8012A808 -/* BE718 80129888 00031080 */ sll $v0, $v1, 2 -/* BE71C 8012988C 3C018015 */ lui $at, %hi(jtbl_JP_80155458) -/* BE720 80129890 00220821 */ addu $at, $at, $v0 -/* BE724 80129894 8C225458 */ lw $v0, %lo(jtbl_JP_80155458)($at) -/* BE728 80129898 00400008 */ jr $v0 -/* BE72C 8012989C 00000000 */ nop -.LJP_801298A0: -/* BE730 801298A0 240200F0 */ addiu $v0, $zero, 0xF0 -/* BE734 801298A4 A2420000 */ sb $v0, 0x0($s2) -/* BE738 801298A8 C6800500 */ lwc1 $f0, 0x500($s4) -/* BE73C 801298AC 3C014F00 */ lui $at, (0x4F000000 >> 16) -/* BE740 801298B0 44811000 */ mtc1 $at, $f2 -/* BE744 801298B4 00000000 */ nop -/* BE748 801298B8 4600103E */ c.le.s $f2, $f0 -/* BE74C 801298BC 00000000 */ nop -/* BE750 801298C0 45010005 */ bc1t .LJP_801298D8 -/* BE754 801298C4 26520001 */ addiu $s2, $s2, 0x1 -/* BE758 801298C8 4600010D */ trunc.w.s $f4, $f0 -/* BE75C 801298CC 44032000 */ mfc1 $v1, $f4 -/* BE760 801298D0 0804A63C */ j .LJP_801298F0 -/* BE764 801298D4 00000000 */ nop -.LJP_801298D8: -/* BE768 801298D8 46020001 */ sub.s $f0, $f0, $f2 -/* BE76C 801298DC 3C028000 */ lui $v0, (0x80000000 >> 16) -/* BE770 801298E0 4600010D */ trunc.w.s $f4, $f0 -/* BE774 801298E4 44032000 */ mfc1 $v1, $f4 -/* BE778 801298E8 00000000 */ nop -/* BE77C 801298EC 00621825 */ or $v1, $v1, $v0 -.LJP_801298F0: -/* BE780 801298F0 8FA90018 */ lw $t1, 0x18($sp) -/* BE784 801298F4 91220000 */ lbu $v0, 0x0($t1) -/* BE788 801298F8 00431021 */ addu $v0, $v0, $v1 -/* BE78C 801298FC 0804AA19 */ j .LJP_8012A864 -/* BE790 80129900 A1220000 */ sb $v0, 0x0($t1) -.LJP_80129904: -/* BE794 80129904 968304C0 */ lhu $v1, 0x4C0($s4) -/* BE798 80129908 24020005 */ addiu $v0, $zero, 0x5 -/* BE79C 8012990C A28204B8 */ sb $v0, 0x4B8($s4) -/* BE7A0 80129910 34630001 */ ori $v1, $v1, 0x1 -/* BE7A4 80129914 3063FFFD */ andi $v1, $v1, 0xFFFD -/* BE7A8 80129918 A68304C0 */ sh $v1, 0x4C0($s4) -/* BE7AC 8012991C 8E8304BC */ lw $v1, 0x4BC($s4) -/* BE7B0 80129920 2402FF7F */ addiu $v0, $zero, -0x81 -/* BE7B4 80129924 A280043C */ sb $zero, 0x43C($s4) -/* BE7B8 80129928 A680043E */ sh $zero, 0x43E($s4) -/* BE7BC 8012992C 00621824 */ and $v1, $v1, $v0 -/* BE7C0 80129930 2402FEFF */ addiu $v0, $zero, -0x101 -/* BE7C4 80129934 00621824 */ and $v1, $v1, $v0 -/* BE7C8 80129938 AE8304BC */ sw $v1, 0x4BC($s4) -/* BE7CC 8012993C 928304C8 */ lbu $v1, 0x4C8($s4) -/* BE7D0 80129940 2402000F */ addiu $v0, $zero, 0xF -/* BE7D4 80129944 106203C7 */ beq $v1, $v0, .LJP_8012A864 -/* BE7D8 80129948 240400CB */ addiu $a0, $zero, 0xCB -/* BE7DC 8012994C 0000282D */ daddu $a1, $zero, $zero -/* BE7E0 80129950 00A0302D */ daddu $a2, $a1, $zero -/* BE7E4 80129954 0C053ADA */ jal sfx_play_sound_with_params -/* BE7E8 80129958 00A0382D */ daddu $a3, $a1, $zero -/* BE7EC 8012995C 0804AA19 */ j .LJP_8012A864 -/* BE7F0 80129960 00000000 */ nop -.LJP_80129964: -/* BE7F4 80129964 968204C0 */ lhu $v0, 0x4C0($s4) -/* BE7F8 80129968 92630000 */ lbu $v1, 0x0($s3) -/* BE7FC 8012996C 34420001 */ ori $v0, $v0, 0x1 -/* BE800 80129970 A68204C0 */ sh $v0, 0x4C0($s4) -/* BE804 80129974 8E8204BC */ lw $v0, 0x4BC($s4) -/* BE808 80129978 26730001 */ addiu $s3, $s3, 0x1 -/* BE80C 8012997C A683000E */ sh $v1, 0xE($s4) -/* BE810 80129980 2403FF7F */ addiu $v1, $zero, -0x81 -/* BE814 80129984 0804AA18 */ j .LJP_8012A860 -/* BE818 80129988 00431024 */ and $v0, $v0, $v1 -.LJP_8012998C: -/* BE81C 8012998C 24A200FE */ addiu $v0, $a1, 0xFE -/* BE820 80129990 A2420000 */ sb $v0, 0x0($s2) -/* BE824 80129994 26520001 */ addiu $s2, $s2, 0x1 -/* BE828 80129998 24A2000D */ addiu $v0, $a1, 0xD -/* BE82C 8012999C 0804AA19 */ j .LJP_8012A864 -/* BE830 801299A0 A2820415 */ sb $v0, 0x415($s4) -.LJP_801299A4: -/* BE834 801299A4 0804A9EF */ j .LJP_8012A7BC -/* BE838 801299A8 240200F5 */ addiu $v0, $zero, 0xF5 -.LJP_801299AC: -/* BE83C 801299AC 0804A9EF */ j .LJP_8012A7BC -/* BE840 801299B0 240200F6 */ addiu $v0, $zero, 0xF6 -.LJP_801299B4: -/* BE844 801299B4 0804A9EF */ j .LJP_8012A7BC -/* BE848 801299B8 240200F7 */ addiu $v0, $zero, 0xF7 -.LJP_801299BC: -/* BE84C 801299BC 240200F9 */ addiu $v0, $zero, 0xF9 -/* BE850 801299C0 A2420000 */ sb $v0, 0x0($s2) -/* BE854 801299C4 26520001 */ addiu $s2, $s2, 0x1 -/* BE858 801299C8 0804AA19 */ j .LJP_8012A864 -/* BE85C 801299CC 26B5FFFF */ addiu $s5, $s5, -0x1 -.LJP_801299D0: -/* BE860 801299D0 92820428 */ lbu $v0, 0x428($s4) -/* BE864 801299D4 504003A3 */ beql $v0, $zero, .LJP_8012A864 -/* BE868 801299D8 A2800428 */ sb $zero, 0x428($s4) -/* BE86C 801299DC 92820446 */ lbu $v0, 0x446($s4) -/* BE870 801299E0 96830422 */ lhu $v1, 0x422($s4) -/* BE874 801299E4 00021040 */ sll $v0, $v0, 1 -/* BE878 801299E8 02821021 */ addu $v0, $s4, $v0 -/* BE87C 801299EC A4430448 */ sh $v1, 0x448($v0) -/* BE880 801299F0 92820446 */ lbu $v0, 0x446($s4) -/* BE884 801299F4 24420001 */ addiu $v0, $v0, 0x1 -/* BE888 801299F8 A2820446 */ sb $v0, 0x446($s4) -/* BE88C 801299FC 240200FA */ addiu $v0, $zero, 0xFA -/* BE890 80129A00 A2420000 */ sb $v0, 0x0($s2) -/* BE894 80129A04 92820414 */ lbu $v0, 0x414($s4) -/* BE898 80129A08 26520001 */ addiu $s2, $s2, 0x1 -/* BE89C 80129A0C 00021080 */ sll $v0, $v0, 2 -/* BE8A0 80129A10 3C01802E */ lui $at, %hi(D_802E66F4) -/* BE8A4 80129A14 00220821 */ addu $at, $at, $v0 -/* BE8A8 80129A18 8C2266F4 */ lw $v0, %lo(D_802E66F4)($at) -/* BE8AC 80129A1C 92830428 */ lbu $v1, 0x428($s4) -/* BE8B0 80129A20 90440003 */ lbu $a0, 0x3($v0) -/* BE8B4 80129A24 24020006 */ addiu $v0, $zero, 0x6 -/* BE8B8 80129A28 A28204B8 */ sb $v0, 0x4B8($s4) -/* BE8BC 80129A2C 00830018 */ mult $a0, $v1 -/* BE8C0 80129A30 968204C0 */ lhu $v0, 0x4C0($s4) -/* BE8C4 80129A34 96830422 */ lhu $v1, 0x422($s4) -/* BE8C8 80129A38 34420001 */ ori $v0, $v0, 0x1 -/* BE8CC 80129A3C A68204C0 */ sh $v0, 0x4C0($s4) -/* BE8D0 80129A40 00004812 */ mflo $t1 -/* BE8D4 80129A44 00691821 */ addu $v1, $v1, $t1 -/* BE8D8 80129A48 A6830426 */ sh $v1, 0x426($s4) -/* BE8DC 80129A4C 0804AA19 */ j .LJP_8012A864 -/* BE8E0 80129A50 A2800428 */ sb $zero, 0x428($s4) -.LJP_80129A54: -/* BE8E4 80129A54 240200F8 */ addiu $v0, $zero, 0xF8 -/* BE8E8 80129A58 A2420000 */ sb $v0, 0x0($s2) -/* BE8EC 80129A5C 26520001 */ addiu $s2, $s2, 0x1 -/* BE8F0 80129A60 92700000 */ lbu $s0, 0x0($s3) -/* BE8F4 80129A64 26730001 */ addiu $s3, $s3, 0x1 -/* BE8F8 80129A68 A29004C8 */ sb $s0, 0x4C8($s4) -/* BE8FC 80129A6C A2500000 */ sb $s0, 0x0($s2) -/* BE900 80129A70 26520001 */ addiu $s2, $s2, 0x1 -/* BE904 80129A74 320200FF */ andi $v0, $s0, 0xFF -/* BE908 80129A78 2443FFFF */ addiu $v1, $v0, -0x1 -/* BE90C 80129A7C 2C62000F */ sltiu $v0, $v1, 0xF -/* BE910 80129A80 104000BD */ beqz $v0, .LJP_80129D78 -/* BE914 80129A84 A28004C9 */ sb $zero, 0x4C9($s4) -/* BE918 80129A88 00031080 */ sll $v0, $v1, 2 -/* BE91C 80129A8C 3C018015 */ lui $at, %hi(jtbl_JP_80155498) -/* BE920 80129A90 00220821 */ addu $at, $at, $v0 -/* BE924 80129A94 8C225498 */ lw $v0, %lo(jtbl_JP_80155498)($at) -/* BE928 80129A98 00400008 */ jr $v0 -/* BE92C 80129A9C 00000000 */ nop -.LJP_80129AA0: -/* BE930 80129AA0 2602FFFF */ addiu $v0, $s0, -0x1 -/* BE934 80129AA4 2C420003 */ sltiu $v0, $v0, 0x3 -/* BE938 80129AA8 10400002 */ beqz $v0, .LJP_80129AB4 -/* BE93C 80129AAC 24020003 */ addiu $v0, $zero, 0x3 -/* BE940 80129AB0 A28204FC */ sb $v0, 0x4FC($s4) -.LJP_80129AB4: -/* BE944 80129AB4 3C040080 */ lui $a0, (0x800800 >> 16) -/* BE948 80129AB8 34840800 */ ori $a0, $a0, (0x800800 & 0xFFFF) -/* BE94C 80129ABC 968204C0 */ lhu $v0, 0x4C0($s4) -/* BE950 80129AC0 8E8304BC */ lw $v1, 0x4BC($s4) -/* BE954 80129AC4 34420001 */ ori $v0, $v0, 0x1 -/* BE958 80129AC8 00642025 */ or $a0, $v1, $a0 -/* BE95C 80129ACC 30C300FF */ andi $v1, $a2, 0xFF -/* BE960 80129AD0 A68204C0 */ sh $v0, 0x4C0($s4) -/* BE964 80129AD4 240200C3 */ addiu $v0, $zero, 0xC3 -/* BE968 80129AD8 10620003 */ beq $v1, $v0, .LJP_80129AE8 -/* BE96C 80129ADC AE8404BC */ sw $a0, 0x4BC($s4) -/* BE970 80129AE0 34820080 */ ori $v0, $a0, 0x80 -/* BE974 80129AE4 AE8204BC */ sw $v0, 0x4BC($s4) -.LJP_80129AE8: -/* BE978 80129AE8 24020011 */ addiu $v0, $zero, 0x11 -/* BE97C 80129AEC AE8204E0 */ sw $v0, 0x4E0($s4) -/* BE980 80129AF0 24020012 */ addiu $v0, $zero, 0x12 -/* BE984 80129AF4 AE8204E4 */ sw $v0, 0x4E4($s4) -/* BE988 80129AF8 0804A75E */ j .LJP_80129D78 -/* BE98C 80129AFC A29704B8 */ sb $s7, 0x4B8($s4) -.LJP_80129B00: -/* BE990 80129B00 92620000 */ lbu $v0, 0x0($s3) -/* BE994 80129B04 26730001 */ addiu $s3, $s3, 0x1 -/* BE998 80129B08 A682041A */ sh $v0, 0x41A($s4) -/* BE99C 80129B0C 92620000 */ lbu $v0, 0x0($s3) -/* BE9A0 80129B10 26730001 */ addiu $s3, $s3, 0x1 -/* BE9A4 80129B14 A682041C */ sh $v0, 0x41C($s4) -/* BE9A8 80129B18 92620000 */ lbu $v0, 0x0($s3) -/* BE9AC 80129B1C 26730001 */ addiu $s3, $s3, 0x1 -/* BE9B0 80129B20 A68204D4 */ sh $v0, 0x4D4($s4) -/* BE9B4 80129B24 92630000 */ lbu $v1, 0x0($s3) -/* BE9B8 80129B28 8E8204BC */ lw $v0, 0x4BC($s4) -/* BE9BC 80129B2C 26730001 */ addiu $s3, $s3, 0x1 -/* BE9C0 80129B30 A29704B8 */ sb $s7, 0x4B8($s4) -/* BE9C4 80129B34 34420800 */ ori $v0, $v0, 0x800 -/* BE9C8 80129B38 AE8204BC */ sw $v0, 0x4BC($s4) -/* BE9CC 80129B3C 0804A75E */ j .LJP_80129D78 -/* BE9D0 80129B40 A68304D6 */ sh $v1, 0x4D6($s4) -.LJP_80129B44: -/* BE9D4 80129B44 17C0008C */ bnez $fp, .LJP_80129D78 -/* BE9D8 80129B48 24020028 */ addiu $v0, $zero, 0x28 -/* BE9DC 80129B4C A682041A */ sh $v0, 0x41A($s4) -/* BE9E0 80129B50 2402001C */ addiu $v0, $zero, 0x1C -/* BE9E4 80129B54 A682041C */ sh $v0, 0x41C($s4) -/* BE9E8 80129B58 2402003A */ addiu $v0, $zero, 0x3A -/* BE9EC 80129B5C A68204D6 */ sh $v0, 0x4D6($s4) -/* BE9F0 80129B60 240200F0 */ addiu $v0, $zero, 0xF0 -/* BE9F4 80129B64 A68204D4 */ sh $v0, 0x4D4($s4) -/* BE9F8 80129B68 8E8204BC */ lw $v0, 0x4BC($s4) -/* BE9FC 80129B6C 968304C0 */ lhu $v1, 0x4C0($s4) -/* BEA00 80129B70 A29704B8 */ sb $s7, 0x4B8($s4) -/* BEA04 80129B74 34420800 */ ori $v0, $v0, 0x800 -/* BEA08 80129B78 34630001 */ ori $v1, $v1, 0x1 -/* BEA0C 80129B7C AE8204BC */ sw $v0, 0x4BC($s4) -/* BEA10 80129B80 24020006 */ addiu $v0, $zero, 0x6 -/* BEA14 80129B84 1602007C */ bne $s0, $v0, .LJP_80129D78 -/* BEA18 80129B88 A68304C0 */ sh $v1, 0x4C0($s4) -/* BEA1C 80129B8C 2404021C */ addiu $a0, $zero, 0x21C -/* BEA20 80129B90 0000282D */ daddu $a1, $zero, $zero -/* BEA24 80129B94 00A0302D */ daddu $a2, $a1, $zero -/* BEA28 80129B98 0C053ADA */ jal sfx_play_sound_with_params -/* BEA2C 80129B9C 00A0382D */ daddu $a3, $a1, $zero -/* BEA30 80129BA0 0804A75E */ j .LJP_80129D78 -/* BEA34 80129BA4 00000000 */ nop -.LJP_80129BA8: -/* BEA38 80129BA8 92620000 */ lbu $v0, 0x0($s3) -/* BEA3C 80129BAC 26730001 */ addiu $s3, $s3, 0x1 -/* BEA40 80129BB0 2404021C */ addiu $a0, $zero, 0x21C -/* BEA44 80129BB4 0000282D */ daddu $a1, $zero, $zero -/* BEA48 80129BB8 00A0302D */ daddu $a2, $a1, $zero -/* BEA4C 80129BBC A682041A */ sh $v0, 0x41A($s4) -/* BEA50 80129BC0 92620000 */ lbu $v0, 0x0($s3) -/* BEA54 80129BC4 26730001 */ addiu $s3, $s3, 0x1 -/* BEA58 80129BC8 A682041C */ sh $v0, 0x41C($s4) -/* BEA5C 80129BCC 92620000 */ lbu $v0, 0x0($s3) -/* BEA60 80129BD0 26730001 */ addiu $s3, $s3, 0x1 -/* BEA64 80129BD4 A68204D4 */ sh $v0, 0x4D4($s4) -/* BEA68 80129BD8 92620000 */ lbu $v0, 0x0($s3) -/* BEA6C 80129BDC 00A0382D */ daddu $a3, $a1, $zero -/* BEA70 80129BE0 0C053ADA */ jal sfx_play_sound_with_params -/* BEA74 80129BE4 A68204D6 */ sh $v0, 0x4D6($s4) -/* BEA78 80129BE8 968204C0 */ lhu $v0, 0x4C0($s4) -/* BEA7C 80129BEC 8E8304BC */ lw $v1, 0x4BC($s4) -/* BEA80 80129BF0 26730001 */ addiu $s3, $s3, 0x1 -/* BEA84 80129BF4 A29704B8 */ sb $s7, 0x4B8($s4) -/* BEA88 80129BF8 34420001 */ ori $v0, $v0, 0x1 -/* BEA8C 80129BFC 34630800 */ ori $v1, $v1, 0x800 -/* BEA90 80129C00 A68204C0 */ sh $v0, 0x4C0($s4) -/* BEA94 80129C04 0804A75E */ j .LJP_80129D78 -/* BEA98 80129C08 AE8304BC */ sw $v1, 0x4BC($s4) -.LJP_80129C0C: -/* BEA9C 80129C0C 92620000 */ lbu $v0, 0x0($s3) -/* BEAA0 80129C10 26730001 */ addiu $s3, $s3, 0x1 -/* BEAA4 80129C14 A68204D6 */ sh $v0, 0x4D6($s4) -.LJP_80129C18: -/* BEAA8 80129C18 17C00057 */ bnez $fp, .LJP_80129D78 -/* BEAAC 80129C1C 00000000 */ nop -/* BEAB0 80129C20 8E8204BC */ lw $v0, 0x4BC($s4) -/* BEAB4 80129C24 968304C0 */ lhu $v1, 0x4C0($s4) -/* BEAB8 80129C28 A29704B8 */ sb $s7, 0x4B8($s4) -/* BEABC 80129C2C 34420800 */ ori $v0, $v0, 0x800 -/* BEAC0 80129C30 34630001 */ ori $v1, $v1, 0x1 -/* BEAC4 80129C34 AE8204BC */ sw $v0, 0x4BC($s4) -/* BEAC8 80129C38 0804A75E */ j .LJP_80129D78 -/* BEACC 80129C3C A68304C0 */ sh $v1, 0x4C0($s4) -.LJP_80129C40: -/* BEAD0 80129C40 92700000 */ lbu $s0, 0x0($s3) -/* BEAD4 80129C44 26730001 */ addiu $s3, $s3, 0x1 -/* BEAD8 80129C48 8E8204BC */ lw $v0, 0x4BC($s4) -/* BEADC 80129C4C 968304C0 */ lhu $v1, 0x4C0($s4) -/* BEAE0 80129C50 24041EC3 */ addiu $a0, $zero, 0x1EC3 -/* BEAE4 80129C54 A29704B8 */ sb $s7, 0x4B8($s4) -/* BEAE8 80129C58 34420800 */ ori $v0, $v0, 0x800 -/* BEAEC 80129C5C 34630001 */ ori $v1, $v1, 0x1 -/* BEAF0 80129C60 AE8204BC */ sw $v0, 0x4BC($s4) -/* BEAF4 80129C64 0C00AB29 */ jal heap_malloc -/* BEAF8 80129C68 A68304C0 */ sh $v1, 0x4C0($s4) -/* BEAFC 80129C6C 3C030001 */ lui $v1, %hi(D_13B98) -/* BEB00 80129C70 24633B98 */ addiu $v1, $v1, %lo(D_13B98) -/* BEB04 80129C74 3C090011 */ lui $t1, %hi(charset_ROM_START) -/* BEB08 80129C78 2529F330 */ addiu $t1, $t1, %lo(charset_ROM_START) -/* BEB0C 80129C7C 01232021 */ addu $a0, $t1, $v1 -/* BEB10 80129C80 24851EC3 */ addiu $a1, $a0, 0x1EC3 -/* BEB14 80129C84 0040302D */ daddu $a2, $v0, $zero -/* BEB18 80129C88 0C00A5BF */ jal dma_copy -/* BEB1C 80129C8C AE860504 */ sw $a2, 0x504($s4) -/* BEB20 80129C90 0C00AB29 */ jal heap_malloc -/* BEB24 80129C94 24040020 */ addiu $a0, $zero, 0x20 -/* BEB28 80129C98 3C030001 */ lui $v1, %hi(D_15A60) -/* BEB2C 80129C9C 24635A60 */ addiu $v1, $v1, %lo(D_15A60) -/* BEB30 80129CA0 3C090011 */ lui $t1, %hi(charset_ROM_START) -/* BEB34 80129CA4 2529F330 */ addiu $t1, $t1, %lo(charset_ROM_START) -/* BEB38 80129CA8 01232021 */ addu $a0, $t1, $v1 -/* BEB3C 80129CAC 24850020 */ addiu $a1, $a0, 0x20 -/* BEB40 80129CB0 0040302D */ daddu $a2, $v0, $zero -/* BEB44 80129CB4 0C00A5BF */ jal dma_copy -/* BEB48 80129CB8 AE860508 */ sw $a2, 0x508($s4) -/* BEB4C 80129CBC 0C00AB29 */ jal heap_malloc -/* BEB50 80129CC0 240419FA */ addiu $a0, $zero, 0x19FA -/* BEB54 80129CC4 321000FF */ andi $s0, $s0, 0xFF -/* BEB58 80129CC8 00108080 */ sll $s0, $s0, 2 -/* BEB5C 80129CCC 0040302D */ daddu $a2, $v0, $zero -/* BEB60 80129CD0 AE82050C */ sw $v0, 0x50C($s4) -/* BEB64 80129CD4 3C03802E */ lui $v1, %hi(D_802E670C) -/* BEB68 80129CD8 00701821 */ addu $v1, $v1, $s0 -/* BEB6C 80129CDC 8C63670C */ lw $v1, %lo(D_802E670C)($v1) -/* BEB70 80129CE0 3C090011 */ lui $t1, %hi(charset_ROM_START) -/* BEB74 80129CE4 2529F330 */ addiu $t1, $t1, %lo(charset_ROM_START) -/* BEB78 80129CE8 00692021 */ addu $a0, $v1, $t1 -/* BEB7C 80129CEC 0C00A5BF */ jal dma_copy -/* BEB80 80129CF0 248519FA */ addiu $a1, $a0, 0x19FA -/* BEB84 80129CF4 0C00AB29 */ jal heap_malloc -/* BEB88 80129CF8 24040200 */ addiu $a0, $zero, 0x200 -/* BEB8C 80129CFC 0040302D */ daddu $a2, $v0, $zero -/* BEB90 80129D00 AE820510 */ sw $v0, 0x510($s4) -/* BEB94 80129D04 3C03802E */ lui $v1, %hi(D_802E673C) -/* BEB98 80129D08 00701821 */ addu $v1, $v1, $s0 -/* BEB9C 80129D0C 8C63673C */ lw $v1, %lo(D_802E673C)($v1) -/* BEBA0 80129D10 3C090011 */ lui $t1, %hi(charset_ROM_START) -/* BEBA4 80129D14 2529F330 */ addiu $t1, $t1, %lo(charset_ROM_START) -/* BEBA8 80129D18 00692021 */ addu $a0, $v1, $t1 -/* BEBAC 80129D1C 0C00A5BF */ jal dma_copy -/* BEBB0 80129D20 24850200 */ addiu $a1, $a0, 0x200 -/* BEBB4 80129D24 0804A75E */ j .LJP_80129D78 -/* BEBB8 80129D28 00000000 */ nop -.LJP_80129D2C: -/* BEBBC 80129D2C 24020020 */ addiu $v0, $zero, 0x20 -/* BEBC0 80129D30 A68204D6 */ sh $v0, 0x4D6($s4) -/* BEBC4 80129D34 968204F8 */ lhu $v0, 0x4F8($s4) -/* BEBC8 80129D38 8E8304BC */ lw $v1, 0x4BC($s4) -/* BEBCC 80129D3C 24420020 */ addiu $v0, $v0, 0x20 -/* BEBD0 80129D40 A68204D4 */ sh $v0, 0x4D4($s4) -/* BEBD4 80129D44 34628000 */ ori $v0, $v1, 0x8000 -/* BEBD8 80129D48 17C0000B */ bnez $fp, .LJP_80129D78 -/* BEBDC 80129D4C AE8204BC */ sw $v0, 0x4BC($s4) -/* BEBE0 80129D50 34628800 */ ori $v0, $v1, 0x8800 -/* BEBE4 80129D54 968304C0 */ lhu $v1, 0x4C0($s4) -/* BEBE8 80129D58 AE8204BC */ sw $v0, 0x4BC($s4) -/* BEBEC 80129D5C 2402000D */ addiu $v0, $zero, 0xD -/* BEBF0 80129D60 A28204B8 */ sb $v0, 0x4B8($s4) -/* BEBF4 80129D64 34630001 */ ori $v1, $v1, 0x1 -/* BEBF8 80129D68 0804A75E */ j .LJP_80129D78 -/* BEBFC 80129D6C A68304C0 */ sh $v1, 0x4C0($s4) -.LJP_80129D70: -/* BEC00 80129D70 24020004 */ addiu $v0, $zero, 0x4 -/* BEC04 80129D74 A28204B8 */ sb $v0, 0x4B8($s4) -.LJP_80129D78: -/* BEC08 80129D78 968304C0 */ lhu $v1, 0x4C0($s4) -/* BEC0C 80129D7C 30620001 */ andi $v0, $v1, 0x1 -/* BEC10 80129D80 104002B8 */ beqz $v0, .LJP_8012A864 -/* BEC14 80129D84 30620006 */ andi $v0, $v1, 0x6 -/* BEC18 80129D88 0804A882 */ j .LJP_8012A208 -/* BEC1C 80129D8C 00000000 */ nop -.LJP_80129D90: -/* BEC20 80129D90 240200FB */ addiu $v0, $zero, 0xFB -/* BEC24 80129D94 A2420000 */ sb $v0, 0x0($s2) -/* BEC28 80129D98 8E8304BC */ lw $v1, 0x4BC($s4) -/* BEC2C 80129D9C 30620800 */ andi $v0, $v1, 0x800 -/* BEC30 80129DA0 10400011 */ beqz $v0, .LJP_80129DE8 -/* BEC34 80129DA4 26520001 */ addiu $s2, $s2, 0x1 -/* BEC38 80129DA8 30621000 */ andi $v0, $v1, 0x1000 -/* BEC3C 80129DAC 10400005 */ beqz $v0, .LJP_80129DC4 -/* BEC40 80129DB0 00000000 */ nop -/* BEC44 80129DB4 8E8304C4 */ lw $v1, 0x4C4($s4) -/* BEC48 80129DB8 10600002 */ beqz $v1, .LJP_80129DC4 -/* BEC4C 80129DBC 24020001 */ addiu $v0, $zero, 0x1 -/* BEC50 80129DC0 AC620000 */ sw $v0, 0x0($v1) -.LJP_80129DC4: -/* BEC54 80129DC4 928204C8 */ lbu $v0, 0x4C8($s4) -/* BEC58 80129DC8 2442FFF6 */ addiu $v0, $v0, -0xA -/* BEC5C 80129DCC 2C420002 */ sltiu $v0, $v0, 0x2 -/* BEC60 80129DD0 14400002 */ bnez $v0, .LJP_80129DDC -/* BEC64 80129DD4 2402000E */ addiu $v0, $zero, 0xE -/* BEC68 80129DD8 24020003 */ addiu $v0, $zero, 0x3 -.LJP_80129DDC: -/* BEC6C 80129DDC A28204B8 */ sb $v0, 0x4B8($s4) -/* BEC70 80129DE0 0804A77C */ j .LJP_80129DF0 -/* BEC74 80129DE4 A28004D2 */ sb $zero, 0x4D2($s4) -.LJP_80129DE8: -/* BEC78 80129DE8 34620001 */ ori $v0, $v1, 0x1 -/* BEC7C 80129DEC AE8204BC */ sw $v0, 0x4BC($s4) -.LJP_80129DF0: -/* BEC80 80129DF0 968204C0 */ lhu $v0, 0x4C0($s4) -/* BEC84 80129DF4 34420001 */ ori $v0, $v0, 0x1 -/* BEC88 80129DF8 3042FFFD */ andi $v0, $v0, 0xFFFD -/* BEC8C 80129DFC 0804AA19 */ j .LJP_8012A864 -/* BEC90 80129E00 A68204C0 */ sh $v0, 0x4C0($s4) -.LJP_80129E04: -/* BEC94 80129E04 92630000 */ lbu $v1, 0x0($s3) -/* BEC98 80129E08 2C620030 */ sltiu $v0, $v1, 0x30 -/* BEC9C 80129E0C 10400295 */ beqz $v0, .LJP_8012A864 -/* BECA0 80129E10 26730001 */ addiu $s3, $s3, 0x1 -/* BECA4 80129E14 00031080 */ sll $v0, $v1, 2 -/* BECA8 80129E18 3C018015 */ lui $at, %hi(jtbl_JP_801554D8) -/* BECAC 80129E1C 00220821 */ addu $at, $at, $v0 -/* BECB0 80129E20 8C2254D8 */ lw $v0, %lo(jtbl_JP_801554D8)($at) -/* BECB4 80129E24 00400008 */ jr $v0 -/* BECB8 80129E28 00000000 */ nop -.LJP_80129E2C: -/* BECBC 80129E2C A2560000 */ sb $s6, 0x0($s2) -/* BECC0 80129E30 26520001 */ addiu $s2, $s2, 0x1 -/* BECC4 80129E34 A2400000 */ sb $zero, 0x0($s2) -/* BECC8 80129E38 26520001 */ addiu $s2, $s2, 0x1 -/* BECCC 80129E3C 92620000 */ lbu $v0, 0x0($s3) -/* BECD0 80129E40 26730001 */ addiu $s3, $s3, 0x1 -/* BECD4 80129E44 0804A9EF */ j .LJP_8012A7BC -/* BECD8 80129E48 A2820414 */ sb $v0, 0x414($s4) -.LJP_80129E4C: -/* BECDC 80129E4C A2560000 */ sb $s6, 0x0($s2) -/* BECE0 80129E50 26520001 */ addiu $s2, $s2, 0x1 -/* BECE4 80129E54 24020001 */ addiu $v0, $zero, 0x1 -/* BECE8 80129E58 A2420000 */ sb $v0, 0x0($s2) -/* BECEC 80129E5C 26520001 */ addiu $s2, $s2, 0x1 -/* BECF0 80129E60 92620000 */ lbu $v0, 0x0($s3) -/* BECF4 80129E64 26730001 */ addiu $s3, $s3, 0x1 -/* BECF8 80129E68 0804A9EF */ j .LJP_8012A7BC -/* BECFC 80129E6C A2820415 */ sb $v0, 0x415($s4) -.LJP_80129E70: -/* BED00 80129E70 A2560000 */ sb $s6, 0x0($s2) -/* BED04 80129E74 26520001 */ addiu $s2, $s2, 0x1 -/* BED08 80129E78 0804A9EB */ j .LJP_8012A7AC -/* BED0C 80129E7C 24020004 */ addiu $v0, $zero, 0x4 -.LJP_80129E80: -/* BED10 80129E80 8E8204BC */ lw $v0, 0x4BC($s4) -/* BED14 80129E84 0804AA18 */ j .LJP_8012A860 -/* BED18 80129E88 34420010 */ ori $v0, $v0, 0x10 -.LJP_80129E8C: -/* BED1C 80129E8C 8E8204BC */ lw $v0, 0x4BC($s4) -/* BED20 80129E90 2403FEFF */ addiu $v1, $zero, -0x101 -/* BED24 80129E94 34420020 */ ori $v0, $v0, 0x20 -/* BED28 80129E98 0804AA18 */ j .LJP_8012A860 -/* BED2C 80129E9C 00431024 */ and $v0, $v0, $v1 -.LJP_80129EA0: -/* BED30 80129EA0 8E8204BC */ lw $v0, 0x4BC($s4) -/* BED34 80129EA4 2403FFDF */ addiu $v1, $zero, -0x21 -/* BED38 80129EA8 0804AA18 */ j .LJP_8012A860 -/* BED3C 80129EAC 00431024 */ and $v0, $v0, $v1 -.LJP_80129EB0: -/* BED40 80129EB0 A2560000 */ sb $s6, 0x0($s2) -/* BED44 80129EB4 26520001 */ addiu $s2, $s2, 0x1 -/* BED48 80129EB8 0804A9EB */ j .LJP_8012A7AC -/* BED4C 80129EBC 24020005 */ addiu $v0, $zero, 0x5 -.LJP_80129EC0: -/* BED50 80129EC0 968204C0 */ lhu $v0, 0x4C0($s4) -/* BED54 80129EC4 34420002 */ ori $v0, $v0, 0x2 -/* BED58 80129EC8 0804AA19 */ j .LJP_8012A864 -/* BED5C 80129ECC A68204C0 */ sh $v0, 0x4C0($s4) -.LJP_80129ED0: -/* BED60 80129ED0 968204C0 */ lhu $v0, 0x4C0($s4) -/* BED64 80129ED4 0804A8BA */ j .LJP_8012A2E8 -/* BED68 80129ED8 3042FFFD */ andi $v0, $v0, 0xFFFD -.LJP_80129EDC: -/* BED6C 80129EDC 92820446 */ lbu $v0, 0x446($s4) -/* BED70 80129EE0 96830422 */ lhu $v1, 0x422($s4) -/* BED74 80129EE4 00021040 */ sll $v0, $v0, 1 -/* BED78 80129EE8 02821021 */ addu $v0, $s4, $v0 -/* BED7C 80129EEC A4430448 */ sh $v1, 0x448($v0) -/* BED80 80129EF0 92820446 */ lbu $v0, 0x446($s4) -/* BED84 80129EF4 24420001 */ addiu $v0, $v0, 0x1 -/* BED88 80129EF8 A2820446 */ sb $v0, 0x446($s4) -/* BED8C 80129EFC 240200FA */ addiu $v0, $zero, 0xFA -/* BED90 80129F00 A2420000 */ sb $v0, 0x0($s2) -/* BED94 80129F04 26520001 */ addiu $s2, $s2, 0x1 -/* BED98 80129F08 92820414 */ lbu $v0, 0x414($s4) -/* BED9C 80129F0C 92700000 */ lbu $s0, 0x0($s3) -/* BEDA0 80129F10 00021080 */ sll $v0, $v0, 2 -/* BEDA4 80129F14 3C01802E */ lui $at, %hi(D_802E66F4) -/* BEDA8 80129F18 00220821 */ addu $at, $at, $v0 -/* BEDAC 80129F1C 8C2266F4 */ lw $v0, %lo(D_802E66F4)($at) -/* BEDB0 80129F20 26730001 */ addiu $s3, $s3, 0x1 -/* BEDB4 80129F24 90430003 */ lbu $v1, 0x3($v0) -/* BEDB8 80129F28 24020006 */ addiu $v0, $zero, 0x6 -/* BEDBC 80129F2C A28204B8 */ sb $v0, 0x4B8($s4) -/* BEDC0 80129F30 968204C0 */ lhu $v0, 0x4C0($s4) -/* BEDC4 80129F34 02030018 */ mult $s0, $v1 -/* BEDC8 80129F38 A2800428 */ sb $zero, 0x428($s4) -/* BEDCC 80129F3C 96830422 */ lhu $v1, 0x422($s4) -/* BEDD0 80129F40 34420001 */ ori $v0, $v0, 0x1 -/* BEDD4 80129F44 A68204C0 */ sh $v0, 0x4C0($s4) -/* BEDD8 80129F48 00004812 */ mflo $t1 -/* BEDDC 80129F4C 00691821 */ addu $v1, $v1, $t1 -/* BEDE0 80129F50 0804AA19 */ j .LJP_8012A864 -/* BEDE4 80129F54 A6830426 */ sh $v1, 0x426($s4) -.LJP_80129F58: -/* BEDE8 80129F58 A2560000 */ sb $s6, 0x0($s2) -/* BEDEC 80129F5C 26520001 */ addiu $s2, $s2, 0x1 -/* BEDF0 80129F60 24020006 */ addiu $v0, $zero, 0x6 -/* BEDF4 80129F64 A2420000 */ sb $v0, 0x0($s2) -/* BEDF8 80129F68 26520001 */ addiu $s2, $s2, 0x1 -/* BEDFC 80129F6C 92620000 */ lbu $v0, 0x0($s3) -/* BEE00 80129F70 3C013D80 */ lui $at, (0x3D800000 >> 16) -/* BEE04 80129F74 44810000 */ mtc1 $at, $f0 -/* BEE08 80129F78 26730001 */ addiu $s3, $s3, 0x1 -/* BEE0C 80129F7C A2420000 */ sb $v0, 0x0($s2) -/* BEE10 80129F80 92700000 */ lbu $s0, 0x0($s3) -/* BEE14 80129F84 26520001 */ addiu $s2, $s2, 0x1 -/* BEE18 80129F88 3202000F */ andi $v0, $s0, 0xF -/* BEE1C 80129F8C 44821000 */ mtc1 $v0, $f2 -/* BEE20 80129F90 00000000 */ nop -/* BEE24 80129F94 468010A0 */ cvt.s.w $f2, $f2 -/* BEE28 80129F98 46001082 */ mul.s $f2, $f2, $f0 -/* BEE2C 80129F9C 00000000 */ nop -/* BEE30 80129FA0 26730001 */ addiu $s3, $s3, 0x1 -/* BEE34 80129FA4 320200FF */ andi $v0, $s0, 0xFF -/* BEE38 80129FA8 00021102 */ srl $v0, $v0, 4 -/* BEE3C 80129FAC 44820000 */ mtc1 $v0, $f0 -/* BEE40 80129FB0 00000000 */ nop -/* BEE44 80129FB4 46800020 */ cvt.s.w $f0, $f0 -/* BEE48 80129FB8 46020000 */ add.s $f0, $f0, $f2 -/* BEE4C 80129FBC 0804A7F7 */ j .LJP_80129FDC -/* BEE50 80129FC0 A2500000 */ sb $s0, 0x0($s2) -.LJP_80129FC4: -/* BEE54 80129FC4 A2560000 */ sb $s6, 0x0($s2) -/* BEE58 80129FC8 26520001 */ addiu $s2, $s2, 0x1 -/* BEE5C 80129FCC 3C013F80 */ lui $at, (0x3F800000 >> 16) -/* BEE60 80129FD0 44810000 */ mtc1 $at, $f0 -/* BEE64 80129FD4 24020007 */ addiu $v0, $zero, 0x7 -/* BEE68 80129FD8 A2420000 */ sb $v0, 0x0($s2) -.LJP_80129FDC: -/* BEE6C 80129FDC 26520001 */ addiu $s2, $s2, 0x1 -/* BEE70 80129FE0 0804AA19 */ j .LJP_8012A864 -/* BEE74 80129FE4 E6800500 */ swc1 $f0, 0x500($s4) -.LJP_80129FE8: -/* BEE78 80129FE8 92620000 */ lbu $v0, 0x0($s3) -/* BEE7C 80129FEC 26730001 */ addiu $s3, $s3, 0x1 -/* BEE80 80129FF0 A282041E */ sb $v0, 0x41E($s4) -/* BEE84 80129FF4 92620000 */ lbu $v0, 0x0($s3) -/* BEE88 80129FF8 26730001 */ addiu $s3, $s3, 0x1 -/* BEE8C 80129FFC 0804AA19 */ j .LJP_8012A864 -/* BEE90 8012A000 A282041F */ sb $v0, 0x41F($s4) -.LJP_8012A004: -/* BEE94 8012A004 A2560000 */ sb $s6, 0x0($s2) -/* BEE98 8012A008 26520001 */ addiu $s2, $s2, 0x1 -/* BEE9C 8012A00C 24020008 */ addiu $v0, $zero, 0x8 -/* BEEA0 8012A010 A2420000 */ sb $v0, 0x0($s2) -/* BEEA4 8012A014 26520001 */ addiu $s2, $s2, 0x1 -/* BEEA8 8012A018 92620000 */ lbu $v0, 0x0($s3) -/* BEEAC 8012A01C 0804A9EB */ j .LJP_8012A7AC -/* BEEB0 8012A020 26730001 */ addiu $s3, $s3, 0x1 -.LJP_8012A024: -/* BEEB4 8012A024 A2560000 */ sb $s6, 0x0($s2) -/* BEEB8 8012A028 26520001 */ addiu $s2, $s2, 0x1 -/* BEEBC 8012A02C 0804A9EB */ j .LJP_8012A7AC -/* BEEC0 8012A030 24020009 */ addiu $v0, $zero, 0x9 -.LJP_8012A034: -/* BEEC4 8012A034 A2560000 */ sb $s6, 0x0($s2) -/* BEEC8 8012A038 26520001 */ addiu $s2, $s2, 0x1 -/* BEECC 8012A03C 0804A9EB */ j .LJP_8012A7AC -/* BEED0 8012A040 2402000A */ addiu $v0, $zero, 0xA -.LJP_8012A044: -/* BEED4 8012A044 A2560000 */ sb $s6, 0x0($s2) -/* BEED8 8012A048 26520001 */ addiu $s2, $s2, 0x1 -/* BEEDC 8012A04C 0804A9EB */ j .LJP_8012A7AC -/* BEEE0 8012A050 2402000B */ addiu $v0, $zero, 0xB -.LJP_8012A054: -/* BEEE4 8012A054 A2560000 */ sb $s6, 0x0($s2) -/* BEEE8 8012A058 26520001 */ addiu $s2, $s2, 0x1 -/* BEEEC 8012A05C 0804A9EB */ j .LJP_8012A7AC -/* BEEF0 8012A060 2402000C */ addiu $v0, $zero, 0xC -.LJP_8012A064: -/* BEEF4 8012A064 A2560000 */ sb $s6, 0x0($s2) -/* BEEF8 8012A068 26520001 */ addiu $s2, $s2, 0x1 -/* BEEFC 8012A06C 2402000E */ addiu $v0, $zero, 0xE -/* BEF00 8012A070 A2420000 */ sb $v0, 0x0($s2) -/* BEF04 8012A074 26520001 */ addiu $s2, $s2, 0x1 -/* BEF08 8012A078 92620000 */ lbu $v0, 0x0($s3) -/* BEF0C 8012A07C 26730001 */ addiu $s3, $s3, 0x1 -/* BEF10 8012A080 26B5FFFF */ addiu $s5, $s5, -0x1 -/* BEF14 8012A084 A2420000 */ sb $v0, 0x0($s2) -/* BEF18 8012A088 9282041E */ lbu $v0, 0x41E($s4) -/* BEF1C 8012A08C 26520001 */ addiu $s2, $s2, 0x1 -/* BEF20 8012A090 0804A87B */ j .LJP_8012A1EC -/* BEF24 8012A094 A682000E */ sh $v0, 0xE($s4) -.LJP_8012A098: -/* BEF28 8012A098 A2560000 */ sb $s6, 0x0($s2) -/* BEF2C 8012A09C 26520001 */ addiu $s2, $s2, 0x1 -/* BEF30 8012A0A0 2402000F */ addiu $v0, $zero, 0xF -/* BEF34 8012A0A4 A2420000 */ sb $v0, 0x0($s2) -/* BEF38 8012A0A8 26520001 */ addiu $s2, $s2, 0x1 -/* BEF3C 8012A0AC 92620000 */ lbu $v0, 0x0($s3) -/* BEF40 8012A0B0 26730001 */ addiu $s3, $s3, 0x1 -/* BEF44 8012A0B4 26B5FFFF */ addiu $s5, $s5, -0x1 -/* BEF48 8012A0B8 A2420000 */ sb $v0, 0x0($s2) -/* BEF4C 8012A0BC 26520001 */ addiu $s2, $s2, 0x1 -/* BEF50 8012A0C0 92620000 */ lbu $v0, 0x0($s3) -/* BEF54 8012A0C4 26730001 */ addiu $s3, $s3, 0x1 -/* BEF58 8012A0C8 A2420000 */ sb $v0, 0x0($s2) -/* BEF5C 8012A0CC 26520001 */ addiu $s2, $s2, 0x1 -/* BEF60 8012A0D0 92620000 */ lbu $v0, 0x0($s3) -/* BEF64 8012A0D4 26730001 */ addiu $s3, $s3, 0x1 -/* BEF68 8012A0D8 A2420000 */ sb $v0, 0x0($s2) -/* BEF6C 8012A0DC 9282041E */ lbu $v0, 0x41E($s4) -/* BEF70 8012A0E0 26520001 */ addiu $s2, $s2, 0x1 -/* BEF74 8012A0E4 0804A87B */ j .LJP_8012A1EC -/* BEF78 8012A0E8 A682000E */ sh $v0, 0xE($s4) -.LJP_8012A0EC: -/* BEF7C 8012A0EC A2560000 */ sb $s6, 0x0($s2) -/* BEF80 8012A0F0 26520001 */ addiu $s2, $s2, 0x1 -/* BEF84 8012A0F4 24020010 */ addiu $v0, $zero, 0x10 -/* BEF88 8012A0F8 A2420000 */ sb $v0, 0x0($s2) -/* BEF8C 8012A0FC 26520001 */ addiu $s2, $s2, 0x1 -/* BEF90 8012A100 92700000 */ lbu $s0, 0x0($s3) -/* BEF94 8012A104 26730001 */ addiu $s3, $s3, 0x1 -/* BEF98 8012A108 92650000 */ lbu $a1, 0x0($s3) -/* BEF9C 8012A10C 26730001 */ addiu $s3, $s3, 0x1 -/* BEFA0 8012A110 3C068016 */ lui $a2, %hi(D_80159B50) -/* BEFA4 8012A114 24C6EAD0 */ addiu $a2, $a2, %lo(D_80159B50) -/* BEFA8 8012A118 3C11001D */ lui $s1, %hi(D_1D4720) -/* BEFAC 8012A11C 26314720 */ addiu $s1, $s1, %lo(D_1D4720) -/* BEFB0 8012A120 3C018015 */ lui $at, %hi(D_8015131C) -/* BEFB4 8012A124 AC26637C */ sw $a2, %lo(D_8015131C)($at) -/* BEFB8 8012A128 00108200 */ sll $s0, $s0, 8 -/* BEFBC 8012A12C 00B08025 */ or $s0, $a1, $s0 -/* BEFC0 8012A130 00108400 */ sll $s0, $s0, 16 -/* BEFC4 8012A134 00108383 */ sra $s0, $s0, 14 -/* BEFC8 8012A138 3C028009 */ lui $v0, %hi(gItemIconRasterOffsets) -/* BEFCC 8012A13C 00501021 */ addu $v0, $v0, $s0 -/* BEFD0 8012A140 8C42E3A8 */ lw $v0, %lo(gItemIconRasterOffsets)($v0) -/* BEFD4 8012A144 26250200 */ addiu $a1, $s1, 0x200 -/* BEFD8 8012A148 00512021 */ addu $a0, $v0, $s1 -/* BEFDC 8012A14C 0C00A5BF */ jal dma_copy -/* BEFE0 8012A150 00452821 */ addu $a1, $v0, $a1 -/* BEFE4 8012A154 3C058009 */ lui $a1, %hi(gItemIconPaletteOffsets) -/* BEFE8 8012A158 00B02821 */ addu $a1, $a1, $s0 -/* BEFEC 8012A15C 8CA5E91C */ lw $a1, %lo(gItemIconPaletteOffsets)($a1) -/* BEFF0 8012A160 3C068016 */ lui $a2, %hi(D_8015C7E0) -/* BEFF4 8012A164 24C61760 */ addiu $a2, $a2, %lo(D_8015C7E0) -/* BEFF8 8012A168 00B12021 */ addu $a0, $a1, $s1 -/* BEFFC 8012A16C 26310020 */ addiu $s1, $s1, 0x20 -/* BF000 8012A170 0C00A5BF */ jal dma_copy -/* BF004 8012A174 00B12821 */ addu $a1, $a1, $s1 -/* BF008 8012A178 9282041E */ lbu $v0, 0x41E($s4) -/* BF00C 8012A17C 26B5FFFF */ addiu $s5, $s5, -0x1 -/* BF010 8012A180 0804A87B */ j .LJP_8012A1EC -/* BF014 8012A184 A682000E */ sh $v0, 0xE($s4) -.LJP_8012A188: -/* BF018 8012A188 92620000 */ lbu $v0, 0x0($s3) -/* BF01C 8012A18C 26730001 */ addiu $s3, $s3, 0x1 -/* BF020 8012A190 26B5FFFF */ addiu $s5, $s5, -0x1 -/* BF024 8012A194 A28204EB */ sb $v0, 0x4EB($s4) -/* BF028 8012A198 92700000 */ lbu $s0, 0x0($s3) -/* BF02C 8012A19C 26730001 */ addiu $s3, $s3, 0x1 -/* BF030 8012A1A0 92650000 */ lbu $a1, 0x0($s3) -/* BF034 8012A1A4 26730001 */ addiu $s3, $s3, 0x1 -/* BF038 8012A1A8 00101200 */ sll $v0, $s0, 8 -/* BF03C 8012A1AC 00A21025 */ or $v0, $a1, $v0 -/* BF040 8012A1B0 A68204EC */ sh $v0, 0x4EC($s4) -/* BF044 8012A1B4 92620000 */ lbu $v0, 0x0($s3) -/* BF048 8012A1B8 26730001 */ addiu $s3, $s3, 0x1 -/* BF04C 8012A1BC A68204EE */ sh $v0, 0x4EE($s4) -/* BF050 8012A1C0 92620000 */ lbu $v0, 0x0($s3) -/* BF054 8012A1C4 26730001 */ addiu $s3, $s3, 0x1 -/* BF058 8012A1C8 A28204F0 */ sb $v0, 0x4F0($s4) -/* BF05C 8012A1CC 92620000 */ lbu $v0, 0x0($s3) -/* BF060 8012A1D0 26730001 */ addiu $s3, $s3, 0x1 -/* BF064 8012A1D4 A28204F1 */ sb $v0, 0x4F1($s4) -/* BF068 8012A1D8 92620000 */ lbu $v0, 0x0($s3) -/* BF06C 8012A1DC 26730001 */ addiu $s3, $s3, 0x1 -/* BF070 8012A1E0 A28004F3 */ sb $zero, 0x4F3($s4) -/* BF074 8012A1E4 A68004F4 */ sh $zero, 0x4F4($s4) -/* BF078 8012A1E8 A28204F2 */ sb $v0, 0x4F2($s4) -.LJP_8012A1EC: -/* BF07C 8012A1EC 1EA00004 */ bgtz $s5, .LJP_8012A200 -/* BF080 8012A1F0 00000000 */ nop -/* BF084 8012A1F4 968204C0 */ lhu $v0, 0x4C0($s4) -/* BF088 8012A1F8 34420001 */ ori $v0, $v0, 0x1 -/* BF08C 8012A1FC A68204C0 */ sh $v0, 0x4C0($s4) -.LJP_8012A200: -/* BF090 8012A200 968304C0 */ lhu $v1, 0x4C0($s4) -/* BF094 8012A204 30620006 */ andi $v0, $v1, 0x6 -.LJP_8012A208: -/* BF098 8012A208 1040019A */ beqz $v0, .LJP_8012A874 -/* BF09C 8012A20C 3062FFFE */ andi $v0, $v1, 0xFFFE -/* BF0A0 8012A210 0804AA19 */ j .LJP_8012A864 -/* BF0A4 8012A214 A68204C0 */ sh $v0, 0x4C0($s4) -.LJP_8012A218: -/* BF0A8 8012A218 92700000 */ lbu $s0, 0x0($s3) -/* BF0AC 8012A21C 12000005 */ beqz $s0, .LJP_8012A234 -/* BF0B0 8012A220 26730001 */ addiu $s3, $s3, 0x1 -/* BF0B4 8012A224 A29704F3 */ sb $s7, 0x4F3($s4) -/* BF0B8 8012A228 A29004F2 */ sb $s0, 0x4F2($s4) -/* BF0BC 8012A22C 0804AA19 */ j .LJP_8012A864 -/* BF0C0 8012A230 A68004F4 */ sh $zero, 0x4F4($s4) -.LJP_8012A234: -/* BF0C4 8012A234 0804AA19 */ j .LJP_8012A864 -/* BF0C8 8012A238 A68004EC */ sh $zero, 0x4EC($s4) -.LJP_8012A23C: -/* BF0CC 8012A23C A2560000 */ sb $s6, 0x0($s2) -/* BF0D0 8012A240 26520001 */ addiu $s2, $s2, 0x1 -/* BF0D4 8012A244 24020011 */ addiu $v0, $zero, 0x11 -/* BF0D8 8012A248 A2420000 */ sb $v0, 0x0($s2) -/* BF0DC 8012A24C 26520001 */ addiu $s2, $s2, 0x1 -/* BF0E0 8012A250 92620000 */ lbu $v0, 0x0($s3) -/* BF0E4 8012A254 26730001 */ addiu $s3, $s3, 0x1 -/* BF0E8 8012A258 A2420000 */ sb $v0, 0x0($s2) -/* BF0EC 8012A25C 26520001 */ addiu $s2, $s2, 0x1 -/* BF0F0 8012A260 92620000 */ lbu $v0, 0x0($s3) -/* BF0F4 8012A264 26730001 */ addiu $s3, $s3, 0x1 -/* BF0F8 8012A268 A2420000 */ sb $v0, 0x0($s2) -/* BF0FC 8012A26C 26520001 */ addiu $s2, $s2, 0x1 -/* BF100 8012A270 92620000 */ lbu $v0, 0x0($s3) -/* BF104 8012A274 26730001 */ addiu $s3, $s3, 0x1 -/* BF108 8012A278 A2420000 */ sb $v0, 0x0($s2) -/* BF10C 8012A27C 968204C0 */ lhu $v0, 0x4C0($s4) -/* BF110 8012A280 26520001 */ addiu $s2, $s2, 0x1 -/* BF114 8012A284 34420004 */ ori $v0, $v0, 0x4 -/* BF118 8012A288 0804AA19 */ j .LJP_8012A864 -/* BF11C 8012A28C A68204C0 */ sh $v0, 0x4C0($s4) -.LJP_8012A290: -/* BF120 8012A290 A2560000 */ sb $s6, 0x0($s2) -/* BF124 8012A294 26520001 */ addiu $s2, $s2, 0x1 -/* BF128 8012A298 24020012 */ addiu $v0, $zero, 0x12 -/* BF12C 8012A29C A2420000 */ sb $v0, 0x0($s2) -/* BF130 8012A2A0 26520001 */ addiu $s2, $s2, 0x1 -/* BF134 8012A2A4 92620000 */ lbu $v0, 0x0($s3) -/* BF138 8012A2A8 0804A9EB */ j .LJP_8012A7AC -/* BF13C 8012A2AC 26730001 */ addiu $s3, $s3, 0x1 -.LJP_8012A2B0: -/* BF140 8012A2B0 A2560000 */ sb $s6, 0x0($s2) -/* BF144 8012A2B4 26520001 */ addiu $s2, $s2, 0x1 -/* BF148 8012A2B8 24020013 */ addiu $v0, $zero, 0x13 -/* BF14C 8012A2BC A2420000 */ sb $v0, 0x0($s2) -/* BF150 8012A2C0 26520001 */ addiu $s2, $s2, 0x1 -/* BF154 8012A2C4 92620000 */ lbu $v0, 0x0($s3) -/* BF158 8012A2C8 26730001 */ addiu $s3, $s3, 0x1 -/* BF15C 8012A2CC 26B5FFFF */ addiu $s5, $s5, -0x1 -/* BF160 8012A2D0 A2420000 */ sb $v0, 0x0($s2) -/* BF164 8012A2D4 968204C0 */ lhu $v0, 0x4C0($s4) -/* BF168 8012A2D8 26520001 */ addiu $s2, $s2, 0x1 -/* BF16C 8012A2DC 3042FFFB */ andi $v0, $v0, 0xFFFB -/* BF170 8012A2E0 1EA00160 */ bgtz $s5, .LJP_8012A864 -/* BF174 8012A2E4 A68204C0 */ sh $v0, 0x4C0($s4) -.LJP_8012A2E8: -/* BF178 8012A2E8 34420001 */ ori $v0, $v0, 0x1 -/* BF17C 8012A2EC 0804AA19 */ j .LJP_8012A864 -/* BF180 8012A2F0 A68204C0 */ sh $v0, 0x4C0($s4) -.LJP_8012A2F4: -/* BF184 8012A2F4 92700000 */ lbu $s0, 0x0($s3) -/* BF188 8012A2F8 26730001 */ addiu $s3, $s3, 0x1 -/* BF18C 8012A2FC 92650000 */ lbu $a1, 0x0($s3) -/* BF190 8012A300 26730001 */ addiu $s3, $s3, 0x1 -/* BF194 8012A304 92640000 */ lbu $a0, 0x0($s3) -/* BF198 8012A308 26730001 */ addiu $s3, $s3, 0x1 -/* BF19C 8012A30C 92660000 */ lbu $a2, 0x0($s3) -/* BF1A0 8012A310 26730001 */ addiu $s3, $s3, 0x1 -/* BF1A4 8012A314 00101040 */ sll $v0, $s0, 1 -/* BF1A8 8012A318 02821021 */ addu $v0, $s4, $v0 -/* BF1AC 8012A31C 00051A00 */ sll $v1, $a1, 8 -/* BF1B0 8012A320 00831825 */ or $v1, $a0, $v1 -/* BF1B4 8012A324 A4430490 */ sh $v1, 0x490($v0) -/* BF1B8 8012A328 30C300FF */ andi $v1, $a2, 0xFF -/* BF1BC 8012A32C 0804AA19 */ j .LJP_8012A864 -/* BF1C0 8012A330 A443049C */ sh $v1, 0x49C($v0) -.LJP_8012A334: -/* BF1C4 8012A334 A2560000 */ sb $s6, 0x0($s2) -/* BF1C8 8012A338 26520001 */ addiu $s2, $s2, 0x1 -/* BF1CC 8012A33C 0804A9EB */ j .LJP_8012A7AC -/* BF1D0 8012A340 24020014 */ addiu $v0, $zero, 0x14 -.LJP_8012A344: -/* BF1D4 8012A344 24040009 */ addiu $a0, $zero, 0x9 -/* BF1D8 8012A348 0000282D */ daddu $a1, $zero, $zero -/* BF1DC 8012A34C 00A0302D */ daddu $a2, $a1, $zero -/* BF1E0 8012A350 0C053ADA */ jal sfx_play_sound_with_params -/* BF1E4 8012A354 00A0382D */ daddu $a3, $a1, $zero -/* BF1E8 8012A358 92640000 */ lbu $a0, 0x0($s3) -/* BF1EC 8012A35C 26730001 */ addiu $s3, $s3, 0x1 -/* BF1F0 8012A360 968304C0 */ lhu $v1, 0x4C0($s4) -/* BF1F4 8012A364 24020007 */ addiu $v0, $zero, 0x7 -/* BF1F8 8012A368 A28004A9 */ sb $zero, 0x4A9($s4) -/* BF1FC 8012A36C A28004A8 */ sb $zero, 0x4A8($s4) -/* BF200 8012A370 A28004AE */ sb $zero, 0x4AE($s4) -/* BF204 8012A374 A28204B8 */ sb $v0, 0x4B8($s4) -/* BF208 8012A378 34630001 */ ori $v1, $v1, 0x1 -/* BF20C 8012A37C A284048E */ sb $a0, 0x48E($s4) -/* BF210 8012A380 0804AA19 */ j .LJP_8012A864 -/* BF214 8012A384 A68304C0 */ sh $v1, 0x4C0($s4) -.LJP_8012A388: -/* BF218 8012A388 92620000 */ lbu $v0, 0x0($s3) -/* BF21C 8012A38C 26730001 */ addiu $s3, $s3, 0x1 -/* BF220 8012A390 0804AA19 */ j .LJP_8012A864 -/* BF224 8012A394 A28204AA */ sb $v0, 0x4AA($s4) -.LJP_8012A398: -/* BF228 8012A398 A2560000 */ sb $s6, 0x0($s2) -/* BF22C 8012A39C 26520001 */ addiu $s2, $s2, 0x1 -/* BF230 8012A3A0 0804A9EB */ j .LJP_8012A7AC -/* BF234 8012A3A4 24020015 */ addiu $v0, $zero, 0x15 -.LJP_8012A3A8: -/* BF238 8012A3A8 A2560000 */ sb $s6, 0x0($s2) -/* BF23C 8012A3AC 26520001 */ addiu $s2, $s2, 0x1 -/* BF240 8012A3B0 0804A9EF */ j .LJP_8012A7BC -/* BF244 8012A3B4 24020017 */ addiu $v0, $zero, 0x17 -.LJP_8012A3B8: -/* BF248 8012A3B8 3C040010 */ lui $a0, (0x100040 >> 16) -/* BF24C 8012A3BC 34840040 */ ori $a0, $a0, (0x100040 & 0xFFFF) -/* BF250 8012A3C0 8E8204BC */ lw $v0, 0x4BC($s4) -/* BF254 8012A3C4 968304C0 */ lhu $v1, 0x4C0($s4) -/* BF258 8012A3C8 00441025 */ or $v0, $v0, $a0 -/* BF25C 8012A3CC 34630001 */ ori $v1, $v1, 0x1 -/* BF260 8012A3D0 AE8204BC */ sw $v0, 0x4BC($s4) -/* BF264 8012A3D4 A68304C0 */ sh $v1, 0x4C0($s4) -/* BF268 8012A3D8 0040182D */ daddu $v1, $v0, $zero -/* BF26C 8012A3DC 2402FF7F */ addiu $v0, $zero, -0x81 -/* BF270 8012A3E0 00621824 */ and $v1, $v1, $v0 -/* BF274 8012A3E4 2402FEFF */ addiu $v0, $zero, -0x101 -/* BF278 8012A3E8 00621824 */ and $v1, $v1, $v0 -/* BF27C 8012A3EC 0804AA19 */ j .LJP_8012A864 -/* BF280 8012A3F0 AE8304BC */ sw $v1, 0x4BC($s4) -.LJP_8012A3F4: -/* BF284 8012A3F4 A2560000 */ sb $s6, 0x0($s2) -/* BF288 8012A3F8 26520001 */ addiu $s2, $s2, 0x1 -/* BF28C 8012A3FC 0804A9EF */ j .LJP_8012A7BC -/* BF290 8012A400 24020018 */ addiu $v0, $zero, 0x18 -.LJP_8012A404: -/* BF294 8012A404 A2560000 */ sb $s6, 0x0($s2) -/* BF298 8012A408 26520001 */ addiu $s2, $s2, 0x1 -/* BF29C 8012A40C 0804A9EF */ j .LJP_8012A7BC -/* BF2A0 8012A410 24020019 */ addiu $v0, $zero, 0x19 -.LJP_8012A414: -/* BF2A4 8012A414 A2560000 */ sb $s6, 0x0($s2) -/* BF2A8 8012A418 26520001 */ addiu $s2, $s2, 0x1 -/* BF2AC 8012A41C 0804A9EF */ j .LJP_8012A7BC -/* BF2B0 8012A420 2402001A */ addiu $v0, $zero, 0x1A -.LJP_8012A424: -/* BF2B4 8012A424 A2560000 */ sb $s6, 0x0($s2) -/* BF2B8 8012A428 26520001 */ addiu $s2, $s2, 0x1 -/* BF2BC 8012A42C 0804A9EF */ j .LJP_8012A7BC -/* BF2C0 8012A430 2402001B */ addiu $v0, $zero, 0x1B -.LJP_8012A434: -/* BF2C4 8012A434 A2560000 */ sb $s6, 0x0($s2) -/* BF2C8 8012A438 26520001 */ addiu $s2, $s2, 0x1 -/* BF2CC 8012A43C 2402001C */ addiu $v0, $zero, 0x1C -/* BF2D0 8012A440 A2420000 */ sb $v0, 0x0($s2) -/* BF2D4 8012A444 26520001 */ addiu $s2, $s2, 0x1 -/* BF2D8 8012A448 92700000 */ lbu $s0, 0x0($s3) -/* BF2DC 8012A44C 320300FF */ andi $v1, $s0, 0xFF -/* BF2E0 8012A450 2C62000F */ sltiu $v0, $v1, 0xF -/* BF2E4 8012A454 10400103 */ beqz $v0, .LJP_8012A864 -/* BF2E8 8012A458 26730001 */ addiu $s3, $s3, 0x1 -/* BF2EC 8012A45C 00031080 */ sll $v0, $v1, 2 -/* BF2F0 8012A460 3C018015 */ lui $at, %hi(jtbl_JP_80155598) -/* BF2F4 8012A464 00220821 */ addu $at, $at, $v0 -/* BF2F8 8012A468 8C225598 */ lw $v0, %lo(jtbl_JP_80155598)($at) -/* BF2FC 8012A46C 00400008 */ jr $v0 -/* BF300 8012A470 00000000 */ nop -.LJP_8012A474: -/* BF304 8012A474 A2500000 */ sb $s0, 0x0($s2) -/* BF308 8012A478 0804AA19 */ j .LJP_8012A864 -/* BF30C 8012A47C 26520001 */ addiu $s2, $s2, 0x1 -.LJP_8012A480: -/* BF310 8012A480 0804A9EC */ j .LJP_8012A7B0 -/* BF314 8012A484 A2500000 */ sb $s0, 0x0($s2) -.LJP_8012A488: -/* BF318 8012A488 A2560000 */ sb $s6, 0x0($s2) -/* BF31C 8012A48C 26520001 */ addiu $s2, $s2, 0x1 -/* BF320 8012A490 0804A9EB */ j .LJP_8012A7AC -/* BF324 8012A494 2402001D */ addiu $v0, $zero, 0x1D -.LJP_8012A498: -/* BF328 8012A498 928204EA */ lbu $v0, 0x4EA($s4) -/* BF32C 8012A49C A68004E8 */ sh $zero, 0x4E8($s4) -/* BF330 8012A4A0 A2820415 */ sb $v0, 0x415($s4) -/* BF334 8012A4A4 244200F1 */ addiu $v0, $v0, 0xF1 -/* BF338 8012A4A8 A2420000 */ sb $v0, 0x0($s2) -/* BF33C 8012A4AC 0804A9A8 */ j .LJP_8012A6A0 -/* BF340 8012A4B0 26520001 */ addiu $s2, $s2, 0x1 -.LJP_8012A4B4: -/* BF344 8012A4B4 92700000 */ lbu $s0, 0x0($s3) -/* BF348 8012A4B8 968204E8 */ lhu $v0, 0x4E8($s4) -/* BF34C 8012A4BC 14400006 */ bnez $v0, .LJP_8012A4D8 -/* BF350 8012A4C0 2673FFFE */ addiu $s3, $s3, -0x2 -/* BF354 8012A4C4 92820415 */ lbu $v0, 0x415($s4) -/* BF358 8012A4C8 A28204EA */ sb $v0, 0x4EA($s4) -/* BF35C 8012A4CC 240200F1 */ addiu $v0, $zero, 0xF1 -/* BF360 8012A4D0 A2420000 */ sb $v0, 0x0($s2) -/* BF364 8012A4D4 26520001 */ addiu $s2, $s2, 0x1 -.LJP_8012A4D8: -/* BF368 8012A4D8 00108140 */ sll $s0, $s0, 5 -/* BF36C 8012A4DC 240800FF */ addiu $t0, $zero, 0xFF -/* BF370 8012A4E0 240700FD */ addiu $a3, $zero, 0xFD -/* BF374 8012A4E4 27A60010 */ addiu $a2, $sp, 0x10 -.LJP_8012A4E8: -/* BF378 8012A4E8 968204E8 */ lhu $v0, 0x4E8($s4) -/* BF37C 8012A4EC 3C098016 */ lui $t1, %hi(gMessageMsgVars) -/* BF380 8012A4F0 2529ABB0 */ addiu $t1, $t1, %lo(gMessageMsgVars) -/* BF384 8012A4F4 24430001 */ addiu $v1, $v0, 0x1 -/* BF388 8012A4F8 3042FFFF */ andi $v0, $v0, 0xFFFF -/* BF38C 8012A4FC 00501021 */ addu $v0, $v0, $s0 -/* BF390 8012A500 00491021 */ addu $v0, $v0, $t1 -/* BF394 8012A504 A68304E8 */ sh $v1, 0x4E8($s4) -/* BF398 8012A508 90450000 */ lbu $a1, 0x0($v0) -/* BF39C 8012A50C 30A300FF */ andi $v1, $a1, 0xFF -/* BF3A0 8012A510 2C6200F0 */ sltiu $v0, $v1, 0xF0 -/* BF3A4 8012A514 14400048 */ bnez $v0, .LJP_8012A638 -/* BF3A8 8012A518 24040001 */ addiu $a0, $zero, 0x1 -/* BF3AC 8012A51C 286200F7 */ slti $v0, $v1, 0xF7 -/* BF3B0 8012A520 10400007 */ beqz $v0, .LJP_8012A540 -/* BF3B4 8012A524 286200F3 */ slti $v0, $v1, 0xF3 -/* BF3B8 8012A528 10400013 */ beqz $v0, .LJP_8012A578 -/* BF3BC 8012A52C 240900F0 */ addiu $t1, $zero, 0xF0 -/* BF3C0 8012A530 10690007 */ beq $v1, $t1, .LJP_8012A550 -/* BF3C4 8012A534 00000000 */ nop -/* BF3C8 8012A538 0804A990 */ j .LJP_8012A640 -/* BF3CC 8012A53C 0000182D */ daddu $v1, $zero, $zero -.LJP_8012A540: -/* BF3D0 8012A540 50680012 */ beql $v1, $t0, .LJP_8012A58C -/* BF3D4 8012A544 A3A30010 */ sb $v1, 0x10($sp) -/* BF3D8 8012A548 0804A990 */ j .LJP_8012A640 -/* BF3DC 8012A54C 0000182D */ daddu $v1, $zero, $zero -.LJP_8012A550: -/* BF3E0 8012A550 968204E8 */ lhu $v0, 0x4E8($s4) -/* BF3E4 8012A554 3C098016 */ lui $t1, %hi(gMessageMsgVars) -/* BF3E8 8012A558 2529ABB0 */ addiu $t1, $t1, %lo(gMessageMsgVars) -/* BF3EC 8012A55C 00501021 */ addu $v0, $v0, $s0 -/* BF3F0 8012A560 00491021 */ addu $v0, $v0, $t1 -/* BF3F4 8012A564 90420000 */ lbu $v0, 0x0($v0) -/* BF3F8 8012A568 50470034 */ beql $v0, $a3, .LJP_8012A63C -/* BF3FC 8012A56C 0000202D */ daddu $a0, $zero, $zero -/* BF400 8012A570 0804A98F */ j .LJP_8012A63C -/* BF404 8012A574 A3A30010 */ sb $v1, 0x10($sp) -.LJP_8012A578: -/* BF408 8012A578 24A200FE */ addiu $v0, $a1, 0xFE -/* BF40C 8012A57C A3A20010 */ sb $v0, 0x10($sp) -/* BF410 8012A580 24A2010D */ addiu $v0, $a1, 0x10D -/* BF414 8012A584 0804A98F */ j .LJP_8012A63C -/* BF418 8012A588 A2820415 */ sb $v0, 0x415($s4) -.LJP_8012A58C: -/* BF41C 8012A58C 968204E8 */ lhu $v0, 0x4E8($s4) -/* BF420 8012A590 3C098016 */ lui $t1, %hi(gMessageMsgVars) -/* BF424 8012A594 2529ABB0 */ addiu $t1, $t1, %lo(gMessageMsgVars) -/* BF428 8012A598 24430001 */ addiu $v1, $v0, 0x1 -/* BF42C 8012A59C 3042FFFF */ andi $v0, $v0, 0xFFFF -/* BF430 8012A5A0 00501021 */ addu $v0, $v0, $s0 -/* BF434 8012A5A4 00491021 */ addu $v0, $v0, $t1 -/* BF438 8012A5A8 A68304E8 */ sh $v1, 0x4E8($s4) -/* BF43C 8012A5AC 90430000 */ lbu $v1, 0x0($v0) -/* BF440 8012A5B0 24020024 */ addiu $v0, $zero, 0x24 -/* BF444 8012A5B4 1062001A */ beq $v1, $v0, .LJP_8012A620 -/* BF448 8012A5B8 28620025 */ slti $v0, $v1, 0x25 -/* BF44C 8012A5BC 10400005 */ beqz $v0, .LJP_8012A5D4 -/* BF450 8012A5C0 24020005 */ addiu $v0, $zero, 0x5 -/* BF454 8012A5C4 10620008 */ beq $v1, $v0, .LJP_8012A5E8 -/* BF458 8012A5C8 0000182D */ daddu $v1, $zero, $zero -/* BF45C 8012A5CC 0804A990 */ j .LJP_8012A640 -/* BF460 8012A5D0 00000000 */ nop -.LJP_8012A5D4: -/* BF464 8012A5D4 24020025 */ addiu $v0, $zero, 0x25 -/* BF468 8012A5D8 10620013 */ beq $v1, $v0, .LJP_8012A628 -/* BF46C 8012A5DC 0000182D */ daddu $v1, $zero, $zero -/* BF470 8012A5E0 0804A990 */ j .LJP_8012A640 -/* BF474 8012A5E4 00000000 */ nop -.LJP_8012A5E8: -/* BF478 8012A5E8 24020004 */ addiu $v0, $zero, 0x4 -/* BF47C 8012A5EC A3A20011 */ sb $v0, 0x11($sp) -/* BF480 8012A5F0 968204E8 */ lhu $v0, 0x4E8($s4) -/* BF484 8012A5F4 3C098016 */ lui $t1, %hi(gMessageMsgVars) -/* BF488 8012A5F8 2529ABB0 */ addiu $t1, $t1, %lo(gMessageMsgVars) -/* BF48C 8012A5FC 24430001 */ addiu $v1, $v0, 0x1 -/* BF490 8012A600 3042FFFF */ andi $v0, $v0, 0xFFFF -/* BF494 8012A604 00501021 */ addu $v0, $v0, $s0 -/* BF498 8012A608 00491021 */ addu $v0, $v0, $t1 -/* BF49C 8012A60C A68304E8 */ sh $v1, 0x4E8($s4) -/* BF4A0 8012A610 90420000 */ lbu $v0, 0x0($v0) -/* BF4A4 8012A614 24040003 */ addiu $a0, $zero, 0x3 -/* BF4A8 8012A618 0804A98F */ j .LJP_8012A63C -/* BF4AC 8012A61C A3A20012 */ sb $v0, 0x12($sp) -.LJP_8012A620: -/* BF4B0 8012A620 0804A98B */ j .LJP_8012A62C -/* BF4B4 8012A624 2402001A */ addiu $v0, $zero, 0x1A -.LJP_8012A628: -/* BF4B8 8012A628 2402001B */ addiu $v0, $zero, 0x1B -.LJP_8012A62C: -/* BF4BC 8012A62C A3A20011 */ sb $v0, 0x11($sp) -/* BF4C0 8012A630 0804A98F */ j .LJP_8012A63C -/* BF4C4 8012A634 24040002 */ addiu $a0, $zero, 0x2 -.LJP_8012A638: -/* BF4C8 8012A638 A3A50010 */ sb $a1, 0x10($sp) -.LJP_8012A63C: -/* BF4CC 8012A63C 0000182D */ daddu $v1, $zero, $zero -.LJP_8012A640: -/* BF4D0 8012A640 10800009 */ beqz $a0, .LJP_8012A668 -/* BF4D4 8012A644 00000000 */ nop -.LJP_8012A648: -/* BF4D8 8012A648 26B5FFFF */ addiu $s5, $s5, -0x1 -/* BF4DC 8012A64C 00C31021 */ addu $v0, $a2, $v1 -/* BF4E0 8012A650 90420000 */ lbu $v0, 0x0($v0) -/* BF4E4 8012A654 24630001 */ addiu $v1, $v1, 0x1 -/* BF4E8 8012A658 A2420000 */ sb $v0, 0x0($s2) -/* BF4EC 8012A65C 0064102A */ slt $v0, $v1, $a0 -/* BF4F0 8012A660 1440FFF9 */ bnez $v0, .LJP_8012A648 -/* BF4F4 8012A664 26520001 */ addiu $s2, $s2, 0x1 -.LJP_8012A668: -/* BF4F8 8012A668 968204E8 */ lhu $v0, 0x4E8($s4) -/* BF4FC 8012A66C 3C098016 */ lui $t1, %hi(gMessageMsgVars) -/* BF500 8012A670 2529ABB0 */ addiu $t1, $t1, %lo(gMessageMsgVars) -/* BF504 8012A674 00501021 */ addu $v0, $v0, $s0 -/* BF508 8012A678 00491021 */ addu $v0, $v0, $t1 -/* BF50C 8012A67C 90420000 */ lbu $v0, 0x0($v0) -/* BF510 8012A680 5047FF85 */ beql $v0, $a3, .LJP_8012A498 -/* BF514 8012A684 26730003 */ addiu $s3, $s3, 0x3 -/* BF518 8012A688 968204C0 */ lhu $v0, 0x4C0($s4) -/* BF51C 8012A68C 30420006 */ andi $v0, $v0, 0x6 -/* BF520 8012A690 1440FF95 */ bnez $v0, .LJP_8012A4E8 -/* BF524 8012A694 00000000 */ nop -/* BF528 8012A698 1EA0FF93 */ bgtz $s5, .LJP_8012A4E8 -/* BF52C 8012A69C 00000000 */ nop -.LJP_8012A6A0: -/* BF530 8012A6A0 968404C0 */ lhu $a0, 0x4C0($s4) -/* BF534 8012A6A4 30820006 */ andi $v0, $a0, 0x6 -/* BF538 8012A6A8 54400066 */ bnel $v0, $zero, .LJP_8012A844 -/* BF53C 8012A6AC 0280202D */ daddu $a0, $s4, $zero -/* BF540 8012A6B0 5EA00064 */ bgtzl $s5, .LJP_8012A844 -/* BF544 8012A6B4 0280202D */ daddu $a0, $s4, $zero -/* BF548 8012A6B8 9283041E */ lbu $v1, 0x41E($s4) -/* BF54C 8012A6BC 34820001 */ ori $v0, $a0, 0x1 -/* BF550 8012A6C0 A68204C0 */ sh $v0, 0x4C0($s4) -/* BF554 8012A6C4 A683000E */ sh $v1, 0xE($s4) -/* BF558 8012A6C8 0804AA11 */ j .LJP_8012A844 -/* BF55C 8012A6CC 0280202D */ daddu $a0, $s4, $zero -.LJP_8012A6D0: -/* BF560 8012A6D0 92700000 */ lbu $s0, 0x0($s3) -/* BF564 8012A6D4 3C04802E */ lui $a0, %hi(D_802E676C) -/* BF568 8012A6D8 2484676C */ addiu $a0, $a0, %lo(D_802E676C) -/* BF56C 8012A6DC 320300FF */ andi $v1, $s0, 0xFF -/* BF570 8012A6E0 00031040 */ sll $v0, $v1, 1 -/* BF574 8012A6E4 00431021 */ addu $v0, $v0, $v1 -/* BF578 8012A6E8 00021080 */ sll $v0, $v0, 2 -/* BF57C 8012A6EC 00441021 */ addu $v0, $v0, $a0 -/* BF580 8012A6F0 A29004D8 */ sb $s0, 0x4D8($s4) -/* BF584 8012A6F4 8C430000 */ lw $v1, 0x0($v0) -/* BF588 8012A6F8 AE8304E0 */ sw $v1, 0x4E0($s4) -/* BF58C 8012A6FC 8C430004 */ lw $v1, 0x4($v0) -/* BF590 8012A700 AE8304E4 */ sw $v1, 0x4E4($s4) -/* BF594 8012A704 9442000A */ lhu $v0, 0xA($v0) -/* BF598 8012A708 26730001 */ addiu $s3, $s3, 0x1 -/* BF59C 8012A70C 0804AA19 */ j .LJP_8012A864 -/* BF5A0 8012A710 A68204DC */ sh $v0, 0x4DC($s4) -.LJP_8012A714: -/* BF5A4 8012A714 92620000 */ lbu $v0, 0x0($s3) -/* BF5A8 8012A718 26730001 */ addiu $s3, $s3, 0x1 -/* BF5AC 8012A71C 0804AA19 */ j .LJP_8012A864 -/* BF5B0 8012A720 A28204D9 */ sb $v0, 0x4D9($s4) -.LJP_8012A724: -/* BF5B4 8012A724 92700000 */ lbu $s0, 0x0($s3) -/* BF5B8 8012A728 26730001 */ addiu $s3, $s3, 0x1 -/* BF5BC 8012A72C 92650000 */ lbu $a1, 0x0($s3) -/* BF5C0 8012A730 26730001 */ addiu $s3, $s3, 0x1 -/* BF5C4 8012A734 92640000 */ lbu $a0, 0x0($s3) -/* BF5C8 8012A738 26730001 */ addiu $s3, $s3, 0x1 -/* BF5CC 8012A73C 92660000 */ lbu $a2, 0x0($s3) -/* BF5D0 8012A740 26730001 */ addiu $s3, $s3, 0x1 -/* BF5D4 8012A744 00101600 */ sll $v0, $s0, 24 -/* BF5D8 8012A748 00051C00 */ sll $v1, $a1, 16 -/* BF5DC 8012A74C 00431021 */ addu $v0, $v0, $v1 -/* BF5E0 8012A750 00041A00 */ sll $v1, $a0, 8 -/* BF5E4 8012A754 00431021 */ addu $v0, $v0, $v1 -/* BF5E8 8012A758 00C21025 */ or $v0, $a2, $v0 -/* BF5EC 8012A75C AE8204E0 */ sw $v0, 0x4E0($s4) -/* BF5F0 8012A760 92700000 */ lbu $s0, 0x0($s3) -/* BF5F4 8012A764 26730001 */ addiu $s3, $s3, 0x1 -/* BF5F8 8012A768 92650000 */ lbu $a1, 0x0($s3) -/* BF5FC 8012A76C 26730001 */ addiu $s3, $s3, 0x1 -/* BF600 8012A770 92640000 */ lbu $a0, 0x0($s3) -/* BF604 8012A774 26730001 */ addiu $s3, $s3, 0x1 -/* BF608 8012A778 92660000 */ lbu $a2, 0x0($s3) -/* BF60C 8012A77C 26730001 */ addiu $s3, $s3, 0x1 -/* BF610 8012A780 00101600 */ sll $v0, $s0, 24 -/* BF614 8012A784 00051C00 */ sll $v1, $a1, 16 -/* BF618 8012A788 00431021 */ addu $v0, $v0, $v1 -/* BF61C 8012A78C 00041A00 */ sll $v1, $a0, 8 -/* BF620 8012A790 00431021 */ addu $v0, $v0, $v1 -/* BF624 8012A794 00C21025 */ or $v0, $a2, $v0 -/* BF628 8012A798 0804AA19 */ j .LJP_8012A864 -/* BF62C 8012A79C AE8204E4 */ sw $v0, 0x4E4($s4) -.LJP_8012A7A0: -/* BF630 8012A7A0 A2560000 */ sb $s6, 0x0($s2) -/* BF634 8012A7A4 26520001 */ addiu $s2, $s2, 0x1 -/* BF638 8012A7A8 2402001E */ addiu $v0, $zero, 0x1E -.LJP_8012A7AC: -/* BF63C 8012A7AC A2420000 */ sb $v0, 0x0($s2) -.LJP_8012A7B0: -/* BF640 8012A7B0 26520001 */ addiu $s2, $s2, 0x1 -/* BF644 8012A7B4 92620000 */ lbu $v0, 0x0($s3) -/* BF648 8012A7B8 26730001 */ addiu $s3, $s3, 0x1 -.LJP_8012A7BC: -/* BF64C 8012A7BC A2420000 */ sb $v0, 0x0($s2) -/* BF650 8012A7C0 0804AA19 */ j .LJP_8012A864 -/* BF654 8012A7C4 26520001 */ addiu $s2, $s2, 0x1 -.LJP_8012A7C8: -/* BF658 8012A7C8 92620000 */ lbu $v0, 0x0($s3) -/* BF65C 8012A7CC 10400005 */ beqz $v0, .LJP_8012A7E4 -/* BF660 8012A7D0 26730001 */ addiu $s3, $s3, 0x1 -/* BF664 8012A7D4 8E8204BC */ lw $v0, 0x4BC($s4) -/* BF668 8012A7D8 3C030004 */ lui $v1, (0x40000 >> 16) -/* BF66C 8012A7DC 0804AA18 */ j .LJP_8012A860 -/* BF670 8012A7E0 00431025 */ or $v0, $v0, $v1 -.LJP_8012A7E4: -/* BF674 8012A7E4 3C03FFFB */ lui $v1, (0xFFFBFFFF >> 16) -/* BF678 8012A7E8 8E8204BC */ lw $v0, 0x4BC($s4) -/* BF67C 8012A7EC 3463FFFF */ ori $v1, $v1, (0xFFFBFFFF & 0xFFFF) -/* BF680 8012A7F0 0804AA18 */ j .LJP_8012A860 -/* BF684 8012A7F4 00431024 */ and $v0, $v0, $v1 -.LJP_8012A7F8: -/* BF688 8012A7F8 8E8204BC */ lw $v0, 0x4BC($s4) -/* BF68C 8012A7FC 3C030008 */ lui $v1, (0x80000 >> 16) -/* BF690 8012A800 0804AA18 */ j .LJP_8012A860 -/* BF694 8012A804 00431025 */ or $v0, $v0, $v1 -.LJP_8012A808: -/* BF698 8012A808 A2450000 */ sb $a1, 0x0($s2) -/* BF69C 8012A80C 26520001 */ addiu $s2, $s2, 0x1 -/* BF6A0 8012A810 92820415 */ lbu $v0, 0x415($s4) -/* BF6A4 8012A814 14400009 */ bnez $v0, .LJP_8012A83C -/* BF6A8 8012A818 26B5FFFF */ addiu $s5, $s5, -0x1 -/* BF6AC 8012A81C 30A300FF */ andi $v1, $a1, 0xFF -/* BF6B0 8012A820 240200C3 */ addiu $v0, $zero, 0xC3 -/* BF6B4 8012A824 14620006 */ bne $v1, $v0, .LJP_8012A840 -/* BF6B8 8012A828 0280202D */ daddu $a0, $s4, $zero -/* BF6BC 8012A82C 8E8204BC */ lw $v0, 0x4BC($s4) -/* BF6C0 8012A830 2403FF7F */ addiu $v1, $zero, -0x81 -/* BF6C4 8012A834 0804AA18 */ j .LJP_8012A860 -/* BF6C8 8012A838 00431024 */ and $v0, $v0, $v1 -.LJP_8012A83C: -/* BF6CC 8012A83C 0280202D */ daddu $a0, $s4, $zero -.LJP_8012A840: -/* BF6D0 8012A840 30A500FF */ andi $a1, $a1, 0xFF -.LJP_8012A844: -/* BF6D4 8012A844 0C04A5B5 */ jal msg_play_speech_sound -/* BF6D8 8012A848 00000000 */ nop -/* BF6DC 8012A84C 8E8304BC */ lw $v1, 0x4BC($s4) -/* BF6E0 8012A850 3C020080 */ lui $v0, (0x800000 >> 16) -/* BF6E4 8012A854 00621024 */ and $v0, $v1, $v0 -/* BF6E8 8012A858 10400002 */ beqz $v0, .LJP_8012A864 -/* BF6EC 8012A85C 34620080 */ ori $v0, $v1, 0x80 -.LJP_8012A860: -/* BF6F0 8012A860 AE8204BC */ sw $v0, 0x4BC($s4) -.LJP_8012A864: -/* BF6F4 8012A864 968204C0 */ lhu $v0, 0x4C0($s4) -/* BF6F8 8012A868 30420006 */ andi $v0, $v0, 0x6 -/* BF6FC 8012A86C 14400008 */ bnez $v0, .LJP_8012A890 -/* BF700 8012A870 00000000 */ nop -.LJP_8012A874: -/* BF704 8012A874 1EA00006 */ bgtz $s5, .LJP_8012A890 -/* BF708 8012A878 00000000 */ nop -/* BF70C 8012A87C 968204C0 */ lhu $v0, 0x4C0($s4) -/* BF710 8012A880 9283041E */ lbu $v1, 0x41E($s4) -/* BF714 8012A884 34420001 */ ori $v0, $v0, 0x1 -/* BF718 8012A888 A68204C0 */ sh $v0, 0x4C0($s4) -/* BF71C 8012A88C A683000E */ sh $v1, 0xE($s4) -.LJP_8012A890: -/* BF720 8012A890 968204C0 */ lhu $v0, 0x4C0($s4) -/* BF724 8012A894 30420001 */ andi $v0, $v0, 0x1 -/* BF728 8012A898 1040FBF5 */ beqz $v0, .LJP_80129870 -/* BF72C 8012A89C 00000000 */ nop -/* BF730 8012A8A0 13C00004 */ beqz $fp, .LJP_8012A8B4 -/* BF734 8012A8A4 240200FD */ addiu $v0, $zero, 0xFD -/* BF738 8012A8A8 9263FFFF */ lbu $v1, -0x1($s3) -/* BF73C 8012A8AC 1462FBF0 */ bne $v1, $v0, .LJP_80129870 -/* BF740 8012A8B0 24152710 */ addiu $s5, $zero, 0x2710 -.LJP_8012A8B4: -/* BF744 8012A8B4 2642FFF0 */ addiu $v0, $s2, -0x10 -/* BF748 8012A8B8 8E830000 */ lw $v1, 0x0($s4) -/* BF74C 8012A8BC 00541023 */ subu $v0, $v0, $s4 -/* BF750 8012A8C0 A6820004 */ sh $v0, 0x4($s4) -/* BF754 8012A8C4 240200FB */ addiu $v0, $zero, 0xFB -/* BF758 8012A8C8 A68004C0 */ sh $zero, 0x4C0($s4) -/* BF75C 8012A8CC 02631823 */ subu $v1, $s3, $v1 -/* BF760 8012A8D0 A683000C */ sh $v1, 0xC($s4) -/* BF764 8012A8D4 A2420000 */ sb $v0, 0x0($s2) -/* BF768 8012A8D8 8FBF0044 */ lw $ra, 0x44($sp) -/* BF76C 8012A8DC 8FBE0040 */ lw $fp, 0x40($sp) -/* BF770 8012A8E0 8FB7003C */ lw $s7, 0x3C($sp) -/* BF774 8012A8E4 8FB60038 */ lw $s6, 0x38($sp) -/* BF778 8012A8E8 8FB50034 */ lw $s5, 0x34($sp) -/* BF77C 8012A8EC 8FB40030 */ lw $s4, 0x30($sp) -/* BF780 8012A8F0 8FB3002C */ lw $s3, 0x2C($sp) -/* BF784 8012A8F4 8FB20028 */ lw $s2, 0x28($sp) -/* BF788 8012A8F8 8FB10024 */ lw $s1, 0x24($sp) -/* BF78C 8012A8FC 8FB00020 */ lw $s0, 0x20($sp) -/* BF790 8012A900 03E00008 */ jr $ra -/* BF794 8012A904 27BD0048 */ addiu $sp, $sp, 0x48 -.size msg_copy_to_print_buffer, . - msg_copy_to_print_buffer From 18e2c7a0e240cc85c8476675d5a3b129440a011a Mon Sep 17 00:00:00 2001 From: AltoXorg <56553686+Alto1772@users.noreply.github.com> Date: Sat, 13 Jan 2024 23:17:17 +0800 Subject: [PATCH 14/18] popup_menu_draw_menu_contents --- src/8a860_len_3f30.c | 137 +- .../popup_menu_draw_menu_contents.s | 1269 ----------------- 2 files changed, 111 insertions(+), 1295 deletions(-) delete mode 100644 ver/jp/asm/nonmatchings/8a860_len_3f30/popup_menu_draw_menu_contents.s diff --git a/src/8a860_len_3f30.c b/src/8a860_len_3f30.c index e87b3adae2e..5a93f912529 100644 --- a/src/8a860_len_3f30.c +++ b/src/8a860_len_3f30.c @@ -17,6 +17,32 @@ extern HudScript HES_PartnerRank2B; HudScript* D_80109890[] = { &HES_PartnerRank1A, &HES_PartnerRank2A }; HudScript* D_80109898[] = { &HES_PartnerRank1B, &HES_PartnerRank2B }; +#if VERSION_JP +#define WINDOW_KEY_WIDTH 242 +#define ALREADY_PARTNER_HEIGHT 32 +#define EMPTY_BAR_X 67 +#define DIARY_PAGE_X 0 +#define PARTNER_LIST_X1 50 +#define PARTNER_LIST_X2 66 +#define BADGE_PRICE_X 108 +#define ITEM_PRICE_X 106 +#define MENU_OFFSET_Y1 9 +#define MENU_OFFSET_Y2 7 +#define POPUP_PARTNER_WIDTH 80 +#else +#define WINDOW_KEY_WIDTH 280 +#define ALREADY_PARTNER_HEIGHT 40 +#define EMPTY_BAR_X 73 +#define DIARY_PAGE_X 8 +#define PARTNER_LIST_X1 85 +#define PARTNER_LIST_X2 91 +#define BADGE_PRICE_X 115 +#define ITEM_PRICE_X 121 +#define MENU_OFFSET_Y1 8 +#define MENU_OFFSET_Y2 6 +#define POPUP_PARTNER_WIDTH 100 +#endif + #if !VERSION_JP s16 PopupWorldStartX[] = { [POPUP_MENU_USE_ITEM] 140, @@ -317,14 +343,6 @@ void func_800F16CC(void) { gPopupState = POPUP_STATE_20; } -#if VERSION_JP -#define MENU_USEKEY_DIFF 242 -#define MENU_ALREADY_PARTNER_DIFF 32 -#else -#define MENU_USEKEY_DIFF 280 -#define MENU_ALREADY_PARTNER_DIFF 40 -#endif - #if VERSION_PAL s32 popup_menu_update(void); INCLUDE_ASM(s32, "8a860_len_3f30", popup_menu_update); @@ -779,7 +797,7 @@ s32 popup_menu_update(void) { { posX = D_8010D680; posY = D_8010D682; - set_window_properties(WINDOW_ID_19, posX, posY, MENU_USEKEY_DIFF, 32, WINDOW_PRIORITY_20, func_800F48F4, NULL, -1); + set_window_properties(WINDOW_ID_19, posX, posY, WINDOW_KEY_WIDTH, 32, WINDOW_PRIORITY_20, func_800F48F4, NULL, -1); } posX = D_8010D684; @@ -1205,7 +1223,7 @@ s32 popup_menu_update(void) { set_window_properties(WINDOW_ID_BATTLE_POPUP, 160 - (width / 2), posY, width, 40, WINDOW_PRIORITY_20, popup_draw_already_have_partner, NULL, -1); #else width = get_msg_width(MSG_Menus_006B, 0) + 23; - set_window_properties(WINDOW_ID_BATTLE_POPUP, 160 - (width / 2), 80, width, MENU_ALREADY_PARTNER_DIFF, WINDOW_PRIORITY_20, popup_draw_already_have_partner, NULL, -1); + set_window_properties(WINDOW_ID_BATTLE_POPUP, 160 - (width / 2), 80, width, ALREADY_PARTNER_HEIGHT, WINDOW_PRIORITY_20, popup_draw_already_have_partner, NULL, -1); #endif set_window_update(WINDOW_ID_BATTLE_POPUP, WINDOW_UPDATE_SHOW); D_8010D644 = 60; @@ -1372,9 +1390,6 @@ s32 popup_menu_update(void) { } #endif -#if VERSION_JP -INCLUDE_ASM(const s32, "8a860_len_3f30", popup_menu_draw_menu_contents); -#else void popup_menu_draw_menu_contents(s32* userData, s32 baseX, s32 baseY, s32 width, s32 height, s32 opacity, s32 darkening) { s32 x, y; s32 x1, y1; @@ -1434,6 +1449,9 @@ void popup_menu_draw_menu_contents(s32* userData, s32 baseX, s32 baseY, s32 widt y1 = y + PopupMenu_DisplayedEntryCount * LINE_HEIGHT + 4; switch (gPopupMenu->popupType) { case POPUP_MENU_USE_ITEM: +#if VERSION_JP + case POPUP_MENU_THROW_AWAY_ITEM: +#endif case POPUP_MENU_TRADE_FOR_BADGE: case POPUP_MENU_SELL_ITEM: case POPUP_MENU_CHECK_ITEM: @@ -1450,9 +1468,11 @@ void popup_menu_draw_menu_contents(s32* userData, s32 baseX, s32 baseY, s32 widt case POPUP_MENU_UPGRADE_PARTNER: gDPSetScissor(gMainGfxPos++, G_SC_NON_INTERLACE, x, y, x + 90, y1); break; +#if !VERSION_JP case POPUP_MENU_THROW_AWAY_ITEM: gDPSetScissor(gMainGfxPos++, G_SC_NON_INTERLACE, x, y, x + 160, y1); break; +#endif } y = baseY + D_8010D658 + 8; @@ -1460,7 +1480,7 @@ void popup_menu_draw_menu_contents(s32* userData, s32 baseX, s32 baseY, s32 widt y = baseY + D_8010D658 + 21; } id = PopupMenu_EmptybarHEID; - hud_element_set_render_pos(id, baseX + 73, y - 3); + hud_element_set_render_pos(id, baseX + EMPTY_BAR_X, y - 3); hud_element_set_alpha(id, PopupMenu_Alpha); if (PopupMenu_MaxDisplayableEntryCount < gPopupMenu->numEntries) { hud_element_draw_without_clipping(id); @@ -1472,10 +1492,41 @@ void popup_menu_draw_menu_contents(s32* userData, s32 baseX, s32 baseY, s32 widt y = baseY; y1++; } + +#if VERSION_JP + switch (gPopupMenu->popupType) { + case POPUP_MENU_USE_ITEM: + case POPUP_MENU_THROW_AWAY_ITEM: + case POPUP_MENU_CHECK_ITEM: + case POPUP_MENU_CLAIM_ITEM: + case POPUP_MENU_READ_LETTER: + case POPUP_MENU_TAKE_FROM_CHEST: + case POPUP_MENU_READ_DIARY_PAGE: + case POPUP_MENU_READ_POSTCARD: + case POPUP_MENU_USEKEY: + case POPUP_MENU_POST_OFFICE: + gDPSetScissor(gMainGfxPos++, G_SC_NON_INTERLACE, x, y, x + 112, y1); + break; + case POPUP_MENU_SWITCH_PARTNER: + gDPSetScissor(gMainGfxPos++, G_SC_NON_INTERLACE, x, y, x + 98, y1); + break; + case POPUP_MENU_TRADE_FOR_BADGE: + gDPSetScissor(gMainGfxPos++, G_SC_NON_INTERLACE, x, y, x + 144, y1); + break; + case POPUP_MENU_UPGRADE_PARTNER: + gDPSetScissor(gMainGfxPos++, G_SC_NON_INTERLACE, x, y, x + 144, y1); + break; + case POPUP_MENU_SELL_ITEM: + gDPSetScissor(gMainGfxPos++, G_SC_NON_INTERLACE, x, y, x + 140, y1); + break; + } +#else gDPSetScissor(gMainGfxPos++, G_SC_NON_INTERLACE, x, y, x + PopupContentScissorWidths[gPopupMenu->popupType], y1); - offset = 0; +#endif + x = baseX + 32; y = baseY + D_8010D658 + 2; + offset = 0; if (gPopupMenu->popupType == POPUP_MENU_THROW_AWAY_ITEM) { y = baseY + D_8010D658; offset = 2; @@ -1483,7 +1534,7 @@ void popup_menu_draw_menu_contents(s32* userData, s32 baseX, s32 baseY, s32 widt t = 0; for (i = 0; i < gPopupMenu->numEntries; i++, t++) { - if (i < sp28 - 1 || i > sp28 + PopupMenu_DisplayedEntryCount) { + if (sp28 - 1 > i || sp28 + PopupMenu_DisplayedEntryCount < i) { y += LINE_HEIGHT; if (i == 0) { y += offset; @@ -1525,7 +1576,7 @@ void popup_menu_draw_menu_contents(s32* userData, s32 baseX, s32 baseY, s32 widt msgPal = MSG_PAL_STANDARD; } set_message_int_var(gPopupMenu->userIndex[t] + 1, 0); - draw_msg(MSG_Menus_00CD, x + 8, y, PopupMenu_Alpha, msgPal, DRAW_MSG_STYLE_MENU); + draw_msg(MSG_Menus_00CD, x + DIARY_PAGE_X, y, PopupMenu_Alpha, msgPal, DRAW_MSG_STYLE_MENU); break; case POPUP_MENU_READ_POSTCARD: if (gPopupMenu->value[t] != 0) { @@ -1549,9 +1600,9 @@ void popup_menu_draw_menu_contents(s32* userData, s32 baseX, s32 baseY, s32 widt hud_element_set_script(id, D_80109898[j]); } if (gPopupMenu->popupType == POPUP_MENU_SWITCH_PARTNER) { - hud_element_set_render_pos(id, x + 85 + j * 13, y + 10); + hud_element_set_render_pos(id, x + PARTNER_LIST_X1 + j * 13, y + 10); } else { - hud_element_set_render_pos(id, x + 91 + j * 13, y + 10); + hud_element_set_render_pos(id, x + PARTNER_LIST_X2 + j * 13, y + 10); } if (j < gPopupMenu->value[i]) { hud_element_draw_next(id); @@ -1559,10 +1610,10 @@ void popup_menu_draw_menu_contents(s32* userData, s32 baseX, s32 baseY, s32 widt } break; case POPUP_MENU_TRADE_FOR_BADGE: - draw_number(gPopupMenu->value[t], x + 115, y, 1, msgPal, PopupMenu_Alpha, DRAW_NUMBER_STYLE_MONOSPACE_RIGHT); + draw_number(gPopupMenu->value[t], x + BADGE_PRICE_X, y, 1, msgPal, PopupMenu_Alpha, DRAW_NUMBER_STYLE_MONOSPACE_RIGHT); break; case POPUP_MENU_SELL_ITEM: - draw_number(gPopupMenu->value[t], x + 121, y, 1, msgPal, PopupMenu_Alpha, DRAW_NUMBER_STYLE_MONOSPACE_RIGHT); + draw_number(gPopupMenu->value[t], x + ITEM_PRICE_X, y, 1, msgPal, PopupMenu_Alpha, DRAW_NUMBER_STYLE_MONOSPACE_RIGHT); break; } y += LINE_HEIGHT; @@ -1573,10 +1624,10 @@ void popup_menu_draw_menu_contents(s32* userData, s32 baseX, s32 baseY, s32 widt } x = baseX + 24; - y = baseY + D_8010D658 + 8; + y = baseY + D_8010D658 + MENU_OFFSET_Y1; offset = 0; if (gPopupMenu->popupType == POPUP_MENU_THROW_AWAY_ITEM) { - y = baseY + D_8010D658 + 6; + y = baseY + D_8010D658 + MENU_OFFSET_Y2; offset = 2; } @@ -1689,11 +1740,44 @@ void popup_menu_draw_menu_contents(s32* userData, s32 baseX, s32 baseY, s32 widt break; case POPUP_MENU_SWITCH_PARTNER: case POPUP_MENU_UPGRADE_PARTNER: - gDPSetScissor(gMainGfxPos++, G_SC_NON_INTERLACE, x, y, x + 100, y1); + gDPSetScissor(gMainGfxPos++, G_SC_NON_INTERLACE, x, y, x + POPUP_PARTNER_WIDTH, y1); break; } switch (gPopupMenu->popupType) { +#if VERSION_JP + + case POPUP_MENU_TRADE_FOR_BADGE: + offset = 31; + break; + case POPUP_MENU_UPGRADE_PARTNER: + offset = 32; + break; + case POPUP_MENU_SELL_ITEM: + offset = 31; + break; + default: + offset = 31; + break; + case POPUP_MENU_CLAIM_ITEM: + case POPUP_MENU_READ_LETTER: + case POPUP_MENU_TAKE_FROM_CHEST: + offset = 31; + break; + case POPUP_MENU_USEKEY: + offset = 31; + break; + case POPUP_MENU_READ_DIARY_PAGE: + offset = 13; + break; + case POPUP_MENU_READ_POSTCARD: + offset = 21; + break; + case POPUP_MENU_SWITCH_PARTNER: + case POPUP_MENU_POST_OFFICE: + offset = 14; + break; +#else case POPUP_MENU_SWITCH_PARTNER: offset = 35; break; @@ -1725,6 +1809,7 @@ void popup_menu_draw_menu_contents(s32* userData, s32 baseX, s32 baseY, s32 widt case POPUP_MENU_POST_OFFICE: offset = 30; break; +#endif } if (PopupMenu_FirstDisplayIndex > 0) { @@ -1739,13 +1824,13 @@ void popup_menu_draw_menu_contents(s32* userData, s32 baseX, s32 baseY, s32 widt if (PopupMenu_LastDisplayIndex < gPopupMenu->numEntries) { id = PopupMenu_DownArrowHEID; x = baseX + offset; - y = baseY + PopupMenu_MaxDisplayableEntryCount * LINE_HEIGHT; + y = baseY; + y += PopupMenu_MaxDisplayableEntryCount * LINE_HEIGHT; hud_element_set_render_pos(id, x + 35, y + 5); hud_element_set_alpha(id, PopupMenu_Alpha); hud_element_draw_without_clipping(id); } } -#endif #if VERSION_PAL void popup_menu_draw_title_contents(s32* userData, s32 baseX, s32 baseY, s32 width, s32 height, s32 opacity, s32 darkening) { diff --git a/ver/jp/asm/nonmatchings/8a860_len_3f30/popup_menu_draw_menu_contents.s b/ver/jp/asm/nonmatchings/8a860_len_3f30/popup_menu_draw_menu_contents.s deleted file mode 100644 index 499ff791661..00000000000 --- a/ver/jp/asm/nonmatchings/8a860_len_3f30/popup_menu_draw_menu_contents.s +++ /dev/null @@ -1,1269 +0,0 @@ -.set noat /* allow manual use of $at */ -.set noreorder /* don't insert nops after branches */ - -.section .rodata -.align 3 -dlabel jtbl_JP_8010C918 -/* A5DC8 8010C918 800F3848 */ .word .LJP_800F3848 -/* A5DCC 8010C91C 800F3898 */ .word .LJP_800F3898 -/* A5DD0 8010C920 800F3848 */ .word .LJP_800F3848 -/* A5DD4 8010C924 800F3848 */ .word .LJP_800F3848 -/* A5DD8 8010C928 800F3898 */ .word .LJP_800F3898 -/* A5DDC 8010C92C 800F3848 */ .word .LJP_800F3848 -/* A5DE0 8010C930 800F3848 */ .word .LJP_800F3848 -/* A5DE4 8010C934 800F3848 */ .word .LJP_800F3848 -/* A5DE8 8010C938 800F3848 */ .word .LJP_800F3848 -/* A5DEC 8010C93C 800F3848 */ .word .LJP_800F3848 -/* A5DF0 8010C940 800F3848 */ .word .LJP_800F3848 -/* A5DF4 8010C944 800F3848 */ .word .LJP_800F3848 -/* A5DF8 8010C948 800F3848 */ .word .LJP_800F3848 -/* A5DFC 8010C94C 800F3848 */ .word .LJP_800F3848 -.size jtbl_JP_8010C918, . - jtbl_JP_8010C918 - -.align 3 -dlabel jtbl_JP_8010C950 -/* A5E00 8010C950 800F3A6C */ .word .LJP_800F3A6C -/* A5E04 8010C954 800F3ABC */ .word .LJP_800F3ABC -/* A5E08 8010C958 800F3A6C */ .word .LJP_800F3A6C -/* A5E0C 8010C95C 800F3B0C */ .word .LJP_800F3B0C -/* A5E10 8010C960 800F3B5C */ .word .LJP_800F3B5C -/* A5E14 8010C964 800F3BAC */ .word .LJP_800F3BAC -/* A5E18 8010C968 800F3A6C */ .word .LJP_800F3A6C -/* A5E1C 8010C96C 800F3A6C */ .word .LJP_800F3A6C -/* A5E20 8010C970 800F3A6C */ .word .LJP_800F3A6C -/* A5E24 8010C974 800F3A6C */ .word .LJP_800F3A6C -/* A5E28 8010C978 800F3A6C */ .word .LJP_800F3A6C -/* A5E2C 8010C97C 800F3A6C */ .word .LJP_800F3A6C -/* A5E30 8010C980 800F3A6C */ .word .LJP_800F3A6C -/* A5E34 8010C984 800F3A6C */ .word .LJP_800F3A6C -.size jtbl_JP_8010C950, . - jtbl_JP_8010C950 - -.align 3 -dlabel jtbl_JP_8010C988 -/* A5E38 8010C988 800F3D54 */ .word .LJP_800F3D54 -/* A5E3C 8010C98C 800F3D88 */ .word .LJP_800F3D88 -/* A5E40 8010C990 800F3D54 */ .word .LJP_800F3D54 -/* A5E44 8010C994 800F3D54 */ .word .LJP_800F3D54 -/* A5E48 8010C998 800F3D88 */ .word .LJP_800F3D88 -/* A5E4C 8010C99C 800F3D54 */ .word .LJP_800F3D54 -/* A5E50 8010C9A0 800F3D54 */ .word .LJP_800F3D54 -/* A5E54 8010C9A4 800F3D54 */ .word .LJP_800F3D54 -/* A5E58 8010C9A8 800F3DBC */ .word .LJP_800F3DBC -/* A5E5C 8010C9AC 800F3D54 */ .word .LJP_800F3D54 -/* A5E60 8010C9B0 800F3E00 */ .word .LJP_800F3E00 -/* A5E64 8010C9B4 800F3E4C */ .word .LJP_800F3E4C -/* A5E68 8010C9B8 800F3D54 */ .word .LJP_800F3D54 -/* A5E6C 8010C9BC 800F3D54 */ .word .LJP_800F3D54 -.size jtbl_JP_8010C988, . - jtbl_JP_8010C988 - -.align 3 -dlabel jtbl_JP_8010C9C0 -/* A5E70 8010C9C0 800F40B4 */ .word .LJP_800F40B4 -/* A5E74 8010C9C4 800F40B4 */ .word .LJP_800F40B4 -/* A5E78 8010C9C8 800F40B4 */ .word .LJP_800F40B4 -/* A5E7C 8010C9CC 800F40B4 */ .word .LJP_800F40B4 -/* A5E80 8010C9D0 800F40B4 */ .word .LJP_800F40B4 -/* A5E84 8010C9D4 800F40B4 */ .word .LJP_800F40B4 -/* A5E88 8010C9D8 800F40B4 */ .word .LJP_800F40B4 -/* A5E8C 8010C9DC 800F40B4 */ .word .LJP_800F40B4 -/* A5E90 8010C9E0 800F40B4 */ .word .LJP_800F40B4 -/* A5E94 8010C9E4 800F40B4 */ .word .LJP_800F40B4 -/* A5E98 8010C9E8 800F419C */ .word .LJP_800F419C -/* A5E9C 8010C9EC 800F4284 */ .word .LJP_800F4284 -/* A5EA0 8010C9F0 800F40B4 */ .word .LJP_800F40B4 -/* A5EA4 8010C9F4 800F40B4 */ .word .LJP_800F40B4 -.size jtbl_JP_8010C9C0, . - jtbl_JP_8010C9C0 - -.align 3 -dlabel jtbl_JP_8010C9F8 -/* A5EA8 8010C9F8 800F444C */ .word .LJP_800F444C -/* A5EAC 8010C9FC 800F449C */ .word .LJP_800F449C -/* A5EB0 8010CA00 800F444C */ .word .LJP_800F444C -/* A5EB4 8010CA04 800F444C */ .word .LJP_800F444C -/* A5EB8 8010CA08 800F449C */ .word .LJP_800F449C -/* A5EBC 8010CA0C 800F444C */ .word .LJP_800F444C -/* A5EC0 8010CA10 800F444C */ .word .LJP_800F444C -/* A5EC4 8010CA14 800F444C */ .word .LJP_800F444C -/* A5EC8 8010CA18 800F444C */ .word .LJP_800F444C -/* A5ECC 8010CA1C 800F444C */ .word .LJP_800F444C -/* A5ED0 8010CA20 800F444C */ .word .LJP_800F444C -/* A5ED4 8010CA24 800F444C */ .word .LJP_800F444C -/* A5ED8 8010CA28 800F444C */ .word .LJP_800F444C -/* A5EDC 8010CA2C 800F444C */ .word .LJP_800F444C -.size jtbl_JP_8010C9F8, . - jtbl_JP_8010C9F8 - -.align 3 -dlabel jtbl_JP_8010CA30 -/* A5EE0 8010CA30 800F45E4 */ .word .LJP_800F45E4 -/* A5EE4 8010CA34 800F45C4 */ .word .LJP_800F45C4 -/* A5EE8 8010CA38 800F45A0 */ .word .LJP_800F45A0 -/* A5EEC 8010CA3C 800F45A8 */ .word .LJP_800F45A8 -/* A5EF0 8010CA40 800F45B4 */ .word .LJP_800F45B4 -/* A5EF4 8010CA44 800F45C4 */ .word .LJP_800F45C4 -/* A5EF8 8010CA48 800F45BC */ .word .LJP_800F45BC -/* A5EFC 8010CA4C 800F45BC */ .word .LJP_800F45BC -/* A5F00 8010CA50 800F45BC */ .word .LJP_800F45BC -/* A5F04 8010CA54 800F45D0 */ .word .LJP_800F45D0 -/* A5F08 8010CA58 800F45D8 */ .word .LJP_800F45D8 -/* A5F0C 8010CA5C 800F45C4 */ .word .LJP_800F45C4 -/* A5F10 8010CA60 800F45E4 */ .word .LJP_800F45E4 -/* A5F14 8010CA64 00000000 */ .word 0x00000000 -.size jtbl_JP_8010CA30, . - jtbl_JP_8010CA30 - - -.section .text -/* Generated by spimdisasm 1.19.0 */ - -glabel popup_menu_draw_menu_contents -/* 8CB00 800F3650 27BDFFA8 */ addiu $sp, $sp, -0x58 -/* 8CB04 800F3654 3C038011 */ lui $v1, %hi(gPopupState) -/* 8CB08 800F3658 8C63D800 */ lw $v1, %lo(gPopupState)($v1) -/* 8CB0C 800F365C 2402000A */ addiu $v0, $zero, 0xA -/* 8CB10 800F3660 AFBF0054 */ sw $ra, 0x54($sp) -/* 8CB14 800F3664 AFBE0050 */ sw $fp, 0x50($sp) -/* 8CB18 800F3668 AFB7004C */ sw $s7, 0x4C($sp) -/* 8CB1C 800F366C AFB60048 */ sw $s6, 0x48($sp) -/* 8CB20 800F3670 AFB50044 */ sw $s5, 0x44($sp) -/* 8CB24 800F3674 AFB40040 */ sw $s4, 0x40($sp) -/* 8CB28 800F3678 AFB3003C */ sw $s3, 0x3C($sp) -/* 8CB2C 800F367C AFB20038 */ sw $s2, 0x38($sp) -/* 8CB30 800F3680 AFB10034 */ sw $s1, 0x34($sp) -/* 8CB34 800F3684 AFB00030 */ sw $s0, 0x30($sp) -/* 8CB38 800F3688 AFA5005C */ sw $a1, 0x5C($sp) -/* 8CB3C 800F368C 1062001E */ beq $v1, $v0, .LJP_800F3708 -/* 8CB40 800F3690 AFA60060 */ sw $a2, 0x60($sp) -/* 8CB44 800F3694 2862000B */ slti $v0, $v1, 0xB -/* 8CB48 800F3698 1040000E */ beqz $v0, .LJP_800F36D4 -/* 8CB4C 800F369C 28620020 */ slti $v0, $v1, 0x20 -/* 8CB50 800F36A0 04610008 */ bgez $v1, .LJP_800F36C4 -/* 8CB54 800F36A4 24020001 */ addiu $v0, $zero, 0x1 -/* 8CB58 800F36A8 2862FFFE */ slti $v0, $v1, -0x2 -/* 8CB5C 800F36AC 10400016 */ beqz $v0, .LJP_800F3708 -/* 8CB60 800F36B0 2862FFFB */ slti $v0, $v1, -0x5 -/* 8CB64 800F36B4 10400402 */ beqz $v0, .LJP_800F46C0 -/* 8CB68 800F36B8 2862FFF8 */ slti $v0, $v1, -0x8 -/* 8CB6C 800F36BC 0803CDC0 */ j .LJP_800F3700 -/* 8CB70 800F36C0 00000000 */ nop -.LJP_800F36C4: -/* 8CB74 800F36C4 10620010 */ beq $v1, $v0, .LJP_800F3708 -/* 8CB78 800F36C8 00000000 */ nop -/* 8CB7C 800F36CC 0803D1B0 */ j .LJP_800F46C0 -/* 8CB80 800F36D0 00000000 */ nop -.LJP_800F36D4: -/* 8CB84 800F36D4 10400007 */ beqz $v0, .LJP_800F36F4 -/* 8CB88 800F36D8 2862001E */ slti $v0, $v1, 0x1E -/* 8CB8C 800F36DC 1040000A */ beqz $v0, .LJP_800F3708 -/* 8CB90 800F36E0 24020014 */ addiu $v0, $zero, 0x14 -/* 8CB94 800F36E4 10620008 */ beq $v1, $v0, .LJP_800F3708 -/* 8CB98 800F36E8 00000000 */ nop -/* 8CB9C 800F36EC 0803D1B0 */ j .LJP_800F46C0 -/* 8CBA0 800F36F0 00000000 */ nop -.LJP_800F36F4: -/* 8CBA4 800F36F4 2862006A */ slti $v0, $v1, 0x6A -/* 8CBA8 800F36F8 104003F1 */ beqz $v0, .LJP_800F46C0 -/* 8CBAC 800F36FC 28620064 */ slti $v0, $v1, 0x64 -.LJP_800F3700: -/* 8CBB0 800F3700 144003EF */ bnez $v0, .LJP_800F46C0 -/* 8CBB4 800F3704 00000000 */ nop -.LJP_800F3708: -/* 8CBB8 800F3708 8FA8005C */ lw $t0, 0x5C($sp) -/* 8CBBC 800F370C 8FA90060 */ lw $t1, 0x60($sp) -/* 8CBC0 800F3710 3C028011 */ lui $v0, %hi(PopupMenu_FirstDisplayIndex) -/* 8CBC4 800F3714 8042D814 */ lb $v0, %lo(PopupMenu_FirstDisplayIndex)($v0) -/* 8CBC8 800F3718 3C068011 */ lui $a2, %hi(D_8010D658) -/* 8CBCC 800F371C 84C6D818 */ lh $a2, %lo(D_8010D658)($a2) -/* 8CBD0 800F3720 25080002 */ addiu $t0, $t0, 0x2 -/* 8CBD4 800F3724 2529000F */ addiu $t1, $t1, 0xF -/* 8CBD8 800F3728 00021023 */ negu $v0, $v0 -/* 8CBDC 800F372C 00021840 */ sll $v1, $v0, 1 -/* 8CBE0 800F3730 00621821 */ addu $v1, $v1, $v0 -/* 8CBE4 800F3734 00031880 */ sll $v1, $v1, 2 -/* 8CBE8 800F3738 00628821 */ addu $s1, $v1, $v0 -/* 8CBEC 800F373C 02262023 */ subu $a0, $s1, $a2 -/* 8CBF0 800F3740 28820082 */ slti $v0, $a0, 0x82 -/* 8CBF4 800F3744 AFA8005C */ sw $t0, 0x5C($sp) -/* 8CBF8 800F3748 1040000D */ beqz $v0, .LJP_800F3780 -/* 8CBFC 800F374C AFA90060 */ sw $t1, 0x60($sp) -/* 8CC00 800F3750 3C013FE0 */ lui $at, (0x3FE00000 >> 16) -/* 8CC04 800F3754 44811800 */ mtc1 $at, $f3 -/* 8CC08 800F3758 44801000 */ mtc1 $zero, $f2 -/* 8CC0C 800F375C 44840000 */ mtc1 $a0, $f0 -/* 8CC10 800F3760 00000000 */ nop -/* 8CC14 800F3764 46800021 */ cvt.d.w $f0, $f0 -/* 8CC18 800F3768 46220002 */ mul.d $f0, $f0, $f2 -/* 8CC1C 800F376C 00000000 */ nop -/* 8CC20 800F3770 4620018D */ trunc.w.d $f6, $f0 -/* 8CC24 800F3774 44043000 */ mfc1 $a0, $f6 -/* 8CC28 800F3778 0803CDEC */ j .LJP_800F37B0 -/* 8CC2C 800F377C 00000000 */ nop -.LJP_800F3780: -/* 8CC30 800F3780 3C031B4E */ lui $v1, (0x1B4E81B5 >> 16) -/* 8CC34 800F3784 346381B5 */ ori $v1, $v1, (0x1B4E81B5 & 0xFFFF) -/* 8CC38 800F3788 00041040 */ sll $v0, $a0, 1 -/* 8CC3C 800F378C 00441021 */ addu $v0, $v0, $a0 -/* 8CC40 800F3790 000210C0 */ sll $v0, $v0, 3 -/* 8CC44 800F3794 00441021 */ addu $v0, $v0, $a0 -/* 8CC48 800F3798 00021080 */ sll $v0, $v0, 2 -/* 8CC4C 800F379C 00430018 */ mult $v0, $v1 -/* 8CC50 800F37A0 000217C3 */ sra $v0, $v0, 31 -/* 8CC54 800F37A4 00004010 */ mfhi $t0 -/* 8CC58 800F37A8 00081903 */ sra $v1, $t0, 4 -/* 8CC5C 800F37AC 00622023 */ subu $a0, $v1, $v0 -.LJP_800F37B0: -/* 8CC60 800F37B0 14800002 */ bnez $a0, .LJP_800F37BC -/* 8CC64 800F37B4 00C43021 */ addu $a2, $a2, $a0 -/* 8CC68 800F37B8 0220302D */ daddu $a2, $s1, $zero -.LJP_800F37BC: -/* 8CC6C 800F37BC 3C054EC4 */ lui $a1, (0x4EC4EC4F >> 16) -/* 8CC70 800F37C0 34A5EC4F */ ori $a1, $a1, (0x4EC4EC4F & 0xFFFF) -/* 8CC74 800F37C4 00061C00 */ sll $v1, $a2, 16 -/* 8CC78 800F37C8 00031C03 */ sra $v1, $v1, 16 -/* 8CC7C 800F37CC 8FA9005C */ lw $t1, 0x5C($sp) -/* 8CC80 800F37D0 8FB10060 */ lw $s1, 0x60($sp) -/* 8CC84 800F37D4 3C048011 */ lui $a0, %hi(PopupMenu_DisplayedEntryCount) -/* 8CC88 800F37D8 8084D816 */ lb $a0, %lo(PopupMenu_DisplayedEntryCount)($a0) -/* 8CC8C 800F37DC 00031823 */ negu $v1, $v1 -/* 8CC90 800F37E0 3C018011 */ lui $at, %hi(D_8010D658) -/* 8CC94 800F37E4 A426D818 */ sh $a2, %lo(D_8010D658)($at) -/* 8CC98 800F37E8 00041040 */ sll $v0, $a0, 1 -/* 8CC9C 800F37EC 00441021 */ addu $v0, $v0, $a0 -/* 8CCA0 800F37F0 00021080 */ sll $v0, $v0, 2 -/* 8CCA4 800F37F4 00441021 */ addu $v0, $v0, $a0 -/* 8CCA8 800F37F8 02221021 */ addu $v0, $s1, $v0 -/* 8CCAC 800F37FC 24460004 */ addiu $a2, $v0, 0x4 -/* 8CCB0 800F3800 3C028011 */ lui $v0, %hi(gPopupMenu) -/* 8CCB4 800F3804 8C42D85C */ lw $v0, %lo(gPopupMenu)($v0) -/* 8CCB8 800F3808 00650018 */ mult $v1, $a1 -/* 8CCBC 800F380C AFA90020 */ sw $t1, 0x20($sp) -/* 8CCC0 800F3810 8C450318 */ lw $a1, 0x318($v0) -/* 8CCC4 800F3814 00031FC3 */ sra $v1, $v1, 31 -/* 8CCC8 800F3818 2CA2000E */ sltiu $v0, $a1, 0xE -/* 8CCCC 800F381C 00004010 */ mfhi $t0 -/* 8CCD0 800F3820 00082083 */ sra $a0, $t0, 2 -/* 8CCD4 800F3824 00832023 */ subu $a0, $a0, $v1 -/* 8CCD8 800F3828 10400050 */ beqz $v0, .LJP_800F396C -/* 8CCDC 800F382C AFA40028 */ sw $a0, 0x28($sp) -/* 8CCE0 800F3830 00051080 */ sll $v0, $a1, 2 -/* 8CCE4 800F3834 3C018011 */ lui $at, %hi(jtbl_JP_8010C918) -/* 8CCE8 800F3838 00220821 */ addu $at, $at, $v0 -/* 8CCEC 800F383C 8C22C918 */ lw $v0, %lo(jtbl_JP_8010C918)($at) -/* 8CCF0 800F3840 00400008 */ jr $v0 -/* 8CCF4 800F3844 00000000 */ nop -.LJP_800F3848: -/* 8CCF8 800F3848 3C03800A */ lui $v1, %hi(gMainGfxPos) -/* 8CCFC 800F384C 2463A64C */ addiu $v1, $v1, %lo(gMainGfxPos) -/* 8CD00 800F3850 C7A20020 */ lwc1 $f2, 0x20($sp) -/* 8CD04 800F3854 468010A0 */ cvt.s.w $f2, $f2 -/* 8CD08 800F3858 44910000 */ mtc1 $s1, $f0 -/* 8CD0C 800F385C 00000000 */ nop -/* 8CD10 800F3860 46800020 */ cvt.s.w $f0, $f0 -/* 8CD14 800F3864 3C014080 */ lui $at, (0x40800000 >> 16) -/* 8CD18 800F3868 44812000 */ mtc1 $at, $f4 -/* 8CD1C 800F386C 8C620000 */ lw $v0, 0x0($v1) -/* 8CD20 800F3870 46041082 */ mul.s $f2, $f2, $f4 -/* 8CD24 800F3874 00000000 */ nop -/* 8CD28 800F3878 0040282D */ daddu $a1, $v0, $zero -/* 8CD2C 800F387C 24420008 */ addiu $v0, $v0, 0x8 -/* 8CD30 800F3880 AC620000 */ sw $v0, 0x0($v1) -/* 8CD34 800F3884 8FA90020 */ lw $t1, 0x20($sp) -/* 8CD38 800F3888 46040002 */ mul.s $f0, $f0, $f4 -/* 8CD3C 800F388C 00000000 */ nop -/* 8CD40 800F3890 0803CE39 */ j .LJP_800F38E4 -/* 8CD44 800F3894 25220070 */ addiu $v0, $t1, 0x70 -.LJP_800F3898: -/* 8CD48 800F3898 3C03800A */ lui $v1, %hi(gMainGfxPos) -/* 8CD4C 800F389C 2463A64C */ addiu $v1, $v1, %lo(gMainGfxPos) -/* 8CD50 800F38A0 C7A20020 */ lwc1 $f2, 0x20($sp) -/* 8CD54 800F38A4 468010A0 */ cvt.s.w $f2, $f2 -/* 8CD58 800F38A8 44910000 */ mtc1 $s1, $f0 -/* 8CD5C 800F38AC 00000000 */ nop -/* 8CD60 800F38B0 46800020 */ cvt.s.w $f0, $f0 -/* 8CD64 800F38B4 3C014080 */ lui $at, (0x40800000 >> 16) -/* 8CD68 800F38B8 44812000 */ mtc1 $at, $f4 -/* 8CD6C 800F38BC 8C620000 */ lw $v0, 0x0($v1) -/* 8CD70 800F38C0 46041082 */ mul.s $f2, $f2, $f4 -/* 8CD74 800F38C4 00000000 */ nop -/* 8CD78 800F38C8 0040282D */ daddu $a1, $v0, $zero -/* 8CD7C 800F38CC 24420008 */ addiu $v0, $v0, 0x8 -/* 8CD80 800F38D0 AC620000 */ sw $v0, 0x0($v1) -/* 8CD84 800F38D4 8FA90020 */ lw $t1, 0x20($sp) -/* 8CD88 800F38D8 46040002 */ mul.s $f0, $f0, $f4 -/* 8CD8C 800F38DC 00000000 */ nop -/* 8CD90 800F38E0 2522005A */ addiu $v0, $t1, 0x5A -.LJP_800F38E4: -/* 8CD94 800F38E4 4600118D */ trunc.w.s $f6, $f2 -/* 8CD98 800F38E8 44033000 */ mfc1 $v1, $f6 -/* 8CD9C 800F38EC 00000000 */ nop -/* 8CDA0 800F38F0 30630FFF */ andi $v1, $v1, 0xFFF -/* 8CDA4 800F38F4 00031B00 */ sll $v1, $v1, 12 -/* 8CDA8 800F38F8 4600018D */ trunc.w.s $f6, $f0 -/* 8CDAC 800F38FC 44043000 */ mfc1 $a0, $f6 -/* 8CDB0 800F3900 00000000 */ nop -/* 8CDB4 800F3904 30840FFF */ andi $a0, $a0, 0xFFF -/* 8CDB8 800F3908 44821000 */ mtc1 $v0, $f2 -/* 8CDBC 800F390C 00000000 */ nop -/* 8CDC0 800F3910 468010A0 */ cvt.s.w $f2, $f2 -/* 8CDC4 800F3914 46041082 */ mul.s $f2, $f2, $f4 -/* 8CDC8 800F3918 00000000 */ nop -/* 8CDCC 800F391C 3C02ED00 */ lui $v0, (0xED000000 >> 16) -/* 8CDD0 800F3920 00822025 */ or $a0, $a0, $v0 -/* 8CDD4 800F3924 00641825 */ or $v1, $v1, $a0 -/* 8CDD8 800F3928 44860000 */ mtc1 $a2, $f0 -/* 8CDDC 800F392C 00000000 */ nop -/* 8CDE0 800F3930 46800020 */ cvt.s.w $f0, $f0 -/* 8CDE4 800F3934 46040002 */ mul.s $f0, $f0, $f4 -/* 8CDE8 800F3938 00000000 */ nop -/* 8CDEC 800F393C ACA30000 */ sw $v1, 0x0($a1) -/* 8CDF0 800F3940 4600118D */ trunc.w.s $f6, $f2 -/* 8CDF4 800F3944 44023000 */ mfc1 $v0, $f6 -/* 8CDF8 800F3948 00000000 */ nop -/* 8CDFC 800F394C 30420FFF */ andi $v0, $v0, 0xFFF -/* 8CE00 800F3950 00021300 */ sll $v0, $v0, 12 -/* 8CE04 800F3954 4600018D */ trunc.w.s $f6, $f0 -/* 8CE08 800F3958 44033000 */ mfc1 $v1, $f6 -/* 8CE0C 800F395C 00000000 */ nop -/* 8CE10 800F3960 30630FFF */ andi $v1, $v1, 0xFFF -/* 8CE14 800F3964 00431025 */ or $v0, $v0, $v1 -/* 8CE18 800F3968 ACA20004 */ sw $v0, 0x4($a1) -.LJP_800F396C: -/* 8CE1C 800F396C 3C028011 */ lui $v0, %hi(D_8010D658) -/* 8CE20 800F3970 8442D818 */ lh $v0, %lo(D_8010D658)($v0) -/* 8CE24 800F3974 8FA90060 */ lw $t1, 0x60($sp) -/* 8CE28 800F3978 3C128011 */ lui $s2, %hi(gPopupMenu) -/* 8CE2C 800F397C 2652D85C */ addiu $s2, $s2, %lo(gPopupMenu) -/* 8CE30 800F3980 01221821 */ addu $v1, $t1, $v0 -/* 8CE34 800F3984 8E420000 */ lw $v0, 0x0($s2) -/* 8CE38 800F3988 24130002 */ addiu $s3, $zero, 0x2 -/* 8CE3C 800F398C 8C420318 */ lw $v0, 0x318($v0) -/* 8CE40 800F3990 14530002 */ bne $v0, $s3, .LJP_800F399C -/* 8CE44 800F3994 24710008 */ addiu $s1, $v1, 0x8 -/* 8CE48 800F3998 24710015 */ addiu $s1, $v1, 0x15 -.LJP_800F399C: -/* 8CE4C 800F399C 2626FFFD */ addiu $a2, $s1, -0x3 -/* 8CE50 800F39A0 8FA8005C */ lw $t0, 0x5C($sp) -/* 8CE54 800F39A4 3C108011 */ lui $s0, %hi(PopupMenu_EmptybarHEID) -/* 8CE58 800F39A8 8E10D81C */ lw $s0, %lo(PopupMenu_EmptybarHEID)($s0) -/* 8CE5C 800F39AC 25050043 */ addiu $a1, $t0, 0x43 -/* 8CE60 800F39B0 0C05268D */ jal hud_element_set_render_pos -/* 8CE64 800F39B4 0200202D */ daddu $a0, $s0, $zero -/* 8CE68 800F39B8 3C058011 */ lui $a1, %hi(PopupMenu_Alpha) -/* 8CE6C 800F39BC 8CA5D810 */ lw $a1, %lo(PopupMenu_Alpha)($a1) -/* 8CE70 800F39C0 0C0527D8 */ jal hud_element_set_alpha -/* 8CE74 800F39C4 0200202D */ daddu $a0, $s0, $zero -/* 8CE78 800F39C8 8E420000 */ lw $v0, 0x0($s2) -/* 8CE7C 800F39CC 3C038011 */ lui $v1, %hi(PopupMenu_MaxDisplayableEntryCount) -/* 8CE80 800F39D0 8063D84F */ lb $v1, %lo(PopupMenu_MaxDisplayableEntryCount)($v1) -/* 8CE84 800F39D4 8C420324 */ lw $v0, 0x324($v0) -/* 8CE88 800F39D8 0062182A */ slt $v1, $v1, $v0 -/* 8CE8C 800F39DC 10600003 */ beqz $v1, .LJP_800F39EC -/* 8CE90 800F39E0 00000000 */ nop -/* 8CE94 800F39E4 0C052624 */ jal hud_element_draw_without_clipping -/* 8CE98 800F39E8 0200202D */ daddu $a0, $s0, $zero -.LJP_800F39EC: -/* 8CE9C 800F39EC 8FA9005C */ lw $t1, 0x5C($sp) -/* 8CEA0 800F39F0 8FA80060 */ lw $t0, 0x60($sp) -/* 8CEA4 800F39F4 3C038011 */ lui $v1, %hi(PopupMenu_DisplayedEntryCount) -/* 8CEA8 800F39F8 8063D816 */ lb $v1, %lo(PopupMenu_DisplayedEntryCount)($v1) -/* 8CEAC 800F39FC 25110002 */ addiu $s1, $t0, 0x2 -/* 8CEB0 800F3A00 00031040 */ sll $v0, $v1, 1 -/* 8CEB4 800F3A04 00431021 */ addu $v0, $v0, $v1 -/* 8CEB8 800F3A08 00021080 */ sll $v0, $v0, 2 -/* 8CEBC 800F3A0C AFA90020 */ sw $t1, 0x20($sp) -/* 8CEC0 800F3A10 8E440000 */ lw $a0, 0x0($s2) -/* 8CEC4 800F3A14 00431021 */ addu $v0, $v0, $v1 -/* 8CEC8 800F3A18 8C830318 */ lw $v1, 0x318($a0) -/* 8CECC 800F3A1C 14730008 */ bne $v1, $s3, .LJP_800F3A40 -/* 8CED0 800F3A20 02223021 */ addu $a2, $s1, $v0 -/* 8CED4 800F3A24 3C028011 */ lui $v0, %hi(PopupMenu_FirstDisplayIndex) -/* 8CED8 800F3A28 8042D814 */ lb $v0, %lo(PopupMenu_FirstDisplayIndex)($v0) -/* 8CEDC 800F3A2C 28420002 */ slti $v0, $v0, 0x2 -/* 8CEE0 800F3A30 10400003 */ beqz $v0, .LJP_800F3A40 -/* 8CEE4 800F3A34 00000000 */ nop -/* 8CEE8 800F3A38 0100882D */ daddu $s1, $t0, $zero -/* 8CEEC 800F3A3C 24C60001 */ addiu $a2, $a2, 0x1 -.LJP_800F3A40: -/* 8CEF0 800F3A40 3C028011 */ lui $v0, %hi(gPopupMenu) -/* 8CEF4 800F3A44 8C42D85C */ lw $v0, %lo(gPopupMenu)($v0) -/* 8CEF8 800F3A48 8C430318 */ lw $v1, 0x318($v0) -/* 8CEFC 800F3A4C 2C62000E */ sltiu $v0, $v1, 0xE -/* 8CF00 800F3A50 1040008B */ beqz $v0, .LJP_800F3C80 -/* 8CF04 800F3A54 00031080 */ sll $v0, $v1, 2 -/* 8CF08 800F3A58 3C018011 */ lui $at, %hi(jtbl_JP_8010C950) -/* 8CF0C 800F3A5C 00220821 */ addu $at, $at, $v0 -/* 8CF10 800F3A60 8C22C950 */ lw $v0, %lo(jtbl_JP_8010C950)($at) -/* 8CF14 800F3A64 00400008 */ jr $v0 -/* 8CF18 800F3A68 00000000 */ nop -.LJP_800F3A6C: -/* 8CF1C 800F3A6C 3C03800A */ lui $v1, %hi(gMainGfxPos) -/* 8CF20 800F3A70 2463A64C */ addiu $v1, $v1, %lo(gMainGfxPos) -/* 8CF24 800F3A74 C7A20020 */ lwc1 $f2, 0x20($sp) -/* 8CF28 800F3A78 468010A0 */ cvt.s.w $f2, $f2 -/* 8CF2C 800F3A7C 44910000 */ mtc1 $s1, $f0 -/* 8CF30 800F3A80 00000000 */ nop -/* 8CF34 800F3A84 46800020 */ cvt.s.w $f0, $f0 -/* 8CF38 800F3A88 3C014080 */ lui $at, (0x40800000 >> 16) -/* 8CF3C 800F3A8C 44812000 */ mtc1 $at, $f4 -/* 8CF40 800F3A90 8C620000 */ lw $v0, 0x0($v1) -/* 8CF44 800F3A94 46041082 */ mul.s $f2, $f2, $f4 -/* 8CF48 800F3A98 00000000 */ nop -/* 8CF4C 800F3A9C 0040282D */ daddu $a1, $v0, $zero -/* 8CF50 800F3AA0 24420008 */ addiu $v0, $v0, 0x8 -/* 8CF54 800F3AA4 AC620000 */ sw $v0, 0x0($v1) -/* 8CF58 800F3AA8 8FA90020 */ lw $t1, 0x20($sp) -/* 8CF5C 800F3AAC 46040002 */ mul.s $f0, $f0, $f4 -/* 8CF60 800F3AB0 00000000 */ nop -/* 8CF64 800F3AB4 0803CEFE */ j .LJP_800F3BF8 -/* 8CF68 800F3AB8 25220070 */ addiu $v0, $t1, 0x70 -.LJP_800F3ABC: -/* 8CF6C 800F3ABC 3C03800A */ lui $v1, %hi(gMainGfxPos) -/* 8CF70 800F3AC0 2463A64C */ addiu $v1, $v1, %lo(gMainGfxPos) -/* 8CF74 800F3AC4 C7A20020 */ lwc1 $f2, 0x20($sp) -/* 8CF78 800F3AC8 468010A0 */ cvt.s.w $f2, $f2 -/* 8CF7C 800F3ACC 44910000 */ mtc1 $s1, $f0 -/* 8CF80 800F3AD0 00000000 */ nop -/* 8CF84 800F3AD4 46800020 */ cvt.s.w $f0, $f0 -/* 8CF88 800F3AD8 3C014080 */ lui $at, (0x40800000 >> 16) -/* 8CF8C 800F3ADC 44812000 */ mtc1 $at, $f4 -/* 8CF90 800F3AE0 8C620000 */ lw $v0, 0x0($v1) -/* 8CF94 800F3AE4 46041082 */ mul.s $f2, $f2, $f4 -/* 8CF98 800F3AE8 00000000 */ nop -/* 8CF9C 800F3AEC 0040282D */ daddu $a1, $v0, $zero -/* 8CFA0 800F3AF0 24420008 */ addiu $v0, $v0, 0x8 -/* 8CFA4 800F3AF4 AC620000 */ sw $v0, 0x0($v1) -/* 8CFA8 800F3AF8 8FA90020 */ lw $t1, 0x20($sp) -/* 8CFAC 800F3AFC 46040002 */ mul.s $f0, $f0, $f4 -/* 8CFB0 800F3B00 00000000 */ nop -/* 8CFB4 800F3B04 0803CEFE */ j .LJP_800F3BF8 -/* 8CFB8 800F3B08 25220062 */ addiu $v0, $t1, 0x62 -.LJP_800F3B0C: -/* 8CFBC 800F3B0C 3C03800A */ lui $v1, %hi(gMainGfxPos) -/* 8CFC0 800F3B10 2463A64C */ addiu $v1, $v1, %lo(gMainGfxPos) -/* 8CFC4 800F3B14 C7A20020 */ lwc1 $f2, 0x20($sp) -/* 8CFC8 800F3B18 468010A0 */ cvt.s.w $f2, $f2 -/* 8CFCC 800F3B1C 44910000 */ mtc1 $s1, $f0 -/* 8CFD0 800F3B20 00000000 */ nop -/* 8CFD4 800F3B24 46800020 */ cvt.s.w $f0, $f0 -/* 8CFD8 800F3B28 3C014080 */ lui $at, (0x40800000 >> 16) -/* 8CFDC 800F3B2C 44812000 */ mtc1 $at, $f4 -/* 8CFE0 800F3B30 8C620000 */ lw $v0, 0x0($v1) -/* 8CFE4 800F3B34 46041082 */ mul.s $f2, $f2, $f4 -/* 8CFE8 800F3B38 00000000 */ nop -/* 8CFEC 800F3B3C 0040282D */ daddu $a1, $v0, $zero -/* 8CFF0 800F3B40 24420008 */ addiu $v0, $v0, 0x8 -/* 8CFF4 800F3B44 AC620000 */ sw $v0, 0x0($v1) -/* 8CFF8 800F3B48 8FA90020 */ lw $t1, 0x20($sp) -/* 8CFFC 800F3B4C 46040002 */ mul.s $f0, $f0, $f4 -/* 8D000 800F3B50 00000000 */ nop -/* 8D004 800F3B54 0803CEFE */ j .LJP_800F3BF8 -/* 8D008 800F3B58 25220090 */ addiu $v0, $t1, 0x90 -.LJP_800F3B5C: -/* 8D00C 800F3B5C 3C03800A */ lui $v1, %hi(gMainGfxPos) -/* 8D010 800F3B60 2463A64C */ addiu $v1, $v1, %lo(gMainGfxPos) -/* 8D014 800F3B64 C7A20020 */ lwc1 $f2, 0x20($sp) -/* 8D018 800F3B68 468010A0 */ cvt.s.w $f2, $f2 -/* 8D01C 800F3B6C 44910000 */ mtc1 $s1, $f0 -/* 8D020 800F3B70 00000000 */ nop -/* 8D024 800F3B74 46800020 */ cvt.s.w $f0, $f0 -/* 8D028 800F3B78 3C014080 */ lui $at, (0x40800000 >> 16) -/* 8D02C 800F3B7C 44812000 */ mtc1 $at, $f4 -/* 8D030 800F3B80 8C620000 */ lw $v0, 0x0($v1) -/* 8D034 800F3B84 46041082 */ mul.s $f2, $f2, $f4 -/* 8D038 800F3B88 00000000 */ nop -/* 8D03C 800F3B8C 0040282D */ daddu $a1, $v0, $zero -/* 8D040 800F3B90 24420008 */ addiu $v0, $v0, 0x8 -/* 8D044 800F3B94 AC620000 */ sw $v0, 0x0($v1) -/* 8D048 800F3B98 8FA90020 */ lw $t1, 0x20($sp) -/* 8D04C 800F3B9C 46040002 */ mul.s $f0, $f0, $f4 -/* 8D050 800F3BA0 00000000 */ nop -/* 8D054 800F3BA4 0803CEFE */ j .LJP_800F3BF8 -/* 8D058 800F3BA8 25220090 */ addiu $v0, $t1, 0x90 -.LJP_800F3BAC: -/* 8D05C 800F3BAC 3C03800A */ lui $v1, %hi(gMainGfxPos) -/* 8D060 800F3BB0 2463A64C */ addiu $v1, $v1, %lo(gMainGfxPos) -/* 8D064 800F3BB4 C7A20020 */ lwc1 $f2, 0x20($sp) -/* 8D068 800F3BB8 468010A0 */ cvt.s.w $f2, $f2 -/* 8D06C 800F3BBC 44910000 */ mtc1 $s1, $f0 -/* 8D070 800F3BC0 00000000 */ nop -/* 8D074 800F3BC4 46800020 */ cvt.s.w $f0, $f0 -/* 8D078 800F3BC8 3C014080 */ lui $at, (0x40800000 >> 16) -/* 8D07C 800F3BCC 44812000 */ mtc1 $at, $f4 -/* 8D080 800F3BD0 8C620000 */ lw $v0, 0x0($v1) -/* 8D084 800F3BD4 46041082 */ mul.s $f2, $f2, $f4 -/* 8D088 800F3BD8 00000000 */ nop -/* 8D08C 800F3BDC 0040282D */ daddu $a1, $v0, $zero -/* 8D090 800F3BE0 24420008 */ addiu $v0, $v0, 0x8 -/* 8D094 800F3BE4 AC620000 */ sw $v0, 0x0($v1) -/* 8D098 800F3BE8 8FA90020 */ lw $t1, 0x20($sp) -/* 8D09C 800F3BEC 46040002 */ mul.s $f0, $f0, $f4 -/* 8D0A0 800F3BF0 00000000 */ nop -/* 8D0A4 800F3BF4 2522008C */ addiu $v0, $t1, 0x8C -.LJP_800F3BF8: -/* 8D0A8 800F3BF8 4600118D */ trunc.w.s $f6, $f2 -/* 8D0AC 800F3BFC 44033000 */ mfc1 $v1, $f6 -/* 8D0B0 800F3C00 00000000 */ nop -/* 8D0B4 800F3C04 30630FFF */ andi $v1, $v1, 0xFFF -/* 8D0B8 800F3C08 00031B00 */ sll $v1, $v1, 12 -/* 8D0BC 800F3C0C 4600018D */ trunc.w.s $f6, $f0 -/* 8D0C0 800F3C10 44043000 */ mfc1 $a0, $f6 -/* 8D0C4 800F3C14 00000000 */ nop -/* 8D0C8 800F3C18 30840FFF */ andi $a0, $a0, 0xFFF -/* 8D0CC 800F3C1C 44821000 */ mtc1 $v0, $f2 -/* 8D0D0 800F3C20 00000000 */ nop -/* 8D0D4 800F3C24 468010A0 */ cvt.s.w $f2, $f2 -/* 8D0D8 800F3C28 46041082 */ mul.s $f2, $f2, $f4 -/* 8D0DC 800F3C2C 00000000 */ nop -/* 8D0E0 800F3C30 3C02ED00 */ lui $v0, (0xED000000 >> 16) -/* 8D0E4 800F3C34 00822025 */ or $a0, $a0, $v0 -/* 8D0E8 800F3C38 00641825 */ or $v1, $v1, $a0 -/* 8D0EC 800F3C3C 44860000 */ mtc1 $a2, $f0 -/* 8D0F0 800F3C40 00000000 */ nop -/* 8D0F4 800F3C44 46800020 */ cvt.s.w $f0, $f0 -/* 8D0F8 800F3C48 46040002 */ mul.s $f0, $f0, $f4 -/* 8D0FC 800F3C4C 00000000 */ nop -/* 8D100 800F3C50 ACA30000 */ sw $v1, 0x0($a1) -/* 8D104 800F3C54 4600118D */ trunc.w.s $f6, $f2 -/* 8D108 800F3C58 44023000 */ mfc1 $v0, $f6 -/* 8D10C 800F3C5C 00000000 */ nop -/* 8D110 800F3C60 30420FFF */ andi $v0, $v0, 0xFFF -/* 8D114 800F3C64 00021300 */ sll $v0, $v0, 12 -/* 8D118 800F3C68 4600018D */ trunc.w.s $f6, $f0 -/* 8D11C 800F3C6C 44033000 */ mfc1 $v1, $f6 -/* 8D120 800F3C70 00000000 */ nop -/* 8D124 800F3C74 30630FFF */ andi $v1, $v1, 0xFFF -/* 8D128 800F3C78 00431025 */ or $v0, $v0, $v1 -/* 8D12C 800F3C7C ACA20004 */ sw $v0, 0x4($a1) -.LJP_800F3C80: -/* 8D130 800F3C80 8FA9005C */ lw $t1, 0x5C($sp) -/* 8D134 800F3C84 3C028011 */ lui $v0, %hi(D_8010D658) -/* 8D138 800F3C88 8442D818 */ lh $v0, %lo(D_8010D658)($v0) -/* 8D13C 800F3C8C 8FA80060 */ lw $t0, 0x60($sp) -/* 8D140 800F3C90 3C058011 */ lui $a1, %hi(gPopupMenu) -/* 8D144 800F3C94 8CA5D85C */ lw $a1, %lo(gPopupMenu)($a1) -/* 8D148 800F3C98 AFA00024 */ sw $zero, 0x24($sp) -/* 8D14C 800F3C9C 25290020 */ addiu $t1, $t1, 0x20 -/* 8D150 800F3CA0 01022021 */ addu $a0, $t0, $v0 -/* 8D154 800F3CA4 AFA90020 */ sw $t1, 0x20($sp) -/* 8D158 800F3CA8 8CA30318 */ lw $v1, 0x318($a1) -/* 8D15C 800F3CAC 24020002 */ addiu $v0, $zero, 0x2 -/* 8D160 800F3CB0 14620004 */ bne $v1, $v0, .LJP_800F3CC4 -/* 8D164 800F3CB4 24910002 */ addiu $s1, $a0, 0x2 -/* 8D168 800F3CB8 0080882D */ daddu $s1, $a0, $zero -/* 8D16C 800F3CBC 0040482D */ daddu $t1, $v0, $zero -/* 8D170 800F3CC0 AFA90024 */ sw $t1, 0x24($sp) -.LJP_800F3CC4: -/* 8D174 800F3CC4 8CA20324 */ lw $v0, 0x324($a1) -/* 8D178 800F3CC8 184000E1 */ blez $v0, .LJP_800F4050 -/* 8D17C 800F3CCC 0000902D */ daddu $s2, $zero, $zero -/* 8D180 800F3CD0 AFA0002C */ sw $zero, 0x2C($sp) -.LJP_800F3CD4: -/* 8D184 800F3CD4 8FA80028 */ lw $t0, 0x28($sp) -/* 8D188 800F3CD8 2502FFFF */ addiu $v0, $t0, -0x1 -/* 8D18C 800F3CDC 0242102A */ slt $v0, $s2, $v0 -/* 8D190 800F3CE0 544000CF */ bnel $v0, $zero, .LJP_800F4020 -/* 8D194 800F3CE4 2631000D */ addiu $s1, $s1, 0xD -/* 8D198 800F3CE8 3C028011 */ lui $v0, %hi(PopupMenu_DisplayedEntryCount) -/* 8D19C 800F3CEC 8042D816 */ lb $v0, %lo(PopupMenu_DisplayedEntryCount)($v0) -/* 8D1A0 800F3CF0 01021021 */ addu $v0, $t0, $v0 -/* 8D1A4 800F3CF4 0052102A */ slt $v0, $v0, $s2 -/* 8D1A8 800F3CF8 544000C9 */ bnel $v0, $zero, .LJP_800F4020 -/* 8D1AC 800F3CFC 2631000D */ addiu $s1, $s1, 0xD -/* 8D1B0 800F3D00 3C028011 */ lui $v0, %hi(gPopupMenu) -/* 8D1B4 800F3D04 8C42D85C */ lw $v0, %lo(gPopupMenu)($v0) -/* 8D1B8 800F3D08 24080001 */ addiu $t0, $zero, 0x1 -/* 8D1BC 800F3D0C 8C430318 */ lw $v1, 0x318($v0) -/* 8D1C0 800F3D10 3C108011 */ lui $s0, %hi(D_8010D690) -/* 8D1C4 800F3D14 8210D850 */ lb $s0, %lo(D_8010D690)($s0) -/* 8D1C8 800F3D18 50680001 */ beql $v1, $t0, .LJP_800F3D20 -/* 8D1CC 800F3D1C 2410000A */ addiu $s0, $zero, 0xA -.LJP_800F3D20: -/* 8D1D0 800F3D20 8FA9002C */ lw $t1, 0x2C($sp) -/* 8D1D4 800F3D24 00491021 */ addu $v0, $v0, $t1 -/* 8D1D8 800F3D28 8C42018C */ lw $v0, 0x18C($v0) -/* 8D1DC 800F3D2C 50400001 */ beql $v0, $zero, .LJP_800F3D34 -/* 8D1E0 800F3D30 2410000B */ addiu $s0, $zero, 0xB -.LJP_800F3D34: -/* 8D1E4 800F3D34 2C62000E */ sltiu $v0, $v1, 0xE -/* 8D1E8 800F3D38 10400056 */ beqz $v0, .LJP_800F3E94 -/* 8D1EC 800F3D3C 00031080 */ sll $v0, $v1, 2 -/* 8D1F0 800F3D40 3C018011 */ lui $at, %hi(jtbl_JP_8010C988) -/* 8D1F4 800F3D44 00220821 */ addu $at, $at, $v0 -/* 8D1F8 800F3D48 8C22C988 */ lw $v0, %lo(jtbl_JP_8010C988)($at) -/* 8D1FC 800F3D4C 00400008 */ jr $v0 -/* 8D200 800F3D50 00000000 */ nop -.LJP_800F3D54: -/* 8D204 800F3D54 3C078011 */ lui $a3, %hi(PopupMenu_Alpha) -/* 8D208 800F3D58 8CE7D810 */ lw $a3, %lo(PopupMenu_Alpha)($a3) -/* 8D20C 800F3D5C 3C028011 */ lui $v0, %hi(gPopupMenu) -/* 8D210 800F3D60 8C42D85C */ lw $v0, %lo(gPopupMenu)($v0) -/* 8D214 800F3D64 8FA50020 */ lw $a1, 0x20($sp) -/* 8D218 800F3D68 8FA9002C */ lw $t1, 0x2C($sp) -/* 8D21C 800F3D6C 24080001 */ addiu $t0, $zero, 0x1 -/* 8D220 800F3D70 AFB00010 */ sw $s0, 0x10($sp) -/* 8D224 800F3D74 AFA80014 */ sw $t0, 0x14($sp) -/* 8D228 800F3D78 00491021 */ addu $v0, $v0, $t1 -/* 8D22C 800F3D7C 8C440084 */ lw $a0, 0x84($v0) -/* 8D230 800F3D80 0803CFA3 */ j .LJP_800F3E8C -/* 8D234 800F3D84 0220302D */ daddu $a2, $s1, $zero -.LJP_800F3D88: -/* 8D238 800F3D88 3C078011 */ lui $a3, %hi(PopupMenu_Alpha) -/* 8D23C 800F3D8C 8CE7D810 */ lw $a3, %lo(PopupMenu_Alpha)($a3) -/* 8D240 800F3D90 3C028011 */ lui $v0, %hi(gPopupMenu) -/* 8D244 800F3D94 8C42D85C */ lw $v0, %lo(gPopupMenu)($v0) -/* 8D248 800F3D98 8FA50020 */ lw $a1, 0x20($sp) -/* 8D24C 800F3D9C 8FA9002C */ lw $t1, 0x2C($sp) -/* 8D250 800F3DA0 24080001 */ addiu $t0, $zero, 0x1 -/* 8D254 800F3DA4 AFB00010 */ sw $s0, 0x10($sp) -/* 8D258 800F3DA8 AFA80014 */ sw $t0, 0x14($sp) -/* 8D25C 800F3DAC 00491021 */ addu $v0, $v0, $t1 -/* 8D260 800F3DB0 8C440084 */ lw $a0, 0x84($v0) -/* 8D264 800F3DB4 0803CFA3 */ j .LJP_800F3E8C -/* 8D268 800F3DB8 0220302D */ daddu $a2, $s1, $zero -.LJP_800F3DBC: -/* 8D26C 800F3DBC 3C028011 */ lui $v0, %hi(gPopupMenu) -/* 8D270 800F3DC0 8C42D85C */ lw $v0, %lo(gPopupMenu)($v0) -/* 8D274 800F3DC4 8FA8002C */ lw $t0, 0x2C($sp) -/* 8D278 800F3DC8 00482021 */ addu $a0, $v0, $t0 -/* 8D27C 800F3DCC 8C83018C */ lw $v1, 0x18C($a0) -/* 8D280 800F3DD0 24020002 */ addiu $v0, $zero, 0x2 -/* 8D284 800F3DD4 50620001 */ beql $v1, $v0, .LJP_800F3DDC -/* 8D288 800F3DD8 24100022 */ addiu $s0, $zero, 0x22 -.LJP_800F3DDC: -/* 8D28C 800F3DDC 8FA50020 */ lw $a1, 0x20($sp) -/* 8D290 800F3DE0 24090001 */ addiu $t1, $zero, 0x1 -/* 8D294 800F3DE4 AFB00010 */ sw $s0, 0x10($sp) -/* 8D298 800F3DE8 AFA90014 */ sw $t1, 0x14($sp) -/* 8D29C 800F3DEC 8C840084 */ lw $a0, 0x84($a0) -/* 8D2A0 800F3DF0 3C078011 */ lui $a3, %hi(PopupMenu_Alpha) -/* 8D2A4 800F3DF4 8CE7D810 */ lw $a3, %lo(PopupMenu_Alpha)($a3) -/* 8D2A8 800F3DF8 0803CFA3 */ j .LJP_800F3E8C -/* 8D2AC 800F3DFC 0220302D */ daddu $a2, $s1, $zero -.LJP_800F3E00: -/* 8D2B0 800F3E00 3C028011 */ lui $v0, %hi(gPopupMenu) -/* 8D2B4 800F3E04 8C42D85C */ lw $v0, %lo(gPopupMenu)($v0) -/* 8D2B8 800F3E08 8FA8002C */ lw $t0, 0x2C($sp) -/* 8D2BC 800F3E0C 00481821 */ addu $v1, $v0, $t0 -/* 8D2C0 800F3E10 8C620210 */ lw $v0, 0x210($v1) -/* 8D2C4 800F3E14 10400002 */ beqz $v0, .LJP_800F3E20 -/* 8D2C8 800F3E18 2410000A */ addiu $s0, $zero, 0xA -/* 8D2CC 800F3E1C 2410000B */ addiu $s0, $zero, 0xB -.LJP_800F3E20: -/* 8D2D0 800F3E20 8C640108 */ lw $a0, 0x108($v1) -/* 8D2D4 800F3E24 0000282D */ daddu $a1, $zero, $zero -/* 8D2D8 800F3E28 0C04AB92 */ jal set_message_int_var -/* 8D2DC 800F3E2C 24840001 */ addiu $a0, $a0, 0x1 -/* 8D2E0 800F3E30 3C040020 */ lui $a0, (0x2000E7 >> 16) -/* 8D2E4 800F3E34 348400E7 */ ori $a0, $a0, (0x2000E7 & 0xFFFF) -/* 8D2E8 800F3E38 8FA50020 */ lw $a1, 0x20($sp) -/* 8D2EC 800F3E3C 3C078011 */ lui $a3, %hi(PopupMenu_Alpha) -/* 8D2F0 800F3E40 8CE7D810 */ lw $a3, %lo(PopupMenu_Alpha)($a3) -/* 8D2F4 800F3E44 0803CFA0 */ j .LJP_800F3E80 -/* 8D2F8 800F3E48 0220302D */ daddu $a2, $s1, $zero -.LJP_800F3E4C: -/* 8D2FC 800F3E4C 3C028011 */ lui $v0, %hi(gPopupMenu) -/* 8D300 800F3E50 8C42D85C */ lw $v0, %lo(gPopupMenu)($v0) -/* 8D304 800F3E54 8FA8002C */ lw $t0, 0x2C($sp) -/* 8D308 800F3E58 00481821 */ addu $v1, $v0, $t0 -/* 8D30C 800F3E5C 8C620210 */ lw $v0, 0x210($v1) -/* 8D310 800F3E60 10400002 */ beqz $v0, .LJP_800F3E6C -/* 8D314 800F3E64 2410000A */ addiu $s0, $zero, 0xA -/* 8D318 800F3E68 2410000B */ addiu $s0, $zero, 0xB -.LJP_800F3E6C: -/* 8D31C 800F3E6C 0220302D */ daddu $a2, $s1, $zero -/* 8D320 800F3E70 8FA50020 */ lw $a1, 0x20($sp) -/* 8D324 800F3E74 3C078011 */ lui $a3, %hi(PopupMenu_Alpha) -/* 8D328 800F3E78 8CE7D810 */ lw $a3, %lo(PopupMenu_Alpha)($a3) -/* 8D32C 800F3E7C 8C640084 */ lw $a0, 0x84($v1) -.LJP_800F3E80: -/* 8D330 800F3E80 24090001 */ addiu $t1, $zero, 0x1 -/* 8D334 800F3E84 AFB00010 */ sw $s0, 0x10($sp) -/* 8D338 800F3E88 AFA90014 */ sw $t1, 0x14($sp) -.LJP_800F3E8C: -/* 8D33C 800F3E8C 0C04ADC4 */ jal draw_msg -/* 8D340 800F3E90 00000000 */ nop -.LJP_800F3E94: -/* 8D344 800F3E94 3C048011 */ lui $a0, %hi(gPopupMenu) -/* 8D348 800F3E98 8C84D85C */ lw $a0, %lo(gPopupMenu)($a0) -/* 8D34C 800F3E9C 8C830318 */ lw $v1, 0x318($a0) -/* 8D350 800F3EA0 24080003 */ addiu $t0, $zero, 0x3 -/* 8D354 800F3EA4 10680045 */ beq $v1, $t0, .LJP_800F3FBC -/* 8D358 800F3EA8 0220302D */ daddu $a2, $s1, $zero -/* 8D35C 800F3EAC 28620004 */ slti $v0, $v1, 0x4 -/* 8D360 800F3EB0 10400005 */ beqz $v0, .LJP_800F3EC8 -/* 8D364 800F3EB4 24090001 */ addiu $t1, $zero, 0x1 -/* 8D368 800F3EB8 1069000B */ beq $v1, $t1, .LJP_800F3EE8 -/* 8D36C 800F3EBC 0000982D */ daddu $s3, $zero, $zero -/* 8D370 800F3EC0 0803D008 */ j .LJP_800F4020 -/* 8D374 800F3EC4 2631000D */ addiu $s1, $s1, 0xD -.LJP_800F3EC8: -/* 8D378 800F3EC8 24020004 */ addiu $v0, $zero, 0x4 -/* 8D37C 800F3ECC 10620005 */ beq $v1, $v0, .LJP_800F3EE4 -/* 8D380 800F3ED0 24020005 */ addiu $v0, $zero, 0x5 -/* 8D384 800F3ED4 10620044 */ beq $v1, $v0, .LJP_800F3FE8 -/* 8D388 800F3ED8 0220302D */ daddu $a2, $s1, $zero -/* 8D38C 800F3EDC 0803D008 */ j .LJP_800F4020 -/* 8D390 800F3EE0 2631000D */ addiu $s1, $s1, 0xD -.LJP_800F3EE4: -/* 8D394 800F3EE4 0000982D */ daddu $s3, $zero, $zero -.LJP_800F3EE8: -/* 8D398 800F3EE8 0012F080 */ sll $fp, $s2, 2 -/* 8D39C 800F3EEC 24170042 */ addiu $s7, $zero, 0x42 -/* 8D3A0 800F3EF0 24160032 */ addiu $s6, $zero, 0x32 -/* 8D3A4 800F3EF4 3C158011 */ lui $s5, %hi(D_80109898) -/* 8D3A8 800F3EF8 26B59A28 */ addiu $s5, $s5, %lo(D_80109898) -/* 8D3AC 800F3EFC 3C148011 */ lui $s4, %hi(D_80109890) -/* 8D3B0 800F3F00 26949A20 */ addiu $s4, $s4, %lo(D_80109890) -.LJP_800F3F04: -/* 8D3B4 800F3F04 3C028011 */ lui $v0, %hi(gPopupMenu) -/* 8D3B8 800F3F08 8C42D85C */ lw $v0, %lo(gPopupMenu)($v0) -/* 8D3BC 800F3F0C 005E1021 */ addu $v0, $v0, $fp -/* 8D3C0 800F3F10 8C42018C */ lw $v0, 0x18C($v0) -/* 8D3C4 800F3F14 3C108011 */ lui $s0, %hi(PopupMenu_PartnerLevelHEID) -/* 8D3C8 800F3F18 8E10D828 */ lw $s0, %lo(PopupMenu_PartnerLevelHEID)($s0) -/* 8D3CC 800F3F1C 10400003 */ beqz $v0, .LJP_800F3F2C -/* 8D3D0 800F3F20 00000000 */ nop -/* 8D3D4 800F3F24 0803CFCC */ j .LJP_800F3F30 -/* 8D3D8 800F3F28 8E850000 */ lw $a1, 0x0($s4) -.LJP_800F3F2C: -/* 8D3DC 800F3F2C 8EA50000 */ lw $a1, 0x0($s5) -.LJP_800F3F30: -/* 8D3E0 800F3F30 0C05262B */ jal hud_element_set_script -/* 8D3E4 800F3F34 0200202D */ daddu $a0, $s0, $zero -/* 8D3E8 800F3F38 3C028011 */ lui $v0, %hi(gPopupMenu) -/* 8D3EC 800F3F3C 8C42D85C */ lw $v0, %lo(gPopupMenu)($v0) -/* 8D3F0 800F3F40 8C420318 */ lw $v0, 0x318($v0) -/* 8D3F4 800F3F44 24080001 */ addiu $t0, $zero, 0x1 -/* 8D3F8 800F3F48 14480005 */ bne $v0, $t0, .LJP_800F3F60 -/* 8D3FC 800F3F4C 0200202D */ daddu $a0, $s0, $zero -/* 8D400 800F3F50 8FA90020 */ lw $t1, 0x20($sp) -/* 8D404 800F3F54 2626000A */ addiu $a2, $s1, 0xA -/* 8D408 800F3F58 0803CFDB */ j .LJP_800F3F6C -/* 8D40C 800F3F5C 01362821 */ addu $a1, $t1, $s6 -.LJP_800F3F60: -/* 8D410 800F3F60 8FA80020 */ lw $t0, 0x20($sp) -/* 8D414 800F3F64 2626000A */ addiu $a2, $s1, 0xA -/* 8D418 800F3F68 01172821 */ addu $a1, $t0, $s7 -.LJP_800F3F6C: -/* 8D41C 800F3F6C 0C05268D */ jal hud_element_set_render_pos -/* 8D420 800F3F70 00000000 */ nop -/* 8D424 800F3F74 3C028011 */ lui $v0, %hi(gPopupMenu) -/* 8D428 800F3F78 8C42D85C */ lw $v0, %lo(gPopupMenu)($v0) -/* 8D42C 800F3F7C 005E1021 */ addu $v0, $v0, $fp -/* 8D430 800F3F80 8C420210 */ lw $v0, 0x210($v0) -/* 8D434 800F3F84 0262102A */ slt $v0, $s3, $v0 -/* 8D438 800F3F88 50400004 */ beql $v0, $zero, .LJP_800F3F9C -/* 8D43C 800F3F8C 26F7000D */ addiu $s7, $s7, 0xD -/* 8D440 800F3F90 0C05261D */ jal hud_element_draw_next -/* 8D444 800F3F94 0200202D */ daddu $a0, $s0, $zero -/* 8D448 800F3F98 26F7000D */ addiu $s7, $s7, 0xD -.LJP_800F3F9C: -/* 8D44C 800F3F9C 26D6000D */ addiu $s6, $s6, 0xD -/* 8D450 800F3FA0 26B50004 */ addiu $s5, $s5, 0x4 -/* 8D454 800F3FA4 26730001 */ addiu $s3, $s3, 0x1 -/* 8D458 800F3FA8 2A620002 */ slti $v0, $s3, 0x2 -/* 8D45C 800F3FAC 1440FFD5 */ bnez $v0, .LJP_800F3F04 -/* 8D460 800F3FB0 26940004 */ addiu $s4, $s4, 0x4 -/* 8D464 800F3FB4 0803D008 */ j .LJP_800F4020 -/* 8D468 800F3FB8 2631000D */ addiu $s1, $s1, 0xD -.LJP_800F3FBC: -/* 8D46C 800F3FBC 8FA90020 */ lw $t1, 0x20($sp) -/* 8D470 800F3FC0 3C028011 */ lui $v0, %hi(PopupMenu_Alpha) -/* 8D474 800F3FC4 8C42D810 */ lw $v0, %lo(PopupMenu_Alpha)($v0) -/* 8D478 800F3FC8 2525006C */ addiu $a1, $t1, 0x6C -/* 8D47C 800F3FCC 8FA9002C */ lw $t1, 0x2C($sp) -/* 8D480 800F3FD0 24080003 */ addiu $t0, $zero, 0x3 -/* 8D484 800F3FD4 AFB00010 */ sw $s0, 0x10($sp) -/* 8D488 800F3FD8 AFA80018 */ sw $t0, 0x18($sp) -/* 8D48C 800F3FDC AFA20014 */ sw $v0, 0x14($sp) -/* 8D490 800F3FE0 0803D004 */ j .LJP_800F4010 -/* 8D494 800F3FE4 00891021 */ addu $v0, $a0, $t1 -.LJP_800F3FE8: -/* 8D498 800F3FE8 8FA80020 */ lw $t0, 0x20($sp) -/* 8D49C 800F3FEC 3C028011 */ lui $v0, %hi(PopupMenu_Alpha) -/* 8D4A0 800F3FF0 8C42D810 */ lw $v0, %lo(PopupMenu_Alpha)($v0) -/* 8D4A4 800F3FF4 2505006A */ addiu $a1, $t0, 0x6A -/* 8D4A8 800F3FF8 8FA8002C */ lw $t0, 0x2C($sp) -/* 8D4AC 800F3FFC 24090003 */ addiu $t1, $zero, 0x3 -/* 8D4B0 800F4000 AFB00010 */ sw $s0, 0x10($sp) -/* 8D4B4 800F4004 AFA90018 */ sw $t1, 0x18($sp) -/* 8D4B8 800F4008 AFA20014 */ sw $v0, 0x14($sp) -/* 8D4BC 800F400C 00881021 */ addu $v0, $a0, $t0 -.LJP_800F4010: -/* 8D4C0 800F4010 8C440210 */ lw $a0, 0x210($v0) -/* 8D4C4 800F4014 0C04B22C */ jal draw_number -/* 8D4C8 800F4018 24070001 */ addiu $a3, $zero, 0x1 -/* 8D4CC 800F401C 2631000D */ addiu $s1, $s1, 0xD -.LJP_800F4020: -/* 8D4D0 800F4020 16400003 */ bnez $s2, .LJP_800F4030 -/* 8D4D4 800F4024 26520001 */ addiu $s2, $s2, 0x1 -/* 8D4D8 800F4028 8FA90024 */ lw $t1, 0x24($sp) -/* 8D4DC 800F402C 02298821 */ addu $s1, $s1, $t1 -.LJP_800F4030: -/* 8D4E0 800F4030 3C028011 */ lui $v0, %hi(gPopupMenu) -/* 8D4E4 800F4034 8C42D85C */ lw $v0, %lo(gPopupMenu)($v0) -/* 8D4E8 800F4038 8FA8002C */ lw $t0, 0x2C($sp) -/* 8D4EC 800F403C 8C420324 */ lw $v0, 0x324($v0) -/* 8D4F0 800F4040 25080004 */ addiu $t0, $t0, 0x4 -/* 8D4F4 800F4044 0242102A */ slt $v0, $s2, $v0 -/* 8D4F8 800F4048 1440FF22 */ bnez $v0, .LJP_800F3CD4 -/* 8D4FC 800F404C AFA8002C */ sw $t0, 0x2C($sp) -.LJP_800F4050: -/* 8D500 800F4050 8FA9005C */ lw $t1, 0x5C($sp) -/* 8D504 800F4054 3C028011 */ lui $v0, %hi(D_8010D658) -/* 8D508 800F4058 8442D818 */ lh $v0, %lo(D_8010D658)($v0) -/* 8D50C 800F405C 8FA80060 */ lw $t0, 0x60($sp) -/* 8D510 800F4060 AFA00024 */ sw $zero, 0x24($sp) -/* 8D514 800F4064 25290018 */ addiu $t1, $t1, 0x18 -/* 8D518 800F4068 01022021 */ addu $a0, $t0, $v0 -/* 8D51C 800F406C 3C028011 */ lui $v0, %hi(gPopupMenu) -/* 8D520 800F4070 8C42D85C */ lw $v0, %lo(gPopupMenu)($v0) -/* 8D524 800F4074 AFA90020 */ sw $t1, 0x20($sp) -/* 8D528 800F4078 8C430318 */ lw $v1, 0x318($v0) -/* 8D52C 800F407C 24020002 */ addiu $v0, $zero, 0x2 -/* 8D530 800F4080 14620004 */ bne $v1, $v0, .LJP_800F4094 -/* 8D534 800F4084 24910009 */ addiu $s1, $a0, 0x9 -/* 8D538 800F4088 24910007 */ addiu $s1, $a0, 0x7 -/* 8D53C 800F408C 0040482D */ daddu $t1, $v0, $zero -/* 8D540 800F4090 AFA90024 */ sw $t1, 0x24($sp) -.LJP_800F4094: -/* 8D544 800F4094 2C62000E */ sltiu $v0, $v1, 0xE -/* 8D548 800F4098 104000B2 */ beqz $v0, .LJP_800F4364 -/* 8D54C 800F409C 00031080 */ sll $v0, $v1, 2 -/* 8D550 800F40A0 3C018011 */ lui $at, %hi(jtbl_JP_8010C9C0) -/* 8D554 800F40A4 00220821 */ addu $at, $at, $v0 -/* 8D558 800F40A8 8C22C9C0 */ lw $v0, %lo(jtbl_JP_8010C9C0)($at) -/* 8D55C 800F40AC 00400008 */ jr $v0 -/* 8D560 800F40B0 00000000 */ nop -.LJP_800F40B4: -/* 8D564 800F40B4 3C028011 */ lui $v0, %hi(gPopupMenu) -/* 8D568 800F40B8 8C42D85C */ lw $v0, %lo(gPopupMenu)($v0) -/* 8D56C 800F40BC 8C420324 */ lw $v0, 0x324($v0) -/* 8D570 800F40C0 184000A8 */ blez $v0, .LJP_800F4364 -/* 8D574 800F40C4 0000902D */ daddu $s2, $zero, $zero -/* 8D578 800F40C8 8FA80028 */ lw $t0, 0x28($sp) -/* 8D57C 800F40CC 2513FFFF */ addiu $s3, $t0, -0x1 -/* 8D580 800F40D0 0253102A */ slt $v0, $s2, $s3 -.LJP_800F40D4: -/* 8D584 800F40D4 14400008 */ bnez $v0, .LJP_800F40F8 -/* 8D588 800F40D8 00000000 */ nop -/* 8D58C 800F40DC 3C028011 */ lui $v0, %hi(PopupMenu_DisplayedEntryCount) -/* 8D590 800F40E0 8042D816 */ lb $v0, %lo(PopupMenu_DisplayedEntryCount)($v0) -/* 8D594 800F40E4 8FA90028 */ lw $t1, 0x28($sp) -/* 8D598 800F40E8 01221021 */ addu $v0, $t1, $v0 -/* 8D59C 800F40EC 0052102A */ slt $v0, $v0, $s2 -/* 8D5A0 800F40F0 10400006 */ beqz $v0, .LJP_800F410C -/* 8D5A4 800F40F4 00121880 */ sll $v1, $s2, 2 -.LJP_800F40F8: -/* 8D5A8 800F40F8 1640001F */ bnez $s2, .LJP_800F4178 -/* 8D5AC 800F40FC 2631000D */ addiu $s1, $s1, 0xD -/* 8D5B0 800F4100 8FA80024 */ lw $t0, 0x24($sp) -/* 8D5B4 800F4104 0803D05E */ j .LJP_800F4178 -/* 8D5B8 800F4108 02288821 */ addu $s1, $s1, $t0 -.LJP_800F410C: -/* 8D5BC 800F410C 3C028011 */ lui $v0, %hi(gPopupMenu) -/* 8D5C0 800F4110 8C42D85C */ lw $v0, %lo(gPopupMenu)($v0) -/* 8D5C4 800F4114 3C108011 */ lui $s0, %hi(PopupMenu_EntryIconHEID) -/* 8D5C8 800F4118 8E10D838 */ lw $s0, %lo(PopupMenu_EntryIconHEID)($s0) -/* 8D5CC 800F411C 00431021 */ addu $v0, $v0, $v1 -/* 8D5D0 800F4120 8C450000 */ lw $a1, 0x0($v0) -/* 8D5D4 800F4124 0C05262B */ jal hud_element_set_script -/* 8D5D8 800F4128 0200202D */ daddu $a0, $s0, $zero -/* 8D5DC 800F412C 0200202D */ daddu $a0, $s0, $zero -/* 8D5E0 800F4130 8FA50020 */ lw $a1, 0x20($sp) -/* 8D5E4 800F4134 0C05268D */ jal hud_element_set_render_pos -/* 8D5E8 800F4138 0220302D */ daddu $a2, $s1, $zero -/* 8D5EC 800F413C 0200202D */ daddu $a0, $s0, $zero -/* 8D5F0 800F4140 3C058011 */ lui $a1, %hi(PopupMenu_Alpha) -/* 8D5F4 800F4144 8CA5D810 */ lw $a1, %lo(PopupMenu_Alpha)($a1) -/* 8D5F8 800F4148 0C0527D8 */ jal hud_element_set_alpha -/* 8D5FC 800F414C 2631000D */ addiu $s1, $s1, 0xD -/* 8D600 800F4150 3C053EE6 */ lui $a1, (0x3EE66666 >> 16) -/* 8D604 800F4154 34A56666 */ ori $a1, $a1, (0x3EE66666 & 0xFFFF) -/* 8D608 800F4158 0C052734 */ jal hud_element_set_scale -/* 8D60C 800F415C 0200202D */ daddu $a0, $s0, $zero -/* 8D610 800F4160 0C052624 */ jal hud_element_draw_without_clipping -/* 8D614 800F4164 0200202D */ daddu $a0, $s0, $zero -/* 8D618 800F4168 16400003 */ bnez $s2, .LJP_800F4178 -/* 8D61C 800F416C 00000000 */ nop -/* 8D620 800F4170 8FA90024 */ lw $t1, 0x24($sp) -/* 8D624 800F4174 02298821 */ addu $s1, $s1, $t1 -.LJP_800F4178: -/* 8D628 800F4178 3C028011 */ lui $v0, %hi(gPopupMenu) -/* 8D62C 800F417C 8C42D85C */ lw $v0, %lo(gPopupMenu)($v0) -/* 8D630 800F4180 8C420324 */ lw $v0, 0x324($v0) -/* 8D634 800F4184 26520001 */ addiu $s2, $s2, 0x1 -/* 8D638 800F4188 0242102A */ slt $v0, $s2, $v0 -/* 8D63C 800F418C 1440FFD1 */ bnez $v0, .LJP_800F40D4 -/* 8D640 800F4190 0253102A */ slt $v0, $s2, $s3 -/* 8D644 800F4194 0803D0D9 */ j .LJP_800F4364 -/* 8D648 800F4198 00000000 */ nop -.LJP_800F419C: -/* 8D64C 800F419C 3C028011 */ lui $v0, %hi(gPopupMenu) -/* 8D650 800F41A0 8C42D85C */ lw $v0, %lo(gPopupMenu)($v0) -/* 8D654 800F41A4 8C420324 */ lw $v0, 0x324($v0) -/* 8D658 800F41A8 1840006E */ blez $v0, .LJP_800F4364 -/* 8D65C 800F41AC 0000902D */ daddu $s2, $zero, $zero -/* 8D660 800F41B0 8FA80028 */ lw $t0, 0x28($sp) -/* 8D664 800F41B4 2513FFFF */ addiu $s3, $t0, -0x1 -/* 8D668 800F41B8 0253102A */ slt $v0, $s2, $s3 -.LJP_800F41BC: -/* 8D66C 800F41BC 14400008 */ bnez $v0, .LJP_800F41E0 -/* 8D670 800F41C0 00000000 */ nop -/* 8D674 800F41C4 3C028011 */ lui $v0, %hi(PopupMenu_DisplayedEntryCount) -/* 8D678 800F41C8 8042D816 */ lb $v0, %lo(PopupMenu_DisplayedEntryCount)($v0) -/* 8D67C 800F41CC 8FA90028 */ lw $t1, 0x28($sp) -/* 8D680 800F41D0 01221021 */ addu $v0, $t1, $v0 -/* 8D684 800F41D4 0052102A */ slt $v0, $v0, $s2 -/* 8D688 800F41D8 10400006 */ beqz $v0, .LJP_800F41F4 -/* 8D68C 800F41DC 00121880 */ sll $v1, $s2, 2 -.LJP_800F41E0: -/* 8D690 800F41E0 1640001F */ bnez $s2, .LJP_800F4260 -/* 8D694 800F41E4 2631000D */ addiu $s1, $s1, 0xD -/* 8D698 800F41E8 8FA80024 */ lw $t0, 0x24($sp) -/* 8D69C 800F41EC 0803D098 */ j .LJP_800F4260 -/* 8D6A0 800F41F0 02288821 */ addu $s1, $s1, $t0 -.LJP_800F41F4: -/* 8D6A4 800F41F4 3C028011 */ lui $v0, %hi(gPopupMenu) -/* 8D6A8 800F41F8 8C42D85C */ lw $v0, %lo(gPopupMenu)($v0) -/* 8D6AC 800F41FC 3C108011 */ lui $s0, %hi(PopupMenu_EntryIconHEID) -/* 8D6B0 800F4200 8E10D838 */ lw $s0, %lo(PopupMenu_EntryIconHEID)($s0) -/* 8D6B4 800F4204 00431021 */ addu $v0, $v0, $v1 -/* 8D6B8 800F4208 8C450000 */ lw $a1, 0x0($v0) -/* 8D6BC 800F420C 0C05262B */ jal hud_element_set_script -/* 8D6C0 800F4210 0200202D */ daddu $a0, $s0, $zero -/* 8D6C4 800F4214 0200202D */ daddu $a0, $s0, $zero -/* 8D6C8 800F4218 8FA50020 */ lw $a1, 0x20($sp) -/* 8D6CC 800F421C 0C05268D */ jal hud_element_set_render_pos -/* 8D6D0 800F4220 0220302D */ daddu $a2, $s1, $zero -/* 8D6D4 800F4224 0200202D */ daddu $a0, $s0, $zero -/* 8D6D8 800F4228 3C058011 */ lui $a1, %hi(PopupMenu_Alpha) -/* 8D6DC 800F422C 8CA5D810 */ lw $a1, %lo(PopupMenu_Alpha)($a1) -/* 8D6E0 800F4230 0C0527D8 */ jal hud_element_set_alpha -/* 8D6E4 800F4234 2631000D */ addiu $s1, $s1, 0xD -/* 8D6E8 800F4238 3C053EE6 */ lui $a1, (0x3EE66666 >> 16) -/* 8D6EC 800F423C 34A56666 */ ori $a1, $a1, (0x3EE66666 & 0xFFFF) -/* 8D6F0 800F4240 0C052734 */ jal hud_element_set_scale -/* 8D6F4 800F4244 0200202D */ daddu $a0, $s0, $zero -/* 8D6F8 800F4248 0C052624 */ jal hud_element_draw_without_clipping -/* 8D6FC 800F424C 0200202D */ daddu $a0, $s0, $zero -/* 8D700 800F4250 16400003 */ bnez $s2, .LJP_800F4260 -/* 8D704 800F4254 00000000 */ nop -/* 8D708 800F4258 8FA90024 */ lw $t1, 0x24($sp) -/* 8D70C 800F425C 02298821 */ addu $s1, $s1, $t1 -.LJP_800F4260: -/* 8D710 800F4260 3C028011 */ lui $v0, %hi(gPopupMenu) -/* 8D714 800F4264 8C42D85C */ lw $v0, %lo(gPopupMenu)($v0) -/* 8D718 800F4268 8C420324 */ lw $v0, 0x324($v0) -/* 8D71C 800F426C 26520001 */ addiu $s2, $s2, 0x1 -/* 8D720 800F4270 0242102A */ slt $v0, $s2, $v0 -/* 8D724 800F4274 1440FFD1 */ bnez $v0, .LJP_800F41BC -/* 8D728 800F4278 0253102A */ slt $v0, $s2, $s3 -/* 8D72C 800F427C 0803D0D9 */ j .LJP_800F4364 -/* 8D730 800F4280 00000000 */ nop -.LJP_800F4284: -/* 8D734 800F4284 3C028011 */ lui $v0, %hi(gPopupMenu) -/* 8D738 800F4288 8C42D85C */ lw $v0, %lo(gPopupMenu)($v0) -/* 8D73C 800F428C 8C420324 */ lw $v0, 0x324($v0) -/* 8D740 800F4290 18400034 */ blez $v0, .LJP_800F4364 -/* 8D744 800F4294 0000902D */ daddu $s2, $zero, $zero -/* 8D748 800F4298 8FA80028 */ lw $t0, 0x28($sp) -/* 8D74C 800F429C 2513FFFF */ addiu $s3, $t0, -0x1 -/* 8D750 800F42A0 0253102A */ slt $v0, $s2, $s3 -.LJP_800F42A4: -/* 8D754 800F42A4 14400008 */ bnez $v0, .LJP_800F42C8 -/* 8D758 800F42A8 00000000 */ nop -/* 8D75C 800F42AC 3C028011 */ lui $v0, %hi(PopupMenu_DisplayedEntryCount) -/* 8D760 800F42B0 8042D816 */ lb $v0, %lo(PopupMenu_DisplayedEntryCount)($v0) -/* 8D764 800F42B4 8FA90028 */ lw $t1, 0x28($sp) -/* 8D768 800F42B8 01221021 */ addu $v0, $t1, $v0 -/* 8D76C 800F42BC 0052102A */ slt $v0, $v0, $s2 -/* 8D770 800F42C0 10400006 */ beqz $v0, .LJP_800F42DC -/* 8D774 800F42C4 00121880 */ sll $v1, $s2, 2 -.LJP_800F42C8: -/* 8D778 800F42C8 1640001F */ bnez $s2, .LJP_800F4348 -/* 8D77C 800F42CC 2631000D */ addiu $s1, $s1, 0xD -/* 8D780 800F42D0 8FA80024 */ lw $t0, 0x24($sp) -/* 8D784 800F42D4 0803D0D2 */ j .LJP_800F4348 -/* 8D788 800F42D8 02288821 */ addu $s1, $s1, $t0 -.LJP_800F42DC: -/* 8D78C 800F42DC 3C028011 */ lui $v0, %hi(gPopupMenu) -/* 8D790 800F42E0 8C42D85C */ lw $v0, %lo(gPopupMenu)($v0) -/* 8D794 800F42E4 3C108011 */ lui $s0, %hi(PopupMenu_EntryIconHEID) -/* 8D798 800F42E8 8E10D838 */ lw $s0, %lo(PopupMenu_EntryIconHEID)($s0) -/* 8D79C 800F42EC 00431021 */ addu $v0, $v0, $v1 -/* 8D7A0 800F42F0 8C450000 */ lw $a1, 0x0($v0) -/* 8D7A4 800F42F4 0C05262B */ jal hud_element_set_script -/* 8D7A8 800F42F8 0200202D */ daddu $a0, $s0, $zero -/* 8D7AC 800F42FC 0200202D */ daddu $a0, $s0, $zero -/* 8D7B0 800F4300 8FA50020 */ lw $a1, 0x20($sp) -/* 8D7B4 800F4304 0C05268D */ jal hud_element_set_render_pos -/* 8D7B8 800F4308 0220302D */ daddu $a2, $s1, $zero -/* 8D7BC 800F430C 0200202D */ daddu $a0, $s0, $zero -/* 8D7C0 800F4310 3C058011 */ lui $a1, %hi(PopupMenu_Alpha) -/* 8D7C4 800F4314 8CA5D810 */ lw $a1, %lo(PopupMenu_Alpha)($a1) -/* 8D7C8 800F4318 0C0527D8 */ jal hud_element_set_alpha -/* 8D7CC 800F431C 2631000D */ addiu $s1, $s1, 0xD -/* 8D7D0 800F4320 3C053EE6 */ lui $a1, (0x3EE66666 >> 16) -/* 8D7D4 800F4324 34A56666 */ ori $a1, $a1, (0x3EE66666 & 0xFFFF) -/* 8D7D8 800F4328 0C052734 */ jal hud_element_set_scale -/* 8D7DC 800F432C 0200202D */ daddu $a0, $s0, $zero -/* 8D7E0 800F4330 0C052624 */ jal hud_element_draw_without_clipping -/* 8D7E4 800F4334 0200202D */ daddu $a0, $s0, $zero -/* 8D7E8 800F4338 16400003 */ bnez $s2, .LJP_800F4348 -/* 8D7EC 800F433C 00000000 */ nop -/* 8D7F0 800F4340 8FA90024 */ lw $t1, 0x24($sp) -/* 8D7F4 800F4344 02298821 */ addu $s1, $s1, $t1 -.LJP_800F4348: -/* 8D7F8 800F4348 3C028011 */ lui $v0, %hi(gPopupMenu) -/* 8D7FC 800F434C 8C42D85C */ lw $v0, %lo(gPopupMenu)($v0) -/* 8D800 800F4350 8C420324 */ lw $v0, 0x324($v0) -/* 8D804 800F4354 26520001 */ addiu $s2, $s2, 0x1 -/* 8D808 800F4358 0242102A */ slt $v0, $s2, $v0 -/* 8D80C 800F435C 1440FFD1 */ bnez $v0, .LJP_800F42A4 -/* 8D810 800F4360 0253102A */ slt $v0, $s2, $s3 -.LJP_800F4364: -/* 8D814 800F4364 8FA8005C */ lw $t0, 0x5C($sp) -/* 8D818 800F4368 3C038011 */ lui $v1, %hi(PopupMenu_FirstDisplayIndex) -/* 8D81C 800F436C 8063D814 */ lb $v1, %lo(PopupMenu_FirstDisplayIndex)($v1) -/* 8D820 800F4370 3C048011 */ lui $a0, %hi(PopupMenu_SelectedIndex) -/* 8D824 800F4374 8C84D808 */ lw $a0, %lo(PopupMenu_SelectedIndex)($a0) -/* 8D828 800F4378 3C108011 */ lui $s0, %hi(PopupMenu_CursorHEID) -/* 8D82C 800F437C 8E10D82C */ lw $s0, %lo(PopupMenu_CursorHEID)($s0) -/* 8D830 800F4380 8FA90060 */ lw $t1, 0x60($sp) -/* 8D834 800F4384 25080008 */ addiu $t0, $t0, 0x8 -/* 8D838 800F4388 00831823 */ subu $v1, $a0, $v1 -/* 8D83C 800F438C 00031040 */ sll $v0, $v1, 1 -/* 8D840 800F4390 00431021 */ addu $v0, $v0, $v1 -/* 8D844 800F4394 00021080 */ sll $v0, $v0, 2 -/* 8D848 800F4398 00431021 */ addu $v0, $v0, $v1 -/* 8D84C 800F439C 24420009 */ addiu $v0, $v0, 0x9 -/* 8D850 800F43A0 3C038011 */ lui $v1, %hi(gPopupMenu) -/* 8D854 800F43A4 8C63D85C */ lw $v1, %lo(gPopupMenu)($v1) -/* 8D858 800F43A8 01228821 */ addu $s1, $t1, $v0 -/* 8D85C 800F43AC AFA80020 */ sw $t0, 0x20($sp) -/* 8D860 800F43B0 8C630318 */ lw $v1, 0x318($v1) -/* 8D864 800F43B4 24020002 */ addiu $v0, $zero, 0x2 -/* 8D868 800F43B8 54620004 */ bnel $v1, $v0, .LJP_800F43CC -/* 8D86C 800F43BC 0200202D */ daddu $a0, $s0, $zero -/* 8D870 800F43C0 50800001 */ beql $a0, $zero, .LJP_800F43C8 -/* 8D874 800F43C4 2631FFFE */ addiu $s1, $s1, -0x2 -.LJP_800F43C8: -/* 8D878 800F43C8 0200202D */ daddu $a0, $s0, $zero -.LJP_800F43CC: -/* 8D87C 800F43CC 8FA50020 */ lw $a1, 0x20($sp) -/* 8D880 800F43D0 0C05268D */ jal hud_element_set_render_pos -/* 8D884 800F43D4 0220302D */ daddu $a2, $s1, $zero -/* 8D888 800F43D8 3C058011 */ lui $a1, %hi(PopupMenu_Alpha) -/* 8D88C 800F43DC 8CA5D810 */ lw $a1, %lo(PopupMenu_Alpha)($a1) -/* 8D890 800F43E0 0C0527D8 */ jal hud_element_set_alpha -/* 8D894 800F43E4 0200202D */ daddu $a0, $s0, $zero -/* 8D898 800F43E8 0C052624 */ jal hud_element_draw_without_clipping -/* 8D89C 800F43EC 0200202D */ daddu $a0, $s0, $zero -/* 8D8A0 800F43F0 8FA8005C */ lw $t0, 0x5C($sp) -/* 8D8A4 800F43F4 8FA90060 */ lw $t1, 0x60($sp) -/* 8D8A8 800F43F8 3C038011 */ lui $v1, %hi(PopupMenu_DisplayedEntryCount) -/* 8D8AC 800F43FC 8063D816 */ lb $v1, %lo(PopupMenu_DisplayedEntryCount)($v1) -/* 8D8B0 800F4400 2531FFFA */ addiu $s1, $t1, -0x6 -/* 8D8B4 800F4404 00031040 */ sll $v0, $v1, 1 -/* 8D8B8 800F4408 00431021 */ addu $v0, $v0, $v1 -/* 8D8BC 800F440C 00021080 */ sll $v0, $v0, 2 -/* 8D8C0 800F4410 00431021 */ addu $v0, $v0, $v1 -/* 8D8C4 800F4414 3C038011 */ lui $v1, %hi(gPopupMenu) -/* 8D8C8 800F4418 8C63D85C */ lw $v1, %lo(gPopupMenu)($v1) -/* 8D8CC 800F441C 02221021 */ addu $v0, $s1, $v0 -/* 8D8D0 800F4420 AFA80020 */ sw $t0, 0x20($sp) -/* 8D8D4 800F4424 8C630318 */ lw $v1, 0x318($v1) -/* 8D8D8 800F4428 24460010 */ addiu $a2, $v0, 0x10 -/* 8D8DC 800F442C 2C62000E */ sltiu $v0, $v1, 0xE -/* 8D8E0 800F4430 1040004F */ beqz $v0, .LJP_800F4570 -/* 8D8E4 800F4434 00031080 */ sll $v0, $v1, 2 -/* 8D8E8 800F4438 3C018011 */ lui $at, %hi(jtbl_JP_8010C9F8) -/* 8D8EC 800F443C 00220821 */ addu $at, $at, $v0 -/* 8D8F0 800F4440 8C22C9F8 */ lw $v0, %lo(jtbl_JP_8010C9F8)($at) -/* 8D8F4 800F4444 00400008 */ jr $v0 -/* 8D8F8 800F4448 00000000 */ nop -.LJP_800F444C: -/* 8D8FC 800F444C 3C03800A */ lui $v1, %hi(gMainGfxPos) -/* 8D900 800F4450 2463A64C */ addiu $v1, $v1, %lo(gMainGfxPos) -/* 8D904 800F4454 C7A20020 */ lwc1 $f2, 0x20($sp) -/* 8D908 800F4458 468010A0 */ cvt.s.w $f2, $f2 -/* 8D90C 800F445C 44910000 */ mtc1 $s1, $f0 -/* 8D910 800F4460 00000000 */ nop -/* 8D914 800F4464 46800020 */ cvt.s.w $f0, $f0 -/* 8D918 800F4468 3C014080 */ lui $at, (0x40800000 >> 16) -/* 8D91C 800F446C 44812000 */ mtc1 $at, $f4 -/* 8D920 800F4470 8C620000 */ lw $v0, 0x0($v1) -/* 8D924 800F4474 46041082 */ mul.s $f2, $f2, $f4 -/* 8D928 800F4478 00000000 */ nop -/* 8D92C 800F447C 0040282D */ daddu $a1, $v0, $zero -/* 8D930 800F4480 24420008 */ addiu $v0, $v0, 0x8 -/* 8D934 800F4484 AC620000 */ sw $v0, 0x0($v1) -/* 8D938 800F4488 8FA90020 */ lw $t1, 0x20($sp) -/* 8D93C 800F448C 46040002 */ mul.s $f0, $f0, $f4 -/* 8D940 800F4490 00000000 */ nop -/* 8D944 800F4494 0803D13A */ j .LJP_800F44E8 -/* 8D948 800F4498 25220070 */ addiu $v0, $t1, 0x70 -.LJP_800F449C: -/* 8D94C 800F449C 3C03800A */ lui $v1, %hi(gMainGfxPos) -/* 8D950 800F44A0 2463A64C */ addiu $v1, $v1, %lo(gMainGfxPos) -/* 8D954 800F44A4 C7A20020 */ lwc1 $f2, 0x20($sp) -/* 8D958 800F44A8 468010A0 */ cvt.s.w $f2, $f2 -/* 8D95C 800F44AC 44910000 */ mtc1 $s1, $f0 -/* 8D960 800F44B0 00000000 */ nop -/* 8D964 800F44B4 46800020 */ cvt.s.w $f0, $f0 -/* 8D968 800F44B8 3C014080 */ lui $at, (0x40800000 >> 16) -/* 8D96C 800F44BC 44812000 */ mtc1 $at, $f4 -/* 8D970 800F44C0 8C620000 */ lw $v0, 0x0($v1) -/* 8D974 800F44C4 46041082 */ mul.s $f2, $f2, $f4 -/* 8D978 800F44C8 00000000 */ nop -/* 8D97C 800F44CC 0040282D */ daddu $a1, $v0, $zero -/* 8D980 800F44D0 24420008 */ addiu $v0, $v0, 0x8 -/* 8D984 800F44D4 AC620000 */ sw $v0, 0x0($v1) -/* 8D988 800F44D8 8FA90020 */ lw $t1, 0x20($sp) -/* 8D98C 800F44DC 46040002 */ mul.s $f0, $f0, $f4 -/* 8D990 800F44E0 00000000 */ nop -/* 8D994 800F44E4 25220050 */ addiu $v0, $t1, 0x50 -.LJP_800F44E8: -/* 8D998 800F44E8 4600118D */ trunc.w.s $f6, $f2 -/* 8D99C 800F44EC 44033000 */ mfc1 $v1, $f6 -/* 8D9A0 800F44F0 00000000 */ nop -/* 8D9A4 800F44F4 30630FFF */ andi $v1, $v1, 0xFFF -/* 8D9A8 800F44F8 00031B00 */ sll $v1, $v1, 12 -/* 8D9AC 800F44FC 4600018D */ trunc.w.s $f6, $f0 -/* 8D9B0 800F4500 44043000 */ mfc1 $a0, $f6 -/* 8D9B4 800F4504 00000000 */ nop -/* 8D9B8 800F4508 30840FFF */ andi $a0, $a0, 0xFFF -/* 8D9BC 800F450C 44821000 */ mtc1 $v0, $f2 -/* 8D9C0 800F4510 00000000 */ nop -/* 8D9C4 800F4514 468010A0 */ cvt.s.w $f2, $f2 -/* 8D9C8 800F4518 46041082 */ mul.s $f2, $f2, $f4 -/* 8D9CC 800F451C 00000000 */ nop -/* 8D9D0 800F4520 3C02ED00 */ lui $v0, (0xED000000 >> 16) -/* 8D9D4 800F4524 00822025 */ or $a0, $a0, $v0 -/* 8D9D8 800F4528 00641825 */ or $v1, $v1, $a0 -/* 8D9DC 800F452C 44860000 */ mtc1 $a2, $f0 -/* 8D9E0 800F4530 00000000 */ nop -/* 8D9E4 800F4534 46800020 */ cvt.s.w $f0, $f0 -/* 8D9E8 800F4538 46040002 */ mul.s $f0, $f0, $f4 -/* 8D9EC 800F453C 00000000 */ nop -/* 8D9F0 800F4540 ACA30000 */ sw $v1, 0x0($a1) -/* 8D9F4 800F4544 4600118D */ trunc.w.s $f6, $f2 -/* 8D9F8 800F4548 44023000 */ mfc1 $v0, $f6 -/* 8D9FC 800F454C 00000000 */ nop -/* 8DA00 800F4550 30420FFF */ andi $v0, $v0, 0xFFF -/* 8DA04 800F4554 00021300 */ sll $v0, $v0, 12 -/* 8DA08 800F4558 4600018D */ trunc.w.s $f6, $f0 -/* 8DA0C 800F455C 44033000 */ mfc1 $v1, $f6 -/* 8DA10 800F4560 00000000 */ nop -/* 8DA14 800F4564 30630FFF */ andi $v1, $v1, 0xFFF -/* 8DA18 800F4568 00431025 */ or $v0, $v0, $v1 -/* 8DA1C 800F456C ACA20004 */ sw $v0, 0x4($a1) -.LJP_800F4570: -/* 8DA20 800F4570 3C028011 */ lui $v0, %hi(gPopupMenu) -/* 8DA24 800F4574 8C42D85C */ lw $v0, %lo(gPopupMenu)($v0) -/* 8DA28 800F4578 8C420318 */ lw $v0, 0x318($v0) -/* 8DA2C 800F457C 2443FFFF */ addiu $v1, $v0, -0x1 -/* 8DA30 800F4580 2C62000D */ sltiu $v0, $v1, 0xD -/* 8DA34 800F4584 1040000F */ beqz $v0, .LJP_800F45C4 -/* 8DA38 800F4588 00031080 */ sll $v0, $v1, 2 -/* 8DA3C 800F458C 3C018011 */ lui $at, %hi(jtbl_JP_8010CA30) -/* 8DA40 800F4590 00220821 */ addu $at, $at, $v0 -/* 8DA44 800F4594 8C22CA30 */ lw $v0, %lo(jtbl_JP_8010CA30)($at) -/* 8DA48 800F4598 00400008 */ jr $v0 -/* 8DA4C 800F459C 00000000 */ nop -.LJP_800F45A0: -/* 8DA50 800F45A0 0803D17A */ j .LJP_800F45E8 -/* 8DA54 800F45A4 2409001F */ addiu $t1, $zero, 0x1F -.LJP_800F45A8: -/* 8DA58 800F45A8 24080020 */ addiu $t0, $zero, 0x20 -/* 8DA5C 800F45AC 0803D17B */ j .LJP_800F45EC -/* 8DA60 800F45B0 AFA80024 */ sw $t0, 0x24($sp) -.LJP_800F45B4: -/* 8DA64 800F45B4 0803D17A */ j .LJP_800F45E8 -/* 8DA68 800F45B8 2409001F */ addiu $t1, $zero, 0x1F -.LJP_800F45BC: -/* 8DA6C 800F45BC 0803D17A */ j .LJP_800F45E8 -/* 8DA70 800F45C0 2409001F */ addiu $t1, $zero, 0x1F -.LJP_800F45C4: -/* 8DA74 800F45C4 2408001F */ addiu $t0, $zero, 0x1F -/* 8DA78 800F45C8 0803D17B */ j .LJP_800F45EC -/* 8DA7C 800F45CC AFA80024 */ sw $t0, 0x24($sp) -.LJP_800F45D0: -/* 8DA80 800F45D0 0803D17A */ j .LJP_800F45E8 -/* 8DA84 800F45D4 2409000D */ addiu $t1, $zero, 0xD -.LJP_800F45D8: -/* 8DA88 800F45D8 24080015 */ addiu $t0, $zero, 0x15 -/* 8DA8C 800F45DC 0803D17B */ j .LJP_800F45EC -/* 8DA90 800F45E0 AFA80024 */ sw $t0, 0x24($sp) -.LJP_800F45E4: -/* 8DA94 800F45E4 2409000E */ addiu $t1, $zero, 0xE -.LJP_800F45E8: -/* 8DA98 800F45E8 AFA90024 */ sw $t1, 0x24($sp) -.LJP_800F45EC: -/* 8DA9C 800F45EC 3C028011 */ lui $v0, %hi(PopupMenu_FirstDisplayIndex) -/* 8DAA0 800F45F0 8042D814 */ lb $v0, %lo(PopupMenu_FirstDisplayIndex)($v0) -/* 8DAA4 800F45F4 18400012 */ blez $v0, .LJP_800F4640 -/* 8DAA8 800F45F8 00000000 */ nop -/* 8DAAC 800F45FC 8FA8005C */ lw $t0, 0x5C($sp) -/* 8DAB0 800F4600 8FA90024 */ lw $t1, 0x24($sp) -/* 8DAB4 800F4604 3C108011 */ lui $s0, %hi(PopupMenu_UpArrowHEID) -/* 8DAB8 800F4608 8E10D830 */ lw $s0, %lo(PopupMenu_UpArrowHEID)($s0) -/* 8DABC 800F460C 01094021 */ addu $t0, $t0, $t1 -/* 8DAC0 800F4610 AFA80020 */ sw $t0, 0x20($sp) -/* 8DAC4 800F4614 25050023 */ addiu $a1, $t0, 0x23 -/* 8DAC8 800F4618 8FA80060 */ lw $t0, 0x60($sp) -/* 8DACC 800F461C 0200202D */ daddu $a0, $s0, $zero -/* 8DAD0 800F4620 0C05268D */ jal hud_element_set_render_pos -/* 8DAD4 800F4624 2506FFFF */ addiu $a2, $t0, -0x1 -/* 8DAD8 800F4628 3C058011 */ lui $a1, %hi(PopupMenu_Alpha) -/* 8DADC 800F462C 8CA5D810 */ lw $a1, %lo(PopupMenu_Alpha)($a1) -/* 8DAE0 800F4630 0C0527D8 */ jal hud_element_set_alpha -/* 8DAE4 800F4634 0200202D */ daddu $a0, $s0, $zero -/* 8DAE8 800F4638 0C052624 */ jal hud_element_draw_without_clipping -/* 8DAEC 800F463C 0200202D */ daddu $a0, $s0, $zero -.LJP_800F4640: -/* 8DAF0 800F4640 3C028011 */ lui $v0, %hi(gPopupMenu) -/* 8DAF4 800F4644 8C42D85C */ lw $v0, %lo(gPopupMenu)($v0) -/* 8DAF8 800F4648 3C038011 */ lui $v1, %hi(PopupMenu_LastDisplayIndex) -/* 8DAFC 800F464C 8063D815 */ lb $v1, %lo(PopupMenu_LastDisplayIndex)($v1) -/* 8DB00 800F4650 8C420324 */ lw $v0, 0x324($v0) -/* 8DB04 800F4654 0062182A */ slt $v1, $v1, $v0 -/* 8DB08 800F4658 10600019 */ beqz $v1, .LJP_800F46C0 -/* 8DB0C 800F465C 00000000 */ nop -/* 8DB10 800F4660 8FA9005C */ lw $t1, 0x5C($sp) -/* 8DB14 800F4664 8FA80024 */ lw $t0, 0x24($sp) -/* 8DB18 800F4668 3C038011 */ lui $v1, %hi(PopupMenu_MaxDisplayableEntryCount) -/* 8DB1C 800F466C 8063D84F */ lb $v1, %lo(PopupMenu_MaxDisplayableEntryCount)($v1) -/* 8DB20 800F4670 3C108011 */ lui $s0, %hi(PopupMenu_DownArrowHEID) -/* 8DB24 800F4674 8E10D834 */ lw $s0, %lo(PopupMenu_DownArrowHEID)($s0) -/* 8DB28 800F4678 01284821 */ addu $t1, $t1, $t0 -/* 8DB2C 800F467C AFA90020 */ sw $t1, 0x20($sp) -/* 8DB30 800F4680 25250023 */ addiu $a1, $t1, 0x23 -/* 8DB34 800F4684 00031040 */ sll $v0, $v1, 1 -/* 8DB38 800F4688 00431021 */ addu $v0, $v0, $v1 -/* 8DB3C 800F468C 00021080 */ sll $v0, $v0, 2 -/* 8DB40 800F4690 00431021 */ addu $v0, $v0, $v1 -/* 8DB44 800F4694 8FA90060 */ lw $t1, 0x60($sp) -/* 8DB48 800F4698 0200202D */ daddu $a0, $s0, $zero -/* 8DB4C 800F469C 01228821 */ addu $s1, $t1, $v0 -/* 8DB50 800F46A0 0C05268D */ jal hud_element_set_render_pos -/* 8DB54 800F46A4 26260005 */ addiu $a2, $s1, 0x5 -/* 8DB58 800F46A8 3C058011 */ lui $a1, %hi(PopupMenu_Alpha) -/* 8DB5C 800F46AC 8CA5D810 */ lw $a1, %lo(PopupMenu_Alpha)($a1) -/* 8DB60 800F46B0 0C0527D8 */ jal hud_element_set_alpha -/* 8DB64 800F46B4 0200202D */ daddu $a0, $s0, $zero -/* 8DB68 800F46B8 0C052624 */ jal hud_element_draw_without_clipping -/* 8DB6C 800F46BC 0200202D */ daddu $a0, $s0, $zero -.LJP_800F46C0: -/* 8DB70 800F46C0 8FBF0054 */ lw $ra, 0x54($sp) -/* 8DB74 800F46C4 8FBE0050 */ lw $fp, 0x50($sp) -/* 8DB78 800F46C8 8FB7004C */ lw $s7, 0x4C($sp) -/* 8DB7C 800F46CC 8FB60048 */ lw $s6, 0x48($sp) -/* 8DB80 800F46D0 8FB50044 */ lw $s5, 0x44($sp) -/* 8DB84 800F46D4 8FB40040 */ lw $s4, 0x40($sp) -/* 8DB88 800F46D8 8FB3003C */ lw $s3, 0x3C($sp) -/* 8DB8C 800F46DC 8FB20038 */ lw $s2, 0x38($sp) -/* 8DB90 800F46E0 8FB10034 */ lw $s1, 0x34($sp) -/* 8DB94 800F46E4 8FB00030 */ lw $s0, 0x30($sp) -/* 8DB98 800F46E8 03E00008 */ jr $ra -/* 8DB9C 800F46EC 27BD0058 */ addiu $sp, $sp, 0x58 -.size popup_menu_draw_menu_contents, . - popup_menu_draw_menu_contents From cb1b5b9ff81e921dd9c3abcd73eca9068f6fa202 Mon Sep 17 00:00:00 2001 From: AltoXorg <56553686+Alto1772@users.noreply.github.com> Date: Mon, 15 Jan 2024 00:32:27 +0800 Subject: [PATCH 15/18] appendGfx_message --- src/8a860_len_3f30.c | 1 - src/msg_draw.c | 165 +- ver/jp/asm/bss3.s | 5 +- .../nonmatchings/msg_draw/appendGfx_message.s | 4885 ----------------- 4 files changed, 114 insertions(+), 4942 deletions(-) delete mode 100644 ver/jp/asm/nonmatchings/msg_draw/appendGfx_message.s diff --git a/src/8a860_len_3f30.c b/src/8a860_len_3f30.c index 5a93f912529..b6d3ae99ae4 100644 --- a/src/8a860_len_3f30.c +++ b/src/8a860_len_3f30.c @@ -1746,7 +1746,6 @@ void popup_menu_draw_menu_contents(s32* userData, s32 baseX, s32 baseY, s32 widt switch (gPopupMenu->popupType) { #if VERSION_JP - case POPUP_MENU_TRADE_FOR_BADGE: offset = 31; break; diff --git a/src/msg_draw.c b/src/msg_draw.c index 467db999d21..054fe8e34f3 100644 --- a/src/msg_draw.c +++ b/src/msg_draw.c @@ -3,20 +3,8 @@ #include "message_ids.h" #include "sprite.h" -#if !VERSION_JP // TODO remove when charset data is split #include "charset/postcard.png.h" #include "charset/letter_content_1.png.h" -#endif - -#if VERSION_JP // TODO remove when charset data is split -extern Addr charset_postcard_pal_OFFSET; -extern Addr charset_postcard_OFFSET; - -#define charset_postcard_png_width 150 -#define charset_postcard_png_height 105 -#define charset_letter_content_1_png_width 70 -#define charset_letter_content_1_png_height 95 -#endif extern IMG_BIN ui_msg_bubble_left_png[]; extern IMG_BIN ui_msg_bubble_mid_png[]; @@ -204,7 +192,41 @@ void draw_message_window(MessagePrintState* printer) { } } -#if VERSION_IQUE || VERSION_PAL || VERSION_JP +#if VERSION_JP +#define MSG_NORMAL_WIDTH 192 +#define MSG_NORMAL_X 32 +#define MSG_NORMAL_WIN_WIDTH 256 +#define MSG_NORMAL_WIN_HEIGHT 64 +#define MSG_NORMAL_TEXT_Y 8 +#define MSG_NORMAL_ARROW_X 253 +#define MSG_NORMAL_ARROW_Y 56 +#define MSG_NORMAL_HEIGHT_CAP 64 +#define MSG_NORMAL_PAGE_HT 16 +#define MSG_INSPECT_TEXT_Y 5 +#define MSG_SIGN_TEXT_Y 13 +#define MSG_SIGN_WIDTH 240 +#define MSG_SIGN_OFFSET_X 20 +#define MSG_POPUP_TEXT_Y 8 +#define MSG_EPILOGUE_TEXT_Y 0 +#else +#define MSG_NORMAL_WIDTH 218 +#define MSG_NORMAL_X 22 +#define MSG_NORMAL_WIN_WIDTH 296 +#define MSG_NORMAL_WIN_HEIGHT 68 +#define MSG_NORMAL_TEXT_Y 6 +#define MSG_NORMAL_ARROW_X 276 +#define MSG_NORMAL_ARROW_Y 57 +#define MSG_NORMAL_HEIGHT_CAP 68 +#define MSG_NORMAL_PAGE_HT 14 +#define MSG_INSPECT_TEXT_Y 3 +#define MSG_SIGN_TEXT_Y 11 +#define MSG_SIGN_WIDTH 280 +#define MSG_SIGN_OFFSET_X 0 +#define MSG_POPUP_TEXT_Y 4 +#define MSG_EPILOGUE_TEXT_Y -2 +#endif + +#if VERSION_IQUE || VERSION_PAL INCLUDE_ASM(s32, "msg_draw", appendGfx_message); #else void appendGfx_message(MessagePrintState* printer, s16 posX, s16 posY, u16 additionalOffsetX, u16 additionalOffsetY, @@ -289,6 +311,12 @@ void appendGfx_message(MessagePrintState* printer, s16 posX, s16 posY, u16 addit f32 z2; f32 temp1; f32 temp2; +#if VERSION_JP + u8 rasterOffsetY; +#else + s8 rasterOffsetY; +#endif + s16 baseOffsetY; msg_drawState = &D_80155D20; msg_drawState->printBuffer = printer->printBuffer; @@ -343,8 +371,11 @@ void appendGfx_message(MessagePrintState* printer, s16 posX, s16 posY, u16 addit switch (msg_drawState->printBuffer[msg_drawState->drawBufferPos]) { case MSG_CHAR_PRINT_ENDL: msg_drawState->nextPos[0] = 0; - msg_drawState->nextPos[1] += (s32)((msg_drawState->msgScale.y * MsgCharsets[msg_drawState->font]->newLineY) + - MsgStyleVerticalLineOffsets[printer->style]); + msg_drawState->nextPos[1] += (s32)((msg_drawState->msgScale.y * MsgCharsets[msg_drawState->font]->newLineY) +#if !VERSION_JP + + MsgStyleVerticalLineOffsets[printer->style] +#endif + ); if (msg_drawState->printModeFlags & MSG_PRINT_FLAG_40) { msg_drawState->printModeFlags |= MSG_PRINT_FLAG_80; } @@ -386,20 +417,35 @@ void appendGfx_message(MessagePrintState* printer, s16 posX, s16 posY, u16 addit msg_drawState->printModeFlags |= MSG_PRINT_FLAG_10; if (printer->style == MSG_STYLE_RIGHT || printer->style == MSG_STYLE_LEFT || printer->style == MSG_STYLE_CENTER) { - straightWidth = 218; - printer->windowBasePos.x = 22; + straightWidth = MSG_NORMAL_WIDTH; + printer->windowBasePos.x = MSG_NORMAL_X; printer->windowBasePos.y = 13; - printer->windowSize.x = 296; - printer->windowSize.y = 68; + printer->windowSize.x = MSG_NORMAL_WIN_WIDTH; + printer->windowSize.y = MSG_NORMAL_WIN_HEIGHT; msg_drawState->textStartPos[0] = 26; - msg_drawState->textStartPos[1] = 6; - printer->rewindArrowPos.x = 276; - printer->rewindArrowPos.y = 57; + msg_drawState->textStartPos[1] = MSG_NORMAL_TEXT_Y; + printer->rewindArrowPos.x = MSG_NORMAL_ARROW_X; + printer->rewindArrowPos.y = MSG_NORMAL_ARROW_Y; curveWidth = 32; - height = 68; + height = MSG_NORMAL_HEIGHT_CAP; } else { straightWidth = 218; +#if VERSION_JP + if (printer->maxLinesPerPage == 1) { + msg_drawState->textStartPos[0] = 18; + msg_drawState->textStartPos[1] = 10; + curveWidth = 24; + } else if (printer->maxLinesPerPage == 2) { + msg_drawState->textStartPos[0] = 22; + msg_drawState->textStartPos[1] = 8; + curveWidth = 28; + } else { + msg_drawState->textStartPos[0] = 26; + msg_drawState->textStartPos[1] = 8; + curveWidth = 32; + } +#else switch (printer->maxLinesPerPage) { case 1: msg_drawState->textStartPos[0] = 18; @@ -422,6 +468,7 @@ void appendGfx_message(MessagePrintState* printer, s16 posX, s16 posY, u16 addit curveWidth = 32; break; } +#endif straightWidth = printer->msgWidth; if (straightWidth > 256) { @@ -434,9 +481,9 @@ void appendGfx_message(MessagePrintState* printer, s16 posX, s16 posY, u16 addit printer->windowSize.x = straightWidth + (curveWidth * 2); - height = (printer->maxLinesPerPage * 14) + 16; - if (height > 68) { - height = 68; + height = (printer->maxLinesPerPage * MSG_NORMAL_PAGE_HT) + 16; + if (height > MSG_NORMAL_HEIGHT_CAP) { + height = MSG_NORMAL_HEIGHT_CAP; } if (height < 36) { height = 36; @@ -597,7 +644,7 @@ void appendGfx_message(MessagePrintState* printer, s16 posX, s16 posY, u16 addit case MSG_STYLE_F: fading = 0; msg_drawState->textStartPos[0] = 16; - msg_drawState->textStartPos[1] = 3; + msg_drawState->textStartPos[1] = MSG_INSPECT_TEXT_Y; msg_drawState->clipX[0] = printer->windowBasePos.x + 5; msg_drawState->clipY[0] = printer->windowBasePos.y + 4; msg_drawState->clipX[1] = printer->windowBasePos.x + printer->windowSize.x - 8; @@ -639,10 +686,10 @@ void appendGfx_message(MessagePrintState* printer, s16 posX, s16 posY, u16 addit case MSG_STYLE_SIGN: case MSG_STYLE_LAMPPOST: msg_drawState->textStartPos[0] = 18; - msg_drawState->textStartPos[1] = 11; - printer->windowBasePos.x = 20; + msg_drawState->textStartPos[1] = MSG_SIGN_TEXT_Y; + printer->windowBasePos.x = 20 + MSG_SIGN_OFFSET_X; printer->windowBasePos.y = 28; - printer->windowSize.x = 280; + printer->windowSize.x = MSG_SIGN_WIDTH; msg_drawState->framePalette = 15; temp_s1_5 = 0xFF; if (printer->style == MSG_STYLE_SIGN) { @@ -655,9 +702,9 @@ void appendGfx_message(MessagePrintState* printer, s16 posX, s16 posY, u16 addit msg_drawState->textColor = MSG_PAL_1C; signPalette = ui_msg_lamppost_pal; } - msg_drawState->clipX[0] = 34; + msg_drawState->clipX[0] = 20 + MSG_SIGN_OFFSET_X + 14; msg_drawState->clipY[0] = 40; - msg_drawState->clipX[1] = 283; + msg_drawState->clipX[1] = 283 - MSG_SIGN_OFFSET_X; msg_drawState->clipY[1] = printer->windowSize.y + 17; printer->rewindArrowPos.x = msg_drawState->clipX[1] - 16; printer->rewindArrowPos.y = msg_drawState->clipY[1] - 9; @@ -680,30 +727,34 @@ void appendGfx_message(MessagePrintState* printer, s16 posX, s16 posY, u16 addit } } spAE = (u8)temp_s1_5; - draw_ci_image_with_clipping(ui_msg_sign_corner_topleft_png, 16, 16, G_IM_FMT_CI, G_IM_SIZ_4b, signPalette, 20, 28, 10, 10, 310, 230, temp_s1_5); - draw_ci_image_with_clipping(ui_msg_sign_corner_topright_png, 16, 16, G_IM_FMT_CI, G_IM_SIZ_4b, signPalette, 284, 28, 10, 10, 310, 230, temp_s1_5); - draw_ci_image_with_clipping(ui_msg_sign_corner_bottomleft_png, 16, 16, G_IM_FMT_CI, G_IM_SIZ_4b, signPalette, 20, printer->windowSize.y + 12, 10, 10, 310, 230, - temp_s1_5); - draw_ci_image_with_clipping(signRaster, 16, 16, G_IM_FMT_CI, G_IM_SIZ_4b, signPalette, 284, printer->windowSize.y + 12, 10, 10, 310, 230, temp_s1_5); + draw_ci_image_with_clipping(ui_msg_sign_corner_topleft_png, 16, 16, G_IM_FMT_CI, G_IM_SIZ_4b, signPalette, 20 + MSG_SIGN_OFFSET_X, + 28, 10, 10, 310, 230, temp_s1_5); + draw_ci_image_with_clipping(ui_msg_sign_corner_topright_png, 16, 16, G_IM_FMT_CI, G_IM_SIZ_4b, signPalette, 284 - MSG_SIGN_OFFSET_X, + 28, 10, 10, 310, 230, temp_s1_5); + draw_ci_image_with_clipping(ui_msg_sign_corner_bottomleft_png, 16, 16, G_IM_FMT_CI, G_IM_SIZ_4b, signPalette, 20 + MSG_SIGN_OFFSET_X, + printer->windowSize.y + 12, 10, 10, 310, 230, temp_s1_5); + draw_ci_image_with_clipping(signRaster, 16, 16, G_IM_FMT_CI, G_IM_SIZ_4b, signPalette, 284 - MSG_SIGN_OFFSET_X, printer->windowSize.y + 12, + 10, 10, 310, 230, temp_s1_5); gDPLoadTextureTile_4b(gMainGfxPos++, ui_msg_sign_side_top_png, G_IM_FMT_CI, 32, 0, 0, 0, 31, 15, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, 5, 4, G_TX_NOLOD, G_TX_NOLOD); - gSPTextureRectangle(gMainGfxPos++, 0x0090, 0x0070, 0x0470, 0x00B0, G_TX_RENDERTILE, 0, 0, 0x0400, 0x0400); + gSPTextureRectangle(gMainGfxPos++, (36 + MSG_SIGN_OFFSET_X) * 4, 28 * 4, (284 - MSG_SIGN_OFFSET_X) * 4, 44 * 4, G_TX_RENDERTILE, 0, 0, + 0x0400, 0x0400); gDPLoadTextureTile_4b(gMainGfxPos++, ui_msg_sign_side_left_png, G_IM_FMT_CI, 16, 0, 0, 0, 15, 31, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, 4, 5, G_TX_NOLOD, G_TX_NOLOD); - gSPTextureRectangle(gMainGfxPos++, 0x0050, 0x00B0, 0x0090, (printer->windowSize.y + 12) * 4, G_TX_RENDERTILE, 0, 0, - 0x0400, 0x0400); + gSPTextureRectangle(gMainGfxPos++, (20 + MSG_SIGN_OFFSET_X) * 4, 44 * 4, (36 + MSG_SIGN_OFFSET_X) * 4, (printer->windowSize.y + 12) * 4, + G_TX_RENDERTILE, 0, 0, 0x0400, 0x0400); gDPLoadTextureTile_4b(gMainGfxPos++, ui_msg_sign_side_right_png, G_IM_FMT_CI, 16, 0, 0, 0, 15, 31, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, 4, 5, G_TX_NOLOD, G_TX_NOLOD); - gSPTextureRectangle(gMainGfxPos++, 0x0470, 0x00B0, 0x04B0, (printer->windowSize.y + 12) * 4, G_TX_RENDERTILE, 0, 0, - 0x0400, 0x0400); + gSPTextureRectangle(gMainGfxPos++, (284 - MSG_SIGN_OFFSET_X) * 4, 44 * 4, (300 - MSG_SIGN_OFFSET_X) * 4, (printer->windowSize.y + 12) * 4, + G_TX_RENDERTILE, 0, 0, 0x0400, 0x0400); gDPLoadTextureTile_4b(gMainGfxPos++, ui_msg_sign_side_bottom_png, G_IM_FMT_CI, 32, 0, 0, 0, 31, 15, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, 5, 4, G_TX_NOLOD, G_TX_NOLOD); - gSPTextureRectangle(gMainGfxPos++, 0x0090, (printer->windowSize.y + 12) * 4, 0x0470, (printer->windowSize.y + 28) * 4, - G_TX_RENDERTILE, 0, 0, 0x0400, 0x0400); + gSPTextureRectangle(gMainGfxPos++, (36 + MSG_SIGN_OFFSET_X) * 4, (printer->windowSize.y + 12) * 4, (284 - MSG_SIGN_OFFSET_X) * 4, + (printer->windowSize.y + 28) * 4, G_TX_RENDERTILE, 0, 0, 0x0400, 0x0400); gDPLoadTextureTile_4b(gMainGfxPos++, ui_msg_sign_fill_png, G_IM_FMT_CI, 8, 0, 0, 0, 7, 7, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, 3, 3, G_TX_NOLOD, G_TX_NOLOD); - gSPTextureRectangle(gMainGfxPos++, 0x0090, 0x00B0, 0x0470, (printer->windowSize.y + 12) * 4, G_TX_RENDERTILE, 0, 0, - 0x0400, 0x0400); + gSPTextureRectangle(gMainGfxPos++, (36 + MSG_SIGN_OFFSET_X) * 4, 44 * 4, (283 - MSG_SIGN_OFFSET_X + 1) * 4, (printer->windowSize.y + 12) * 4, + G_TX_RENDERTILE, 0, 0, 0x0400, 0x0400); msg_reset_gfx_state(); msg_drawState->drawBufferPos += 2; break; @@ -753,7 +804,7 @@ void appendGfx_message(MessagePrintState* printer, s16 posX, s16 posY, u16 addit case MSG_STYLE_POPUP: case MSG_STYLE_B: msg_drawState->textStartPos[0] = 16; - msg_drawState->textStartPos[1] = 4; + msg_drawState->textStartPos[1] = MSG_POPUP_TEXT_Y; msg_drawState->clipX[0] = 0; msg_drawState->clipX[1] = SCREEN_WIDTH - 1; msg_drawState->clipY[0] = 0; @@ -779,7 +830,7 @@ void appendGfx_message(MessagePrintState* printer, s16 posX, s16 posY, u16 addit printer->windowSize.x = 200; printer->windowSize.y = 50; msg_drawState->textStartPos[0] = 0; - msg_drawState->textStartPos[1] = -2; + msg_drawState->textStartPos[1] = MSG_EPILOGUE_TEXT_Y; msg_drawState->clipX[0] = printer->windowBasePos.x; msg_drawState->clipY[0] = printer->windowBasePos.y; msg_drawState->clipX[1] = printer->windowBasePos.x + printer->windowSize.x; @@ -1206,23 +1257,27 @@ void appendGfx_message(MessagePrintState* printer, s16 posX, s16 posY, u16 addit msg_drawState->printModeFlags &= ~MSG_PRINT_FLAG_80; } if (msg_drawState->printModeFlags & MSG_PRINT_FLAG_40) { - charPosX = (u16) msg_drawState->nextPos[0] + ((u16) printer->windowBasePos.x + (u16) posX); + charPosX = msg_drawState->nextPos[0] + (printer->windowBasePos.x + posX); } else { - charPosX = (u16) msg_drawState->nextPos[0] + ((u16) msg_drawState->textStartPos[0] + ((u16) printer->windowBasePos.x + - (u16) posX)); + charPosX = msg_drawState->nextPos[0] + (msg_drawState->textStartPos[0] + (printer->windowBasePos.x + + posX)); } + baseOffsetY = msg_drawState->nextPos[1] + (msg_drawState->textStartPos[1] + (printer->windowBasePos.y + posY)); msgCharset = MsgCharsets[msg_drawState->font]; - charPosY = (s8) msgCharset->rasters[msg_drawState->fontVariant].baseHeightOffset + (msg_drawState->nextPos[1] + - (msg_drawState->textStartPos[1] + (printer->windowBasePos.y + posY)) - additionalOffsetY); + rasterOffsetY = msgCharset->rasters[msg_drawState->fontVariant].baseHeightOffset; + charPosY = rasterOffsetY + (baseOffsetY - additionalOffsetY); if ((sp8E != 0) && (charPosX < msg_drawState->clipX[1]) && (charPosY < msg_drawState->clipY[1]) && (msg_drawState->clipX[0] < charPosX + (s32)(msg_drawState->msgScale.x * msgCharset->rasters[msg_drawState->fontVariant].monospaceWidth)) && - (msg_drawState->clipY[0] < charPosY + (s32)(msg_drawState->msgScale.y * msgCharset->newLineY + - MsgStyleVerticalLineOffsets[printer->style]))) { + (msg_drawState->clipY[0] < charPosY + (s32)(msg_drawState->msgScale.y * msgCharset->newLineY +#if !VERSION_JP + + MsgStyleVerticalLineOffsets[printer->style] +#endif + ))) { palette = msg_drawState->textColor; phi_s2_5 = sp8E; if (msg_drawState->effectFlags & MSG_FX_FLAG_BLUR) { diff --git a/ver/jp/asm/bss3.s b/ver/jp/asm/bss3.s index 30de974f3f8..88b09882872 100644 --- a/ver/jp/asm/bss3.s +++ b/ver/jp/asm/bss3.s @@ -413,11 +413,14 @@ dlabel D_80155C98 dlabel gMessageWindowProjMatrix .space 0x00000080 +dlabel D_JP_8015AC98_pad +.space 8 + dlabel D_80155D20 .space 4 dlabel D_8015DD24 -.space 0x00000058 +.space 0x00000050 dlabel msg_drawState .space 4 diff --git a/ver/jp/asm/nonmatchings/msg_draw/appendGfx_message.s b/ver/jp/asm/nonmatchings/msg_draw/appendGfx_message.s deleted file mode 100644 index 1fc7cc39df8..00000000000 --- a/ver/jp/asm/nonmatchings/msg_draw/appendGfx_message.s +++ /dev/null @@ -1,4885 +0,0 @@ -.set noat /* allow manual use of $at */ -.set noreorder /* don't insert nops after branches */ - -.section .rodata -.align 3 -dlabel jtbl_JP_80155790 -/* EA620 80155790 8012D1CC */ .word .LJP_8012D1CC -/* EA624 80155794 8012D238 */ .word .LJP_8012D238 -/* EA628 80155798 8012D238 */ .word .LJP_8012D238 -/* EA62C 8015579C 8012D238 */ .word .LJP_8012D238 -/* EA630 801557A0 8012D238 */ .word .LJP_8012D238 -/* EA634 801557A4 8012D264 */ .word .LJP_8012D264 -/* EA638 801557A8 8012D264 */ .word .LJP_8012D264 -/* EA63C 801557AC 8012D264 */ .word .LJP_8012D264 -/* EA640 801557B0 8012D29C */ .word .LJP_8012D29C -/* EA644 801557B4 8012F868 */ .word .LJP_8012F868 -/* EA648 801557B8 8012EC80 */ .word .LJP_8012EC80 -/* EA64C 801557BC 8012ED9C */ .word .LJP_8012ED9C -/* EA650 801557C0 8012FD00 */ .word .LJP_8012FD00 -/* EA654 801557C4 8012FD00 */ .word .LJP_8012FD00 -/* EA658 801557C8 8012FD00 */ .word .LJP_8012FD00 -/* EA65C 801557CC 8012EDA8 */ .word .LJP_8012EDA8 -.size jtbl_JP_80155790, . - jtbl_JP_80155790 - -.align 3 -dlabel jtbl_JP_801557D0 -/* EA660 801557D0 8012D2D8 */ .word .LJP_8012D2D8 -/* EA664 801557D4 8012D2D8 */ .word .LJP_8012D2D8 -/* EA668 801557D8 8012D2D8 */ .word .LJP_8012D2D8 -/* EA66C 801557DC 8012D2D8 */ .word .LJP_8012D2D8 -/* EA670 801557E0 8012DB24 */ .word .LJP_8012DB24 -/* EA674 801557E4 8012DED0 */ .word .LJP_8012DED0 -/* EA678 801557E8 8012E0DC */ .word .LJP_8012E0DC -/* EA67C 801557EC 8012E0DC */ .word .LJP_8012E0DC -/* EA680 801557F0 8012E894 */ .word .LJP_8012E894 -/* EA684 801557F4 8012EB00 */ .word .LJP_8012EB00 -/* EA688 801557F8 8012EB00 */ .word .LJP_8012EB00 -/* EA68C 801557FC 8012DED0 */ .word .LJP_8012DED0 -/* EA690 80155800 8012DED0 */ .word .LJP_8012DED0 -/* EA694 80155804 8012EBE8 */ .word .LJP_8012EBE8 -/* EA698 80155808 8012DED0 */ .word .LJP_8012DED0 -/* EA69C 8015580C 00000000 */ .word 0x00000000 -.size jtbl_JP_801557D0, . - jtbl_JP_801557D0 - -dlabel D_JP_80155810 -/* EA6A0 80155810 3FD6666666666666 */ .double 0.349999999999999978 -.size D_JP_80155810, . - D_JP_80155810 - -dlabel D_JP_80155818 -/* EA6A8 80155818 3FC1111111111111 */ .double 0.133333333333333331 -.size D_JP_80155818, . - D_JP_80155818 - -dlabel D_JP_80155820 -/* EA6B0 80155820 3FC999999999999A */ .double 0.200000000000000011 -.size D_JP_80155820, . - D_JP_80155820 - -dlabel D_JP_80155828 -/* EA6B8 80155828 406FE00000000000 */ .double 255 -.size D_JP_80155828, . - D_JP_80155828 - -dlabel D_JP_80155830 -/* EA6C0 80155830 3FE3333333333333 */ .double 0.599999999999999978 -.size D_JP_80155830, . - D_JP_80155830 - -dlabel D_JP_80155838 -/* EA6C8 80155838 3FE3333333333333 */ .double 0.599999999999999978 -.size D_JP_80155838, . - D_JP_80155838 - -.align 3 -dlabel jtbl_JP_80155840 -/* EA6D0 80155840 8012EDE8 */ .word .LJP_8012EDE8 -/* EA6D4 80155844 8012EE20 */ .word .LJP_8012EE20 -/* EA6D8 80155848 801310E8 */ .word .LJP_801310E8 -/* EA6DC 8015584C 801310E8 */ .word .LJP_801310E8 -/* EA6E0 80155850 8012EE4C */ .word .LJP_8012EE4C -/* EA6E4 80155854 8012EE84 */ .word .LJP_8012EE84 -/* EA6E8 80155858 8012EEA4 */ .word .LJP_8012EEA4 -/* EA6EC 8015585C 8012EFDC */ .word .LJP_8012EFDC -/* EA6F0 80155860 8012F028 */ .word .LJP_8012F028 -/* EA6F4 80155864 8012F060 */ .word .LJP_8012F060 -/* EA6F8 80155868 8012F084 */ .word .LJP_8012F084 -/* EA6FC 8015586C 8012F0B8 */ .word .LJP_8012F0B8 -/* EA700 80155870 8012F0E4 */ .word .LJP_8012F0E4 -/* EA704 80155874 801310E8 */ .word .LJP_801310E8 -/* EA708 80155878 8012F118 */ .word .LJP_8012F118 -/* EA70C 8015587C 8012F26C */ .word .LJP_8012F26C -/* EA710 80155880 8012F3C0 */ .word .LJP_8012F3C0 -/* EA714 80155884 8012F4F4 */ .word .LJP_8012F4F4 -/* EA718 80155888 8012F6F0 */ .word .LJP_8012F6F0 -/* EA71C 8015588C 8012FCE8 */ .word .LJP_8012FCE8 -/* EA720 80155890 8012F708 */ .word .LJP_8012F708 -/* EA724 80155894 8012F784 */ .word .LJP_8012F784 -/* EA728 80155898 8012F7D8 */ .word .LJP_8012F7D8 -/* EA72C 8015589C 8012F7F8 */ .word .LJP_8012F7F8 -/* EA730 801558A0 8012F808 */ .word .LJP_8012F808 -/* EA734 801558A4 8012F830 */ .word .LJP_8012F830 -/* EA738 801558A8 8012F858 */ .word .LJP_8012F858 -/* EA73C 801558AC 8012F880 */ .word .LJP_8012F880 -/* EA740 801558B0 8012F8A0 */ .word .LJP_8012F8A0 -/* EA744 801558B4 8012FB04 */ .word .LJP_8012FB04 -/* EA748 801558B8 8012FC7C */ .word .LJP_8012FC7C -/* EA74C 801558BC 00000000 */ .word 0x00000000 -.size jtbl_JP_80155840, . - jtbl_JP_80155840 - -dlabel D_JP_801558C0 -/* EA750 801558C0 3FE6666666666666 */ .double 0.699999999999999956 -.size D_JP_801558C0, . - D_JP_801558C0 - -dlabel D_JP_801558C8 -/* EA758 801558C8 3FE6666666666666 */ .double 0.699999999999999956 -.size D_JP_801558C8, . - D_JP_801558C8 - -dlabel D_JP_801558D0 -/* EA760 801558D0 3FE6666666666666 */ .double 0.699999999999999956 -.size D_JP_801558D0, . - D_JP_801558D0 - -.align 3 -dlabel jtbl_JP_801558D8 -/* EA768 801558D8 8012F8D8 */ .word .LJP_8012F8D8 -/* EA76C 801558DC 8012F8F0 */ .word .LJP_8012F8F0 -/* EA770 801558E0 8012F908 */ .word .LJP_8012F908 -/* EA774 801558E4 8012F950 */ .word .LJP_8012F950 -/* EA778 801558E8 801310E8 */ .word .LJP_801310E8 -/* EA77C 801558EC 8012F9D8 */ .word .LJP_8012F9D8 -/* EA780 801558F0 8012FA08 */ .word .LJP_8012FA08 -/* EA784 801558F4 8012FA20 */ .word .LJP_8012FA20 -/* EA788 801558F8 8012FA50 */ .word .LJP_8012FA50 -/* EA78C 801558FC 8012FA68 */ .word .LJP_8012FA68 -/* EA790 80155900 8012FA80 */ .word .LJP_8012FA80 -/* EA794 80155904 8012FA98 */ .word .LJP_8012FA98 -/* EA798 80155908 8012FAB0 */ .word .LJP_8012FAB0 -/* EA79C 8015590C 8012FAC8 */ .word .LJP_8012FAC8 -/* EA7A0 80155910 8012FAE0 */ .word .LJP_8012FAE0 -/* EA7A4 80155914 00000000 */ .word 0x00000000 -.size jtbl_JP_801558D8, . - jtbl_JP_801558D8 - -.align 3 -dlabel jtbl_JP_80155918 -/* EA7A8 80155918 8012FB3C */ .word .LJP_8012FB3C -/* EA7AC 8015591C 8012FB50 */ .word .LJP_8012FB50 -/* EA7B0 80155920 8012FB64 */ .word .LJP_8012FB64 -/* EA7B4 80155924 8012FB78 */ .word .LJP_8012FB78 -/* EA7B8 80155928 8012FCE8 */ .word .LJP_8012FCE8 -/* EA7BC 8015592C 8012FB90 */ .word .LJP_8012FB90 -/* EA7C0 80155930 8012FBA4 */ .word .LJP_8012FBA4 -/* EA7C4 80155934 8012FBB4 */ .word .LJP_8012FBB4 -/* EA7C8 80155938 8012FBC8 */ .word .LJP_8012FBC8 -/* EA7CC 8015593C 8012FBDC */ .word .LJP_8012FBDC -/* EA7D0 80155940 8012FC04 */ .word .LJP_8012FC04 -/* EA7D4 80155944 8012FC18 */ .word .LJP_8012FC18 -/* EA7D8 80155948 8012FC2C */ .word .LJP_8012FC2C -/* EA7DC 8015594C 8012FC40 */ .word .LJP_8012FC40 -/* EA7E0 80155950 8012FC5C */ .word .LJP_8012FC5C -/* EA7E4 80155954 00000000 */ .word 0x00000000 -.size jtbl_JP_80155918, . - jtbl_JP_80155918 - -dlabel D_JP_80155958 -/* EA7E8 80155958 3FD6666666666666 */ .double 0.349999999999999978 -.size D_JP_80155958, . - D_JP_80155958 - -dlabel D_JP_80155960 -/* EA7F0 80155960 4046800000000000 */ .double 45 -.size D_JP_80155960, . - D_JP_80155960 - -dlabel D_JP_80155968 -/* EA7F8 80155968 3FF999999999999A */ .double 1.60000000000000009 -.size D_JP_80155968, . - D_JP_80155968 - -dlabel D_JP_80155970 -/* EA800 80155970 4066800000000000 */ .double 180 -.size D_JP_80155970, . - D_JP_80155970 - -dlabel D_JP_80155978 -/* EA808 80155978 4056800000000000 */ .double 90 -.size D_JP_80155978, . - D_JP_80155978 - -dlabel D_JP_80155980 -/* EA810 80155980 3FF999999999999A */ .double 1.60000000000000009 -.size D_JP_80155980, . - D_JP_80155980 - -dlabel D_JP_80155988 -/* EA818 80155988 4066800000000000 */ .double 180 -.size D_JP_80155988, . - D_JP_80155988 - -dlabel D_JP_80155990 -/* EA820 80155990 4056800000000000 */ .double 90 -.size D_JP_80155990, . - D_JP_80155990 - -dlabel D_JP_80155998 -/* EA828 80155998 406FE00000000000 */ .double 255 -.size D_JP_80155998, . - D_JP_80155998 - -dlabel D_JP_801559A0 -/* EA830 801559A0 3FFB333333333333 */ .double 1.69999999999999996 -.size D_JP_801559A0, . - D_JP_801559A0 - -dlabel D_JP_801559A8 -/* EA838 801559A8 3FF6666666666666 */ .double 1.39999999999999991 -.size D_JP_801559A8, . - D_JP_801559A8 - -dlabel D_JP_801559B0 -/* EA840 801559B0 3FF3333333333333 */ .double 1.19999999999999996 -.size D_JP_801559B0, . - D_JP_801559B0 - -dlabel D_JP_801559B8 -/* EA848 801559B8 3FD3333333333333 */ .double 0.299999999999999989 -.size D_JP_801559B8, . - D_JP_801559B8 - -.align 3 -dlabel jtbl_JP_801559C0 -/* EA850 801559C0 80130DE4 */ .word .LJP_80130DE4 -/* EA854 801559C4 80130DDC */ .word .LJP_80130DDC -/* EA858 801559C8 80130DDC */ .word .LJP_80130DDC -/* EA85C 801559CC 80130DDC */ .word .LJP_80130DDC -/* EA860 801559D0 80130DDC */ .word .LJP_80130DDC -/* EA864 801559D4 80130DDC */ .word .LJP_80130DDC -/* EA868 801559D8 80130DDC */ .word .LJP_80130DDC -/* EA86C 801559DC 80130DE4 */ .word .LJP_80130DE4 -/* EA870 801559E0 80130DDC */ .word .LJP_80130DDC -/* EA874 801559E4 80130DDC */ .word .LJP_80130DDC -/* EA878 801559E8 80130DA8 */ .word .LJP_80130DA8 -/* EA87C 801559EC 80130DDC */ .word .LJP_80130DDC -/* EA880 801559F0 80130DDC */ .word .LJP_80130DDC -/* EA884 801559F4 80130DDC */ .word .LJP_80130DDC -/* EA888 801559F8 80130DDC */ .word .LJP_80130DDC -/* EA88C 801559FC 80130DDC */ .word .LJP_80130DDC -/* EA890 80155A00 80130DE4 */ .word .LJP_80130DE4 -/* EA894 80155A04 80130DE4 */ .word .LJP_80130DE4 -/* EA898 80155A08 80130DE4 */ .word .LJP_80130DE4 -/* EA89C 80155A0C 80130DE4 */ .word .LJP_80130DE4 -/* EA8A0 80155A10 80130DE4 */ .word .LJP_80130DE4 -/* EA8A4 80155A14 80130DDC */ .word .LJP_80130DDC -/* EA8A8 80155A18 80130DDC */ .word .LJP_80130DDC -/* EA8AC 80155A1C 80130DDC */ .word .LJP_80130DDC -/* EA8B0 80155A20 80130DDC */ .word .LJP_80130DDC -/* EA8B4 80155A24 80130DDC */ .word .LJP_80130DDC -/* EA8B8 80155A28 80130DDC */ .word .LJP_80130DDC -/* EA8BC 80155A2C 80130DDC */ .word .LJP_80130DDC -/* EA8C0 80155A30 80130DDC */ .word .LJP_80130DDC -/* EA8C4 80155A34 80130DDC */ .word .LJP_80130DDC -/* EA8C8 80155A38 80130DDC */ .word .LJP_80130DDC -/* EA8CC 80155A3C 80130DDC */ .word .LJP_80130DDC -/* EA8D0 80155A40 80130DB4 */ .word .LJP_80130DB4 -/* EA8D4 80155A44 80130DDC */ .word .LJP_80130DDC -/* EA8D8 80155A48 80130DBC */ .word .LJP_80130DBC -/* EA8DC 80155A4C 80130DC8 */ .word .LJP_80130DC8 -/* EA8E0 80155A50 80130DDC */ .word .LJP_80130DDC -/* EA8E4 80155A54 80130DD0 */ .word .LJP_80130DD0 -.size jtbl_JP_801559C0, . - jtbl_JP_801559C0 - -dlabel D_JP_80155A58 -/* EA8E8 80155A58 406FE00000000000 */ .double 255 -.size D_JP_80155A58, . - D_JP_80155A58 - -dlabel D_JP_80155A60 -/* EA8F0 80155A60 406FE00000000000 */ .double 255 -.size D_JP_80155A60, . - D_JP_80155A60 - - -.section .text -/* Generated by spimdisasm 1.19.0 */ - -glabel appendGfx_message -/* C1E40 8012CFB0 27BDFEC0 */ addiu $sp, $sp, -0x140 -/* C1E44 8012CFB4 AFBE0108 */ sw $fp, 0x108($sp) -/* C1E48 8012CFB8 0080F02D */ daddu $fp, $a0, $zero -/* C1E4C 8012CFBC AFB000E8 */ sw $s0, 0xE8($sp) -/* C1E50 8012CFC0 3C108016 */ lui $s0, %hi(msg_drawState) -/* C1E54 8012CFC4 2610ACF4 */ addiu $s0, $s0, %lo(msg_drawState) -/* C1E58 8012CFC8 AFB100EC */ sw $s1, 0xEC($sp) -/* C1E5C 8012CFCC 8FB10154 */ lw $s1, 0x154($sp) -/* C1E60 8012CFD0 97B80152 */ lhu $t8, 0x152($sp) -/* C1E64 8012CFD4 3C028016 */ lui $v0, %hi(D_8015ACA0) -/* C1E68 8012CFD8 2442ACA0 */ addiu $v0, $v0, %lo(D_8015ACA0) -/* C1E6C 8012CFDC AFB200F0 */ sw $s2, 0xF0($sp) -/* C1E70 8012CFE0 93B2015B */ lbu $s2, 0x15B($sp) -/* C1E74 8012CFE4 27C30010 */ addiu $v1, $fp, 0x10 -/* C1E78 8012CFE8 AFB300F4 */ sw $s3, 0xF4($sp) -/* C1E7C 8012CFEC 3C13800A */ lui $s3, %hi(gMainGfxPos) -/* C1E80 8012CFF0 2673A64C */ addiu $s3, $s3, %lo(gMainGfxPos) -/* C1E84 8012CFF4 AFBF010C */ sw $ra, 0x10C($sp) -/* C1E88 8012CFF8 AFB70104 */ sw $s7, 0x104($sp) -/* C1E8C 8012CFFC AFB60100 */ sw $s6, 0x100($sp) -/* C1E90 8012D000 AFB500FC */ sw $s5, 0xFC($sp) -/* C1E94 8012D004 AFB400F8 */ sw $s4, 0xF8($sp) -/* C1E98 8012D008 F7BE0138 */ sdc1 $f30, 0x138($sp) -/* C1E9C 8012D00C F7BC0130 */ sdc1 $f28, 0x130($sp) -/* C1EA0 8012D010 F7BA0128 */ sdc1 $f26, 0x128($sp) -/* C1EA4 8012D014 F7B80120 */ sdc1 $f24, 0x120($sp) -/* C1EA8 8012D018 F7B60118 */ sdc1 $f22, 0x118($sp) -/* C1EAC 8012D01C F7B40110 */ sdc1 $f20, 0x110($sp) -/* C1EB0 8012D020 A7B8007E */ sh $t8, 0x7E($sp) -/* C1EB4 8012D024 AE020000 */ sw $v0, 0x0($s0) -/* C1EB8 8012D028 AC43004C */ sw $v1, 0x4C($v0) -/* C1EBC 8012D02C A4400034 */ sh $zero, 0x34($v0) -/* C1EC0 8012D030 A7A50066 */ sh $a1, 0x66($sp) -/* C1EC4 8012D034 A7A6006E */ sh $a2, 0x6E($sp) -/* C1EC8 8012D038 8E630000 */ lw $v1, 0x0($s3) -/* C1ECC 8012D03C 3C028015 */ lui $v0, %hi(D_80151338) -/* C1ED0 8012D040 8C426398 */ lw $v0, %lo(D_80151338)($v0) -/* C1ED4 8012D044 10620003 */ beq $v1, $v0, .LJP_8012D054 -/* C1ED8 8012D048 A7A70076 */ sh $a3, 0x76($sp) -/* C1EDC 8012D04C 0C04C516 */ jal msg_reset_gfx_state -/* C1EE0 8012D050 00000000 */ nop -.LJP_8012D054: -/* C1EE4 8012D054 8E040000 */ lw $a0, 0x0($s0) -/* C1EE8 8012D058 94820034 */ lhu $v0, 0x34($a0) -/* C1EEC 8012D05C 241900FF */ addiu $t9, $zero, 0xFF -/* C1EF0 8012D060 A7B9008E */ sh $t9, 0x8E($sp) -/* C1EF4 8012D064 34420101 */ ori $v0, $v0, 0x101 -/* C1EF8 8012D068 A4820034 */ sh $v0, 0x34($a0) -/* C1EFC 8012D06C 32220001 */ andi $v0, $s1, 0x1 -/* C1F00 8012D070 10400003 */ beqz $v0, .LJP_8012D080 -/* C1F04 8012D074 00000000 */ nop -/* C1F08 8012D078 325200FF */ andi $s2, $s2, 0xFF -/* C1F0C 8012D07C A7B2008E */ sh $s2, 0x8E($sp) -.LJP_8012D080: -/* C1F10 8012D080 3C013F80 */ lui $at, (0x3F800000 >> 16) -/* C1F14 8012D084 44810000 */ mtc1 $at, $f0 -/* C1F18 8012D088 2402013F */ addiu $v0, $zero, 0x13F -/* C1F1C 8012D08C A4800046 */ sh $zero, 0x46($a0) -/* C1F20 8012D090 A4800048 */ sh $zero, 0x48($a0) -/* C1F24 8012D094 AC800000 */ sw $zero, 0x0($a0) -/* C1F28 8012D098 AC800008 */ sw $zero, 0x8($a0) -/* C1F2C 8012D09C AC820004 */ sw $v0, 0x4($a0) -/* C1F30 8012D0A0 A0800029 */ sb $zero, 0x29($a0) -/* C1F34 8012D0A4 8E030000 */ lw $v1, 0x0($s0) -/* C1F38 8012D0A8 240200EF */ addiu $v0, $zero, 0xEF -/* C1F3C 8012D0AC AC82000C */ sw $v0, 0xC($a0) -/* C1F40 8012D0B0 E4800010 */ swc1 $f0, 0x10($a0) -/* C1F44 8012D0B4 E4800014 */ swc1 $f0, 0x14($a0) -/* C1F48 8012D0B8 A060002B */ sb $zero, 0x2B($v1) -/* C1F4C 8012D0BC 8E020000 */ lw $v0, 0x0($s0) -/* C1F50 8012D0C0 241800FF */ addiu $t8, $zero, 0xFF -/* C1F54 8012D0C4 A7B80096 */ sh $t8, 0x96($sp) -/* C1F58 8012D0C8 A040002C */ sb $zero, 0x2C($v0) -/* C1F5C 8012D0CC 8E020000 */ lw $v0, 0x0($s0) -/* C1F60 8012D0D0 0300C82D */ daddu $t9, $t8, $zero -/* C1F64 8012D0D4 A7B900AE */ sh $t9, 0xAE($sp) -/* C1F68 8012D0D8 A040002E */ sb $zero, 0x2E($v0) -/* C1F6C 8012D0DC 8E030000 */ lw $v1, 0x0($s0) -/* C1F70 8012D0E0 A7A000B6 */ sh $zero, 0xB6($sp) -/* C1F74 8012D0E4 AC400030 */ sw $zero, 0x30($v0) -/* C1F78 8012D0E8 A0600040 */ sb $zero, 0x40($v1) -/* C1F7C 8012D0EC 8E020000 */ lw $v0, 0x0($s0) -/* C1F80 8012D0F0 A3A000B8 */ sb $zero, 0xB8($sp) -/* C1F84 8012D0F4 A460003E */ sh $zero, 0x3E($v1) -/* C1F88 8012D0F8 A0400050 */ sb $zero, 0x50($v0) -/* C1F8C 8012D0FC 8E030000 */ lw $v1, 0x0($s0) -/* C1F90 8012D100 2418FFFF */ addiu $t8, $zero, -0x1 -/* C1F94 8012D104 A7B8009E */ sh $t8, 0x9E($sp) -/* C1F98 8012D108 A4400042 */ sh $zero, 0x42($v0) -/* C1F9C 8012D10C A4400044 */ sh $zero, 0x44($v0) -/* C1FA0 8012D110 A440003C */ sh $zero, 0x3C($v0) -/* C1FA4 8012D114 AC400038 */ sw $zero, 0x38($v0) -/* C1FA8 8012D118 32220002 */ andi $v0, $s1, 0x2 -/* C1FAC 8012D11C 10400003 */ beqz $v0, .LJP_8012D12C -/* C1FB0 8012D120 A460004A */ sh $zero, 0x4A($v1) -/* C1FB4 8012D124 24020001 */ addiu $v0, $zero, 0x1 -/* C1FB8 8012D128 A462003C */ sh $v0, 0x3C($v1) -.LJP_8012D12C: -/* C1FBC 8012D12C 32220004 */ andi $v0, $s1, 0x4 -/* C1FC0 8012D130 10400009 */ beqz $v0, .LJP_8012D158 -/* C1FC4 8012D134 3C04004F */ lui $a0, (0x4FC3BC >> 16) -/* C1FC8 8012D138 8E620000 */ lw $v0, 0x0($s3) -/* C1FCC 8012D13C 3484C3BC */ ori $a0, $a0, (0x4FC3BC & 0xFFFF) -/* C1FD0 8012D140 0040182D */ daddu $v1, $v0, $zero -/* C1FD4 8012D144 24420008 */ addiu $v0, $v0, 0x8 -/* C1FD8 8012D148 AE620000 */ sw $v0, 0x0($s3) -/* C1FDC 8012D14C 3C02ED00 */ lui $v0, (0xED000000 >> 16) -/* C1FE0 8012D150 AC620000 */ sw $v0, 0x0($v1) -/* C1FE4 8012D154 AC640004 */ sw $a0, 0x4($v1) -.LJP_8012D158: -/* C1FE8 8012D158 0260B82D */ daddu $s7, $s3, $zero -/* C1FEC 8012D15C 3C19FD48 */ lui $t9, (0xFD48000F >> 16) -/* C1FF0 8012D160 3739000F */ ori $t9, $t9, (0xFD48000F & 0xFFFF) -/* C1FF4 8012D164 3C18F548 */ lui $t8, (0xF5480400 >> 16) -/* C1FF8 8012D168 37180400 */ ori $t8, $t8, (0xF5480400 & 0xFFFF) -/* C1FFC 8012D16C AFB900C4 */ sw $t9, 0xC4($sp) -/* C2000 8012D170 3C190701 */ lui $t9, (0x7010050 >> 16) -/* C2004 8012D174 3C028016 */ lui $v0, %hi(msg_drawState) -/* C2008 8012D178 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) -/* C200C 8012D17C 37390050 */ ori $t9, $t9, (0x7010050 & 0xFFFF) -/* C2010 8012D180 A7A00080 */ sh $zero, 0x80($sp) -/* C2014 8012D184 AFB800C8 */ sw $t8, 0xC8($sp) -/* C2018 8012D188 AFB900CC */ sw $t9, 0xCC($sp) -/* C201C 8012D18C AC400020 */ sw $zero, 0x20($v0) -.LJP_8012D190: -/* C2020 8012D190 3C038016 */ lui $v1, %hi(msg_drawState) -/* C2024 8012D194 8C63ACF4 */ lw $v1, %lo(msg_drawState)($v1) -/* C2028 8012D198 8C62004C */ lw $v0, 0x4C($v1) -/* C202C 8012D19C 8C630020 */ lw $v1, 0x20($v1) -/* C2030 8012D1A0 00431021 */ addu $v0, $v0, $v1 -/* C2034 8012D1A4 90420000 */ lbu $v0, 0x0($v0) -/* C2038 8012D1A8 2443FF10 */ addiu $v1, $v0, -0xF0 -/* C203C 8012D1AC 2C620010 */ sltiu $v0, $v1, 0x10 -/* C2040 8012D1B0 10400AD3 */ beqz $v0, .LJP_8012FD00 -/* C2044 8012D1B4 00031080 */ sll $v0, $v1, 2 -/* C2048 8012D1B8 3C018015 */ lui $at, %hi(jtbl_JP_80155790) -/* C204C 8012D1BC 00220821 */ addu $at, $at, $v0 -/* C2050 8012D1C0 8C225790 */ lw $v0, %lo(jtbl_JP_80155790)($at) -/* C2054 8012D1C4 00400008 */ jr $v0 -/* C2058 8012D1C8 00000000 */ nop -.LJP_8012D1CC: -/* C205C 8012D1CC 3C048016 */ lui $a0, %hi(msg_drawState) -/* C2060 8012D1D0 8C84ACF4 */ lw $a0, %lo(msg_drawState)($a0) -/* C2064 8012D1D4 9482003C */ lhu $v0, 0x3C($a0) -/* C2068 8012D1D8 A4800042 */ sh $zero, 0x42($a0) -/* C206C 8012D1DC 00021080 */ sll $v0, $v0, 2 -/* C2070 8012D1E0 3C01802E */ lui $at, %hi(D_802E66F4) -/* C2074 8012D1E4 00220821 */ addu $at, $at, $v0 -/* C2078 8012D1E8 8C2266F4 */ lw $v0, %lo(D_802E66F4)($at) -/* C207C 8012D1EC 90420003 */ lbu $v0, 0x3($v0) -/* C2080 8012D1F0 C4800014 */ lwc1 $f0, 0x14($a0) -/* C2084 8012D1F4 44821000 */ mtc1 $v0, $f2 -/* C2088 8012D1F8 00000000 */ nop -/* C208C 8012D1FC 468010A0 */ cvt.s.w $f2, $f2 -/* C2090 8012D200 46020002 */ mul.s $f0, $f0, $f2 -/* C2094 8012D204 00000000 */ nop -/* C2098 8012D208 94850034 */ lhu $a1, 0x34($a0) -/* C209C 8012D20C 94820044 */ lhu $v0, 0x44($a0) -/* C20A0 8012D210 4600030D */ trunc.w.s $f12, $f0 -/* C20A4 8012D214 44036000 */ mfc1 $v1, $f12 -/* C20A8 8012D218 00000000 */ nop -/* C20AC 8012D21C 00431021 */ addu $v0, $v0, $v1 -/* C20B0 8012D220 A4820044 */ sh $v0, 0x44($a0) -/* C20B4 8012D224 30A20040 */ andi $v0, $a1, 0x40 -/* C20B8 8012D228 1040098F */ beqz $v0, .LJP_8012F868 -/* C20BC 8012D22C 34A20080 */ ori $v0, $a1, 0x80 -/* C20C0 8012D230 0804BE1A */ j .LJP_8012F868 -/* C20C4 8012D234 A4820034 */ sh $v0, 0x34($a0) -.LJP_8012D238: -/* C20C8 8012D238 3C048016 */ lui $a0, %hi(msg_drawState) -/* C20CC 8012D23C 8C84ACF4 */ lw $a0, %lo(msg_drawState)($a0) -/* C20D0 8012D240 8C83004C */ lw $v1, 0x4C($a0) -/* C20D4 8012D244 8C820020 */ lw $v0, 0x20($a0) -/* C20D8 8012D248 00621821 */ addu $v1, $v1, $v0 -/* C20DC 8012D24C 90630000 */ lbu $v1, 0x0($v1) -/* C20E0 8012D250 24420001 */ addiu $v0, $v0, 0x1 -/* C20E4 8012D254 AC820020 */ sw $v0, 0x20($a0) -/* C20E8 8012D258 2463FF0F */ addiu $v1, $v1, -0xF1 -/* C20EC 8012D25C 0804C43A */ j .LJP_801310E8 -/* C20F0 8012D260 A483003E */ sh $v1, 0x3E($a0) -.LJP_8012D264: -/* C20F4 8012D264 3C078016 */ lui $a3, %hi(msg_drawState) -/* C20F8 8012D268 8CE7ACF4 */ lw $a3, %lo(msg_drawState)($a3) -/* C20FC 8012D26C 8CE2004C */ lw $v0, 0x4C($a3) -/* C2100 8012D270 8CE30020 */ lw $v1, 0x20($a3) -/* C2104 8012D274 94E5003C */ lhu $a1, 0x3C($a3) -/* C2108 8012D278 94E6003E */ lhu $a2, 0x3E($a3) -/* C210C 8012D27C 00431021 */ addu $v0, $v0, $v1 -/* C2110 8012D280 90440000 */ lbu $a0, 0x0($v0) -/* C2114 8012D284 90E20040 */ lbu $v0, 0x40($a3) -/* C2118 8012D288 AFA20010 */ sw $v0, 0x10($sp) -/* C211C 8012D28C 94E20034 */ lhu $v0, 0x34($a3) -/* C2120 8012D290 AFA20014 */ sw $v0, 0x14($sp) -/* C2124 8012D294 0804C430 */ j .LJP_801310C0 -/* C2128 8012D298 8CE70010 */ lw $a3, 0x10($a3) -.LJP_8012D29C: -/* C212C 8012D29C 3C038016 */ lui $v1, %hi(msg_drawState) -/* C2130 8012D2A0 8C63ACF4 */ lw $v1, %lo(msg_drawState)($v1) -/* C2134 8012D2A4 8C620020 */ lw $v0, 0x20($v1) -/* C2138 8012D2A8 8C63004C */ lw $v1, 0x4C($v1) -/* C213C 8012D2AC 00431021 */ addu $v0, $v0, $v1 -/* C2140 8012D2B0 90420001 */ lbu $v0, 0x1($v0) -/* C2144 8012D2B4 2443FFFF */ addiu $v1, $v0, -0x1 -/* C2148 8012D2B8 2C62000F */ sltiu $v0, $v1, 0xF -/* C214C 8012D2BC 10400F8A */ beqz $v0, .LJP_801310E8 -/* C2150 8012D2C0 00031080 */ sll $v0, $v1, 2 -/* C2154 8012D2C4 3C018015 */ lui $at, %hi(jtbl_JP_801557D0) -/* C2158 8012D2C8 00220821 */ addu $at, $at, $v0 -/* C215C 8012D2CC 8C2257D0 */ lw $v0, %lo(jtbl_JP_801557D0)($at) -/* C2160 8012D2D0 00400008 */ jr $v0 -/* C2164 8012D2D4 00000000 */ nop -.LJP_8012D2D8: -/* C2168 8012D2D8 93C204B8 */ lbu $v0, 0x4B8($fp) -/* C216C 8012D2DC 24190002 */ addiu $t9, $zero, 0x2 -/* C2170 8012D2E0 14590008 */ bne $v0, $t9, .LJP_8012D304 -/* C2174 8012D2E4 00000000 */ nop -/* C2178 8012D2E8 93C204C9 */ lbu $v0, 0x4C9($fp) -/* C217C 8012D2EC 14400005 */ bnez $v0, .LJP_8012D304 -/* C2180 8012D2F0 00000000 */ nop -/* C2184 8012D2F4 97C204CA */ lhu $v0, 0x4CA($fp) -/* C2188 8012D2F8 97C304CC */ lhu $v1, 0x4CC($fp) -/* C218C 8012D2FC A7C204CE */ sh $v0, 0x4CE($fp) -/* C2190 8012D300 A7C304D0 */ sh $v1, 0x4D0($fp) -.LJP_8012D304: -/* C2194 8012D304 97C204D4 */ lhu $v0, 0x4D4($fp) -/* C2198 8012D308 3C013FE0 */ lui $at, (0x3FE00000 >> 16) -/* C219C 8012D30C 44816800 */ mtc1 $at, $f13 -/* C21A0 8012D310 44806000 */ mtc1 $zero, $f12 -/* C21A4 8012D314 97D604CE */ lhu $s6, 0x4CE($fp) -/* C21A8 8012D318 44820000 */ mtc1 $v0, $f0 -/* C21AC 8012D31C 00000000 */ nop -/* C21B0 8012D320 46800020 */ cvt.s.w $f0, $f0 -/* C21B4 8012D324 46000021 */ cvt.d.s $f0, $f0 -/* C21B8 8012D328 462C0002 */ mul.d $f0, $f0, $f12 -/* C21BC 8012D32C 00000000 */ nop -/* C21C0 8012D330 97D504D0 */ lhu $s5, 0x4D0($fp) -/* C21C4 8012D334 3C058016 */ lui $a1, %hi(msg_drawState) -/* C21C8 8012D338 8CA5ACF4 */ lw $a1, %lo(msg_drawState)($a1) -/* C21CC 8012D33C 87C3041A */ lh $v1, 0x41A($fp) -/* C21D0 8012D340 97C204D6 */ lhu $v0, 0x4D6($fp) -/* C21D4 8012D344 87C4041C */ lh $a0, 0x41C($fp) -/* C21D8 8012D348 44822000 */ mtc1 $v0, $f4 -/* C21DC 8012D34C 00000000 */ nop -/* C21E0 8012D350 46802120 */ cvt.s.w $f4, $f4 -/* C21E4 8012D354 46002121 */ cvt.d.s $f4, $f4 -/* C21E8 8012D358 462C2102 */ mul.d $f4, $f4, $f12 -/* C21EC 8012D35C 00000000 */ nop -/* C21F0 8012D360 2418000A */ addiu $t8, $zero, 0xA -/* C21F4 8012D364 94A20034 */ lhu $v0, 0x34($a1) -/* C21F8 8012D368 44831000 */ mtc1 $v1, $f2 -/* C21FC 8012D36C 00000000 */ nop -/* C2200 8012D370 468010A1 */ cvt.d.w $f2, $f2 -/* C2204 8012D374 A4B8004A */ sh $t8, 0x4A($a1) -/* C2208 8012D378 34420010 */ ori $v0, $v0, 0x10 -/* C220C 8012D37C A4A20034 */ sh $v0, 0x34($a1) -/* C2210 8012D380 93C204C8 */ lbu $v0, 0x4C8($fp) -/* C2214 8012D384 46201080 */ add.d $f2, $f2, $f0 -/* C2218 8012D388 2442FFFF */ addiu $v0, $v0, -0x1 -/* C221C 8012D38C 44840000 */ mtc1 $a0, $f0 -/* C2220 8012D390 00000000 */ nop -/* C2224 8012D394 46800021 */ cvt.d.w $f0, $f0 -/* C2228 8012D398 46240000 */ add.d $f0, $f0, $f4 -/* C222C 8012D39C 2C420003 */ sltiu $v0, $v0, 0x3 -/* C2230 8012D3A0 4620130D */ trunc.w.d $f12, $f2 -/* C2234 8012D3A4 44146000 */ mfc1 $s4, $f12 -/* C2238 8012D3A8 4620030D */ trunc.w.d $f12, $f0 -/* C223C 8012D3AC 44136000 */ mfc1 $s3, $f12 -/* C2240 8012D3B0 10400013 */ beqz $v0, .LJP_8012D400 -/* C2244 8012D3B4 241000C0 */ addiu $s0, $zero, 0xC0 -/* C2248 8012D3B8 24120020 */ addiu $s2, $zero, 0x20 -/* C224C 8012D3BC 24110040 */ addiu $s1, $zero, 0x40 -/* C2250 8012D3C0 0240102D */ daddu $v0, $s2, $zero -/* C2254 8012D3C4 A7C2041A */ sh $v0, 0x41A($fp) -/* C2258 8012D3C8 2402000D */ addiu $v0, $zero, 0xD -/* C225C 8012D3CC A7C2041C */ sh $v0, 0x41C($fp) -/* C2260 8012D3D0 24020100 */ addiu $v0, $zero, 0x100 -/* C2264 8012D3D4 A7C204D4 */ sh $v0, 0x4D4($fp) -/* C2268 8012D3D8 0220102D */ daddu $v0, $s1, $zero -/* C226C 8012D3DC A7C204D6 */ sh $v0, 0x4D6($fp) -/* C2270 8012D3E0 2402001A */ addiu $v0, $zero, 0x1A -/* C2274 8012D3E4 A4A20046 */ sh $v0, 0x46($a1) -/* C2278 8012D3E8 24020008 */ addiu $v0, $zero, 0x8 -/* C227C 8012D3EC A4A20048 */ sh $v0, 0x48($a1) -/* C2280 8012D3F0 240200FD */ addiu $v0, $zero, 0xFD -/* C2284 8012D3F4 A7C20442 */ sh $v0, 0x442($fp) -/* C2288 8012D3F8 0804B549 */ j .LJP_8012D524 -/* C228C 8012D3FC 24020038 */ addiu $v0, $zero, 0x38 -.LJP_8012D400: -/* C2290 8012D400 93C204FC */ lbu $v0, 0x4FC($fp) -/* C2294 8012D404 24190001 */ addiu $t9, $zero, 0x1 -/* C2298 8012D408 14590007 */ bne $v0, $t9, .LJP_8012D428 -/* C229C 8012D40C 24190002 */ addiu $t9, $zero, 0x2 -/* C22A0 8012D410 24120018 */ addiu $s2, $zero, 0x18 -/* C22A4 8012D414 24020012 */ addiu $v0, $zero, 0x12 -/* C22A8 8012D418 2418000A */ addiu $t8, $zero, 0xA -/* C22AC 8012D41C A4A20046 */ sh $v0, 0x46($a1) -/* C22B0 8012D420 0804B513 */ j .LJP_8012D44C -/* C22B4 8012D424 A4B80048 */ sh $t8, 0x48($a1) -.LJP_8012D428: -/* C22B8 8012D428 14590004 */ bne $v0, $t9, .LJP_8012D43C -/* C22BC 8012D42C 24120020 */ addiu $s2, $zero, 0x20 -/* C22C0 8012D430 2412001C */ addiu $s2, $zero, 0x1C -/* C22C4 8012D434 0804B510 */ j .LJP_8012D440 -/* C22C8 8012D438 24020016 */ addiu $v0, $zero, 0x16 -.LJP_8012D43C: -/* C22CC 8012D43C 2402001A */ addiu $v0, $zero, 0x1A -.LJP_8012D440: -/* C22D0 8012D440 A4A20046 */ sh $v0, 0x46($a1) -/* C22D4 8012D444 24020008 */ addiu $v0, $zero, 0x8 -/* C22D8 8012D448 A4A20048 */ sh $v0, 0x48($a1) -.LJP_8012D44C: -/* C22DC 8012D44C 97D004F8 */ lhu $s0, 0x4F8($fp) -/* C22E0 8012D450 2A020101 */ slti $v0, $s0, 0x101 -/* C22E4 8012D454 50400001 */ beql $v0, $zero, .LJP_8012D45C -/* C22E8 8012D458 24100100 */ addiu $s0, $zero, 0x100 -.LJP_8012D45C: -/* C22EC 8012D45C 2A020046 */ slti $v0, $s0, 0x46 -/* C22F0 8012D460 54400001 */ bnel $v0, $zero, .LJP_8012D468 -/* C22F4 8012D464 24100046 */ addiu $s0, $zero, 0x46 -.LJP_8012D468: -/* C22F8 8012D468 2610FFF4 */ addiu $s0, $s0, -0xC -/* C22FC 8012D46C 00121040 */ sll $v0, $s2, 1 -/* C2300 8012D470 93C304FC */ lbu $v1, 0x4FC($fp) -/* C2304 8012D474 02021021 */ addu $v0, $s0, $v0 -/* C2308 8012D478 A7C204D4 */ sh $v0, 0x4D4($fp) -/* C230C 8012D47C 00031900 */ sll $v1, $v1, 4 -/* C2310 8012D480 24710010 */ addiu $s1, $v1, 0x10 -/* C2314 8012D484 2A220041 */ slti $v0, $s1, 0x41 -/* C2318 8012D488 50400001 */ beql $v0, $zero, .LJP_8012D490 -/* C231C 8012D48C 24110040 */ addiu $s1, $zero, 0x40 -.LJP_8012D490: -/* C2320 8012D490 2A220024 */ slti $v0, $s1, 0x24 -/* C2324 8012D494 54400001 */ bnel $v0, $zero, .LJP_8012D49C -/* C2328 8012D498 24110024 */ addiu $s1, $zero, 0x24 -.LJP_8012D49C: -/* C232C 8012D49C 97C404D4 */ lhu $a0, 0x4D4($fp) -/* C2330 8012D4A0 97C204CE */ lhu $v0, 0x4CE($fp) -/* C2334 8012D4A4 00041842 */ srl $v1, $a0, 1 -/* C2338 8012D4A8 00433023 */ subu $a2, $v0, $v1 -/* C233C 8012D4AC 28C20012 */ slti $v0, $a2, 0x12 -/* C2340 8012D4B0 10400002 */ beqz $v0, .LJP_8012D4BC -/* C2344 8012D4B4 A7D104D6 */ sh $s1, 0x4D6($fp) -/* C2348 8012D4B8 24060012 */ addiu $a2, $zero, 0x12 -.LJP_8012D4BC: -/* C234C 8012D4BC 00C41021 */ addu $v0, $a2, $a0 -/* C2350 8012D4C0 2842012F */ slti $v0, $v0, 0x12F -/* C2354 8012D4C4 14400002 */ bnez $v0, .LJP_8012D4D0 -/* C2358 8012D4C8 2402012E */ addiu $v0, $zero, 0x12E -/* C235C 8012D4CC 00443023 */ subu $a2, $v0, $a0 -.LJP_8012D4D0: -/* C2360 8012D4D0 97C504D6 */ lhu $a1, 0x4D6($fp) -/* C2364 8012D4D4 97C204D0 */ lhu $v0, 0x4D0($fp) -/* C2368 8012D4D8 24A30026 */ addiu $v1, $a1, 0x26 -/* C236C 8012D4DC 00432023 */ subu $a0, $v0, $v1 -/* C2370 8012D4E0 28820014 */ slti $v0, $a0, 0x14 -/* C2374 8012D4E4 54400001 */ bnel $v0, $zero, .LJP_8012D4EC -/* C2378 8012D4E8 24040014 */ addiu $a0, $zero, 0x14 -.LJP_8012D4EC: -/* C237C 8012D4EC 00851021 */ addu $v0, $a0, $a1 -/* C2380 8012D4F0 284200AB */ slti $v0, $v0, 0xAB -/* C2384 8012D4F4 14400002 */ bnez $v0, .LJP_8012D500 -/* C2388 8012D4F8 240200AA */ addiu $v0, $zero, 0xAA -/* C238C 8012D4FC 00452023 */ subu $a0, $v0, $a1 -.LJP_8012D500: -/* C2390 8012D500 97C304D4 */ lhu $v1, 0x4D4($fp) -/* C2394 8012D504 97C204D6 */ lhu $v0, 0x4D6($fp) -/* C2398 8012D508 A7C6041A */ sh $a2, 0x41A($fp) -/* C239C 8012D50C A7C4041C */ sh $a0, 0x41C($fp) -/* C23A0 8012D510 00661821 */ addu $v1, $v1, $a2 -/* C23A4 8012D514 2463FFE2 */ addiu $v1, $v1, -0x1E -/* C23A8 8012D518 00441021 */ addu $v0, $v0, $a0 -/* C23AC 8012D51C 2442FFEE */ addiu $v0, $v0, -0x12 -/* C23B0 8012D520 A7C30442 */ sh $v1, 0x442($fp) -.LJP_8012D524: -/* C23B4 8012D524 A7C20444 */ sh $v0, 0x444($fp) -/* C23B8 8012D528 93C204B8 */ lbu $v0, 0x4B8($fp) -/* C23BC 8012D52C 2442FFF5 */ addiu $v0, $v0, -0xB -/* C23C0 8012D530 2C420002 */ sltiu $v0, $v0, 0x2 -/* C23C4 8012D534 10400004 */ beqz $v0, .LJP_8012D548 -/* C23C8 8012D538 24180001 */ addiu $t8, $zero, 0x1 -/* C23CC 8012D53C 3C028016 */ lui $v0, %hi(msg_drawState) -/* C23D0 8012D540 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) -/* C23D4 8012D544 A058002B */ sb $t8, 0x2B($v0) -.LJP_8012D548: -/* C23D8 8012D548 93C304B8 */ lbu $v1, 0x4B8($fp) -/* C23DC 8012D54C 24190002 */ addiu $t9, $zero, 0x2 -/* C23E0 8012D550 1479008A */ bne $v1, $t9, .LJP_8012D77C -/* C23E4 8012D554 24020003 */ addiu $v0, $zero, 0x3 -/* C23E8 8012D558 0000202D */ daddu $a0, $zero, $zero -/* C23EC 8012D55C 3C053D8F */ lui $a1, (0x3D8F5C29 >> 16) -/* C23F0 8012D560 34A55C29 */ ori $a1, $a1, (0x3D8F5C29 & 0xFFFF) -/* C23F4 8012D564 3C063F80 */ lui $a2, (0x3F800000 >> 16) -/* C23F8 8012D568 93C704C9 */ lbu $a3, 0x4C9($fp) -/* C23FC 8012D56C 24180007 */ addiu $t8, $zero, 0x7 -/* C2400 8012D570 0C00A8DD */ jal update_lerp -/* C2404 8012D574 AFB80010 */ sw $t8, 0x10($sp) -/* C2408 8012D578 3C053E99 */ lui $a1, (0x3E99999A >> 16) -/* C240C 8012D57C 34A5999A */ ori $a1, $a1, (0x3E99999A & 0xFFFF) -/* C2410 8012D580 3C063F80 */ lui $a2, (0x3F800000 >> 16) -/* C2414 8012D584 0000202D */ daddu $a0, $zero, $zero -/* C2418 8012D588 E7A000BC */ swc1 $f0, 0xBC($sp) -/* C241C 8012D58C 93C704C9 */ lbu $a3, 0x4C9($fp) -/* C2420 8012D590 24190007 */ addiu $t9, $zero, 0x7 -/* C2424 8012D594 0C00A8DD */ jal update_lerp -/* C2428 8012D598 AFB90010 */ sw $t9, 0x10($sp) -/* C242C 8012D59C 46000786 */ mov.s $f30, $f0 -/* C2430 8012D5A0 0000202D */ daddu $a0, $zero, $zero -/* C2434 8012D5A4 3C0542C0 */ lui $a1, (0x42C00000 >> 16) -/* C2438 8012D5A8 3C064348 */ lui $a2, (0x43480000 >> 16) -/* C243C 8012D5AC 93C704C9 */ lbu $a3, 0x4C9($fp) -/* C2440 8012D5B0 24180007 */ addiu $t8, $zero, 0x7 -/* C2444 8012D5B4 0C00A8DD */ jal update_lerp -/* C2448 8012D5B8 AFB80010 */ sw $t8, 0x10($sp) -/* C244C 8012D5BC 46000706 */ mov.s $f28, $f0 -/* C2450 8012D5C0 2404000B */ addiu $a0, $zero, 0xB -/* C2454 8012D5C4 00151400 */ sll $v0, $s5, 16 -/* C2458 8012D5C8 00021403 */ sra $v0, $v0, 16 -/* C245C 8012D5CC 44826000 */ mtc1 $v0, $f12 -/* C2460 8012D5D0 00000000 */ nop -/* C2464 8012D5D4 46806320 */ cvt.s.w $f12, $f12 -/* C2468 8012D5D8 00131400 */ sll $v0, $s3, 16 -/* C246C 8012D5DC 00021403 */ sra $v0, $v0, 16 -/* C2470 8012D5E0 44056000 */ mfc1 $a1, $f12 -/* C2474 8012D5E4 44826000 */ mtc1 $v0, $f12 -/* C2478 8012D5E8 00000000 */ nop -/* C247C 8012D5EC 46806320 */ cvt.s.w $f12, $f12 -/* C2480 8012D5F0 93C704C9 */ lbu $a3, 0x4C9($fp) -/* C2484 8012D5F4 44066000 */ mfc1 $a2, $f12 -/* C2488 8012D5F8 24180007 */ addiu $t8, $zero, 0x7 -/* C248C 8012D5FC 0C00A8DD */ jal update_lerp -/* C2490 8012D600 AFB80010 */ sw $t8, 0x10($sp) -/* C2494 8012D604 46000506 */ mov.s $f20, $f0 -/* C2498 8012D608 2404000B */ addiu $a0, $zero, 0xB -/* C249C 8012D60C 00161400 */ sll $v0, $s6, 16 -/* C24A0 8012D610 00021403 */ sra $v0, $v0, 16 -/* C24A4 8012D614 44826000 */ mtc1 $v0, $f12 -/* C24A8 8012D618 00000000 */ nop -/* C24AC 8012D61C 46806320 */ cvt.s.w $f12, $f12 -/* C24B0 8012D620 00141400 */ sll $v0, $s4, 16 -/* C24B4 8012D624 00021403 */ sra $v0, $v0, 16 -/* C24B8 8012D628 44056000 */ mfc1 $a1, $f12 -/* C24BC 8012D62C 44826000 */ mtc1 $v0, $f12 -/* C24C0 8012D630 00000000 */ nop -/* C24C4 8012D634 46806320 */ cvt.s.w $f12, $f12 -/* C24C8 8012D638 93C704C9 */ lbu $a3, 0x4C9($fp) -/* C24CC 8012D63C 44066000 */ mfc1 $a2, $f12 -/* C24D0 8012D640 24180007 */ addiu $t8, $zero, 0x7 -/* C24D4 8012D644 0C00A8DD */ jal update_lerp -/* C24D8 8012D648 AFB80010 */ sw $t8, 0x10($sp) -/* C24DC 8012D64C 97C204D4 */ lhu $v0, 0x4D4($fp) -/* C24E0 8012D650 C7AC00BC */ lwc1 $f12, 0xBC($sp) -/* C24E4 8012D654 44822000 */ mtc1 $v0, $f4 -/* C24E8 8012D658 00000000 */ nop -/* C24EC 8012D65C 46802120 */ cvt.s.w $f4, $f4 -/* C24F0 8012D660 460C2102 */ mul.s $f4, $f4, $f12 -/* C24F4 8012D664 00000000 */ nop -/* C24F8 8012D668 3C013FE0 */ lui $at, (0x3FE00000 >> 16) -/* C24FC 8012D66C 44816800 */ mtc1 $at, $f13 -/* C2500 8012D670 44806000 */ mtc1 $zero, $f12 -/* C2504 8012D674 46002121 */ cvt.d.s $f4, $f4 -/* C2508 8012D678 462C2102 */ mul.d $f4, $f4, $f12 -/* C250C 8012D67C 00000000 */ nop -/* C2510 8012D680 97C204D6 */ lhu $v0, 0x4D6($fp) -/* C2514 8012D684 44821000 */ mtc1 $v0, $f2 -/* C2518 8012D688 00000000 */ nop -/* C251C 8012D68C 468010A0 */ cvt.s.w $f2, $f2 -/* C2520 8012D690 461E1082 */ mul.s $f2, $f2, $f30 -/* C2524 8012D694 00000000 */ nop -/* C2528 8012D698 460010A1 */ cvt.d.s $f2, $f2 -/* C252C 8012D69C 462C1082 */ mul.d $f2, $f2, $f12 -/* C2530 8012D6A0 00000000 */ nop -/* C2534 8012D6A4 46000021 */ cvt.d.s $f0, $f0 -/* C2538 8012D6A8 46240001 */ sub.d $f0, $f0, $f4 -/* C253C 8012D6AC 4600A121 */ cvt.d.s $f4, $f20 -/* C2540 8012D6B0 46222101 */ sub.d $f4, $f4, $f2 -/* C2544 8012D6B4 AFB20010 */ sw $s2, 0x10($sp) -/* C2548 8012D6B8 3C014F00 */ lui $at, (0x4F000000 >> 16) -/* C254C 8012D6BC 44811000 */ mtc1 $at, $f2 -/* C2550 8012D6C0 462C0000 */ add.d $f0, $f0, $f12 -/* C2554 8012D6C4 AFB10014 */ sw $s1, 0x14($sp) -/* C2558 8012D6C8 E7BE001C */ swc1 $f30, 0x1C($sp) -/* C255C 8012D6CC 461C103E */ c.le.s $f2, $f28 -/* C2560 8012D6D0 462C2100 */ add.d $f4, $f4, $f12 -/* C2564 8012D6D4 C7AC00BC */ lwc1 $f12, 0xBC($sp) -/* C2568 8012D6D8 46200620 */ cvt.s.d $f24, $f0 -/* C256C 8012D6DC E7AC0018 */ swc1 $f12, 0x18($sp) -/* C2570 8012D6E0 4600C30D */ trunc.w.s $f12, $f24 -/* C2574 8012D6E4 44026000 */ mfc1 $v0, $f12 -/* C2578 8012D6E8 00000000 */ nop -/* C257C 8012D6EC 00021400 */ sll $v0, $v0, 16 -/* C2580 8012D6F0 00022C03 */ sra $a1, $v0, 16 -/* C2584 8012D6F4 462026A0 */ cvt.s.d $f26, $f4 -/* C2588 8012D6F8 4600D30D */ trunc.w.s $f12, $f26 -/* C258C 8012D6FC 44026000 */ mfc1 $v0, $f12 -/* C2590 8012D700 00000000 */ nop -/* C2594 8012D704 00021400 */ sll $v0, $v0, 16 -/* C2598 8012D708 00023403 */ sra $a2, $v0, 16 -/* C259C 8012D70C 00101400 */ sll $v0, $s0, 16 -/* C25A0 8012D710 45010005 */ bc1t .LJP_8012D728 -/* C25A4 8012D714 00023C03 */ sra $a3, $v0, 16 -/* C25A8 8012D718 4600E30D */ trunc.w.s $f12, $f28 -/* C25AC 8012D71C 44036000 */ mfc1 $v1, $f12 -/* C25B0 8012D720 0804B5D1 */ j .LJP_8012D744 -/* C25B4 8012D724 03C0202D */ daddu $a0, $fp, $zero -.LJP_8012D728: -/* C25B8 8012D728 4602E001 */ sub.s $f0, $f28, $f2 -/* C25BC 8012D72C 3C028000 */ lui $v0, (0x80000000 >> 16) -/* C25C0 8012D730 4600030D */ trunc.w.s $f12, $f0 -/* C25C4 8012D734 44036000 */ mfc1 $v1, $f12 -/* C25C8 8012D738 00000000 */ nop -/* C25CC 8012D73C 00621825 */ or $v1, $v1, $v0 -/* C25D0 8012D740 03C0202D */ daddu $a0, $fp, $zero -.LJP_8012D744: -/* C25D4 8012D744 306200FF */ andi $v0, $v1, 0xFF -/* C25D8 8012D748 24190001 */ addiu $t9, $zero, 0x1 -/* C25DC 8012D74C AFA20020 */ sw $v0, 0x20($sp) -/* C25E0 8012D750 0C04C760 */ jal msg_draw_speech_bubble -/* C25E4 8012D754 AFB90024 */ sw $t9, 0x24($sp) -/* C25E8 8012D758 93C204C9 */ lbu $v0, 0x4C9($fp) -/* C25EC 8012D75C 24180007 */ addiu $t8, $zero, 0x7 -/* C25F0 8012D760 24420001 */ addiu $v0, $v0, 0x1 -/* C25F4 8012D764 A3C204C9 */ sb $v0, 0x4C9($fp) -/* C25F8 8012D768 304200FF */ andi $v0, $v0, 0xFF -/* C25FC 8012D76C 145800D8 */ bne $v0, $t8, .LJP_8012DAD0 -/* C2600 8012D770 24020004 */ addiu $v0, $zero, 0x4 -/* C2604 8012D774 0804B6B4 */ j .LJP_8012DAD0 -/* C2608 8012D778 A3C204B8 */ sb $v0, 0x4B8($fp) -.LJP_8012D77C: -/* C260C 8012D77C 146200A2 */ bne $v1, $v0, .LJP_8012DA08 -/* C2610 8012D780 03C0202D */ daddu $a0, $fp, $zero -/* C2614 8012D784 0000202D */ daddu $a0, $zero, $zero -/* C2618 8012D788 3C053F80 */ lui $a1, (0x3F800000 >> 16) -/* C261C 8012D78C 93C204D2 */ lbu $v0, 0x4D2($fp) -/* C2620 8012D790 3C063F19 */ lui $a2, (0x3F19999A >> 16) -/* C2624 8012D794 34C6999A */ ori $a2, $a2, (0x3F19999A & 0xFFFF) -/* C2628 8012D798 24420001 */ addiu $v0, $v0, 0x1 -/* C262C 8012D79C A3C204D2 */ sb $v0, 0x4D2($fp) -/* C2630 8012D7A0 304700FF */ andi $a3, $v0, 0xFF -/* C2634 8012D7A4 24190005 */ addiu $t9, $zero, 0x5 -/* C2638 8012D7A8 0C00A8DD */ jal update_lerp -/* C263C 8012D7AC AFB90010 */ sw $t9, 0x10($sp) -/* C2640 8012D7B0 3C053F80 */ lui $a1, (0x3F800000 >> 16) -/* C2644 8012D7B4 3C063F4C */ lui $a2, (0x3F4CCCCD >> 16) -/* C2648 8012D7B8 34C6CCCD */ ori $a2, $a2, (0x3F4CCCCD & 0xFFFF) -/* C264C 8012D7BC 0000202D */ daddu $a0, $zero, $zero -/* C2650 8012D7C0 E7A000BC */ swc1 $f0, 0xBC($sp) -/* C2654 8012D7C4 93C704D2 */ lbu $a3, 0x4D2($fp) -/* C2658 8012D7C8 24180005 */ addiu $t8, $zero, 0x5 -/* C265C 8012D7CC 0C00A8DD */ jal update_lerp -/* C2660 8012D7D0 AFB80010 */ sw $t8, 0x10($sp) -/* C2664 8012D7D4 97C204D4 */ lhu $v0, 0x4D4($fp) -/* C2668 8012D7D8 C7AC00BC */ lwc1 $f12, 0xBC($sp) -/* C266C 8012D7DC 44821000 */ mtc1 $v0, $f2 -/* C2670 8012D7E0 00000000 */ nop -/* C2674 8012D7E4 468010A0 */ cvt.s.w $f2, $f2 -/* C2678 8012D7E8 460C1082 */ mul.s $f2, $f2, $f12 -/* C267C 8012D7EC 00000000 */ nop -/* C2680 8012D7F0 3C013FE0 */ lui $at, (0x3FE00000 >> 16) -/* C2684 8012D7F4 44816800 */ mtc1 $at, $f13 -/* C2688 8012D7F8 44806000 */ mtc1 $zero, $f12 -/* C268C 8012D7FC 460010A1 */ cvt.d.s $f2, $f2 -/* C2690 8012D800 462C1082 */ mul.d $f2, $f2, $f12 -/* C2694 8012D804 00000000 */ nop -/* C2698 8012D808 97C204D6 */ lhu $v0, 0x4D6($fp) -/* C269C 8012D80C 46000786 */ mov.s $f30, $f0 -/* C26A0 8012D810 44820000 */ mtc1 $v0, $f0 -/* C26A4 8012D814 00000000 */ nop -/* C26A8 8012D818 46800020 */ cvt.s.w $f0, $f0 -/* C26AC 8012D81C 461E0002 */ mul.s $f0, $f0, $f30 -/* C26B0 8012D820 00000000 */ nop -/* C26B4 8012D824 46000021 */ cvt.d.s $f0, $f0 -/* C26B8 8012D828 462C0002 */ mul.d $f0, $f0, $f12 -/* C26BC 8012D82C 00000000 */ nop -/* C26C0 8012D830 00141400 */ sll $v0, $s4, 16 -/* C26C4 8012D834 00021403 */ sra $v0, $v0, 16 -/* C26C8 8012D838 4482B000 */ mtc1 $v0, $f22 -/* C26CC 8012D83C 00000000 */ nop -/* C26D0 8012D840 4680B5A0 */ cvt.s.w $f22, $f22 -/* C26D4 8012D844 4600B5A1 */ cvt.d.s $f22, $f22 -/* C26D8 8012D848 4622B181 */ sub.d $f6, $f22, $f2 -/* C26DC 8012D84C 00131400 */ sll $v0, $s3, 16 -/* C26E0 8012D850 00021403 */ sra $v0, $v0, 16 -/* C26E4 8012D854 4622B580 */ add.d $f22, $f22, $f2 -/* C26E8 8012D858 4482A000 */ mtc1 $v0, $f20 -/* C26EC 8012D85C 00000000 */ nop -/* C26F0 8012D860 4680A520 */ cvt.s.w $f20, $f20 -/* C26F4 8012D864 4600A521 */ cvt.d.s $f20, $f20 -/* C26F8 8012D868 4620A101 */ sub.d $f4, $f20, $f0 -/* C26FC 8012D86C 4620A500 */ add.d $f20, $f20, $f0 -/* C2700 8012D870 462C3180 */ add.d $f6, $f6, $f12 -/* C2704 8012D874 0000202D */ daddu $a0, $zero, $zero -/* C2708 8012D878 3C05437F */ lui $a1, (0x437F0000 >> 16) -/* C270C 8012D87C 462CB581 */ sub.d $f22, $f22, $f12 -/* C2710 8012D880 3C064280 */ lui $a2, (0x42800000 >> 16) -/* C2714 8012D884 93C704D2 */ lbu $a3, 0x4D2($fp) -/* C2718 8012D888 462C2100 */ add.d $f4, $f4, $f12 -/* C271C 8012D88C 24180005 */ addiu $t8, $zero, 0x5 -/* C2720 8012D890 AFB80010 */ sw $t8, 0x10($sp) -/* C2724 8012D894 462CA501 */ sub.d $f20, $f20, $f12 -/* C2728 8012D898 46203620 */ cvt.s.d $f24, $f6 -/* C272C 8012D89C 4620B5A0 */ cvt.s.d $f22, $f22 -/* C2730 8012D8A0 462026A0 */ cvt.s.d $f26, $f4 -/* C2734 8012D8A4 0C00A8DD */ jal update_lerp -/* C2738 8012D8A8 4620A520 */ cvt.s.d $f20, $f20 -/* C273C 8012D8AC 46000706 */ mov.s $f28, $f0 -/* C2740 8012D8B0 3C018015 */ lui $at, %hi(D_JP_80155810) -/* C2744 8012D8B4 D4205810 */ ldc1 $f0, %lo(D_JP_80155810)($at) -/* C2748 8012D8B8 4600E1A1 */ cvt.d.s $f6, $f28 -/* C274C 8012D8BC 46203182 */ mul.d $f6, $f6, $f0 -/* C2750 8012D8C0 00000000 */ nop -/* C2754 8012D8C4 3C028016 */ lui $v0, %hi(msg_drawState) -/* C2758 8012D8C8 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) -/* C275C 8012D8CC 4600E30D */ trunc.w.s $f12, $f28 -/* C2760 8012D8D0 44046000 */ mfc1 $a0, $f12 -/* C2764 8012D8D4 00000000 */ nop -/* C2768 8012D8D8 A7A400AE */ sh $a0, 0xAE($sp) -/* C276C 8012D8DC 84430046 */ lh $v1, 0x46($v0) -/* C2770 8012D8E0 3C014F00 */ lui $at, (0x4F000000 >> 16) -/* C2774 8012D8E4 44814000 */ mtc1 $at, $f8 -/* C2778 8012D8E8 44831000 */ mtc1 $v1, $f2 -/* C277C 8012D8EC 00000000 */ nop -/* C2780 8012D8F0 468010A0 */ cvt.s.w $f2, $f2 -/* C2784 8012D8F4 84430048 */ lh $v1, 0x48($v0) -/* C2788 8012D8F8 4602C080 */ add.s $f2, $f24, $f2 -/* C278C 8012D8FC 44832000 */ mtc1 $v1, $f4 -/* C2790 8012D900 00000000 */ nop -/* C2794 8012D904 46802120 */ cvt.s.w $f4, $f4 -/* C2798 8012D908 84430046 */ lh $v1, 0x46($v0) -/* C279C 8012D90C 4604D100 */ add.s $f4, $f26, $f4 -/* C27A0 8012D910 44830000 */ mtc1 $v1, $f0 -/* C27A4 8012D914 00000000 */ nop -/* C27A8 8012D918 46800020 */ cvt.s.w $f0, $f0 -/* C27AC 8012D91C 84430048 */ lh $v1, 0x48($v0) -/* C27B0 8012D920 4600B581 */ sub.s $f22, $f22, $f0 -/* C27B4 8012D924 4600130D */ trunc.w.s $f12, $f2 -/* C27B8 8012D928 E44C0000 */ swc1 $f12, 0x0($v0) -/* C27BC 8012D92C 44830000 */ mtc1 $v1, $f0 -/* C27C0 8012D930 00000000 */ nop -/* C27C4 8012D934 46800020 */ cvt.s.w $f0, $f0 -/* C27C8 8012D938 4600A501 */ sub.s $f20, $f20, $f0 -/* C27CC 8012D93C 4600230D */ trunc.w.s $f12, $f4 -/* C27D0 8012D940 E44C0008 */ swc1 $f12, 0x8($v0) -/* C27D4 8012D944 4600B30D */ trunc.w.s $f12, $f22 -/* C27D8 8012D948 E44C0004 */ swc1 $f12, 0x4($v0) -/* C27DC 8012D94C 4600A30D */ trunc.w.s $f12, $f20 -/* C27E0 8012D950 E44C000C */ swc1 $f12, 0xC($v0) -/* C27E4 8012D954 C7AC00BC */ lwc1 $f12, 0xBC($sp) -/* C27E8 8012D958 461C403E */ c.le.s $f8, $f28 -/* C27EC 8012D95C AFB20010 */ sw $s2, 0x10($sp) -/* C27F0 8012D960 AFB10014 */ sw $s1, 0x14($sp) -/* C27F4 8012D964 E7BE001C */ swc1 $f30, 0x1C($sp) -/* C27F8 8012D968 E7AC0018 */ swc1 $f12, 0x18($sp) -/* C27FC 8012D96C 4620330D */ trunc.w.d $f12, $f6 -/* C2800 8012D970 44186000 */ mfc1 $t8, $f12 -/* C2804 8012D974 00000000 */ nop -/* C2808 8012D978 A7B8008E */ sh $t8, 0x8E($sp) -/* C280C 8012D97C 4600C30D */ trunc.w.s $f12, $f24 -/* C2810 8012D980 44026000 */ mfc1 $v0, $f12 -/* C2814 8012D984 00000000 */ nop -/* C2818 8012D988 00021400 */ sll $v0, $v0, 16 -/* C281C 8012D98C 00022C03 */ sra $a1, $v0, 16 -/* C2820 8012D990 4600D30D */ trunc.w.s $f12, $f26 -/* C2824 8012D994 44026000 */ mfc1 $v0, $f12 -/* C2828 8012D998 00000000 */ nop -/* C282C 8012D99C 00021400 */ sll $v0, $v0, 16 -/* C2830 8012D9A0 00023403 */ sra $a2, $v0, 16 -/* C2834 8012D9A4 00101400 */ sll $v0, $s0, 16 -/* C2838 8012D9A8 45010003 */ bc1t .LJP_8012D9B8 -/* C283C 8012D9AC 00023C03 */ sra $a3, $v0, 16 -/* C2840 8012D9B0 0804B674 */ j .LJP_8012D9D0 -/* C2844 8012D9B4 0080182D */ daddu $v1, $a0, $zero -.LJP_8012D9B8: -/* C2848 8012D9B8 4608E001 */ sub.s $f0, $f28, $f8 -/* C284C 8012D9BC 3C028000 */ lui $v0, (0x80000000 >> 16) -/* C2850 8012D9C0 4600030D */ trunc.w.s $f12, $f0 -/* C2854 8012D9C4 44036000 */ mfc1 $v1, $f12 -/* C2858 8012D9C8 00000000 */ nop -/* C285C 8012D9CC 00621825 */ or $v1, $v1, $v0 -.LJP_8012D9D0: -/* C2860 8012D9D0 03C0202D */ daddu $a0, $fp, $zero -/* C2864 8012D9D4 306200FF */ andi $v0, $v1, 0xFF -/* C2868 8012D9D8 24190001 */ addiu $t9, $zero, 0x1 -/* C286C 8012D9DC AFA20020 */ sw $v0, 0x20($sp) -/* C2870 8012D9E0 0C04C760 */ jal msg_draw_speech_bubble -/* C2874 8012D9E4 AFB90024 */ sw $t9, 0x24($sp) -/* C2878 8012D9E8 93C204D2 */ lbu $v0, 0x4D2($fp) -/* C287C 8012D9EC 2C420005 */ sltiu $v0, $v0, 0x5 -/* C2880 8012D9F0 14400037 */ bnez $v0, .LJP_8012DAD0 -/* C2884 8012D9F4 00000000 */ nop -/* C2888 8012D9F8 8FC204BC */ lw $v0, 0x4BC($fp) -/* C288C 8012D9FC 34420001 */ ori $v0, $v0, 0x1 -/* C2890 8012DA00 0804B6B4 */ j .LJP_8012DAD0 -/* C2894 8012DA04 AFC204BC */ sw $v0, 0x4BC($fp) -.LJP_8012DA08: -/* C2898 8012DA08 00103C00 */ sll $a3, $s0, 16 -/* C289C 8012DA0C 87C3041A */ lh $v1, 0x41A($fp) -/* C28A0 8012DA10 87C5041C */ lh $a1, 0x41C($fp) -/* C28A4 8012DA14 3C013F80 */ lui $at, (0x3F800000 >> 16) -/* C28A8 8012DA18 44816000 */ mtc1 $at, $f12 -/* C28AC 8012DA1C 241800FF */ addiu $t8, $zero, 0xFF -/* C28B0 8012DA20 AFB80020 */ sw $t8, 0x20($sp) -/* C28B4 8012DA24 97B80066 */ lhu $t8, 0x66($sp) -/* C28B8 8012DA28 24190001 */ addiu $t9, $zero, 0x1 -/* C28BC 8012DA2C AFB90024 */ sw $t9, 0x24($sp) -/* C28C0 8012DA30 97B9006E */ lhu $t9, 0x6E($sp) -/* C28C4 8012DA34 00073C03 */ sra $a3, $a3, 16 -/* C28C8 8012DA38 AFB20010 */ sw $s2, 0x10($sp) -/* C28CC 8012DA3C AFB10014 */ sw $s1, 0x14($sp) -/* C28D0 8012DA40 00181400 */ sll $v0, $t8, 16 -/* C28D4 8012DA44 00021403 */ sra $v0, $v0, 16 -/* C28D8 8012DA48 00431021 */ addu $v0, $v0, $v1 -/* C28DC 8012DA4C 4482C000 */ mtc1 $v0, $f24 -/* C28E0 8012DA50 00000000 */ nop -/* C28E4 8012DA54 4680C620 */ cvt.s.w $f24, $f24 -/* C28E8 8012DA58 00191400 */ sll $v0, $t9, 16 -/* C28EC 8012DA5C 00021403 */ sra $v0, $v0, 16 -/* C28F0 8012DA60 00451021 */ addu $v0, $v0, $a1 -/* C28F4 8012DA64 4482D000 */ mtc1 $v0, $f26 -/* C28F8 8012DA68 00000000 */ nop -/* C28FC 8012DA6C 4680D6A0 */ cvt.s.w $f26, $f26 -/* C2900 8012DA70 E7AC0018 */ swc1 $f12, 0x18($sp) -/* C2904 8012DA74 E7AC001C */ swc1 $f12, 0x1C($sp) -/* C2908 8012DA78 4600C30D */ trunc.w.s $f12, $f24 -/* C290C 8012DA7C 44056000 */ mfc1 $a1, $f12 -/* C2910 8012DA80 00000000 */ nop -/* C2914 8012DA84 00052C00 */ sll $a1, $a1, 16 -/* C2918 8012DA88 00052C03 */ sra $a1, $a1, 16 -/* C291C 8012DA8C 4600D30D */ trunc.w.s $f12, $f26 -/* C2920 8012DA90 44066000 */ mfc1 $a2, $f12 -/* C2924 8012DA94 00000000 */ nop -/* C2928 8012DA98 00063400 */ sll $a2, $a2, 16 -/* C292C 8012DA9C 0C04C760 */ jal msg_draw_speech_bubble -/* C2930 8012DAA0 00063403 */ sra $a2, $a2, 16 -/* C2934 8012DAA4 97C204CE */ lhu $v0, 0x4CE($fp) -/* C2938 8012DAA8 2442FFEC */ addiu $v0, $v0, -0x14 -/* C293C 8012DAAC 2C420119 */ sltiu $v0, $v0, 0x119 -/* C2940 8012DAB0 10400007 */ beqz $v0, .LJP_8012DAD0 -/* C2944 8012DAB4 00000000 */ nop -/* C2948 8012DAB8 97C204D0 */ lhu $v0, 0x4D0($fp) -/* C294C 8012DABC 2C4200DD */ sltiu $v0, $v0, 0xDD -/* C2950 8012DAC0 10400003 */ beqz $v0, .LJP_8012DAD0 -/* C2954 8012DAC4 00000000 */ nop -/* C2958 8012DAC8 0C04C955 */ jal msg_draw_speech_arrow -/* C295C 8012DACC 03C0202D */ daddu $a0, $fp, $zero -.LJP_8012DAD0: -/* C2960 8012DAD0 93C304B8 */ lbu $v1, 0x4B8($fp) -/* C2964 8012DAD4 24020003 */ addiu $v0, $zero, 0x3 -/* C2968 8012DAD8 10620465 */ beq $v1, $v0, .LJP_8012EC70 -/* C296C 8012DADC 24020014 */ addiu $v0, $zero, 0x14 -/* C2970 8012DAE0 3C048016 */ lui $a0, %hi(msg_drawState) -/* C2974 8012DAE4 8C84ACF4 */ lw $a0, %lo(msg_drawState)($a0) -/* C2978 8012DAE8 AC820000 */ sw $v0, 0x0($a0) -/* C297C 8012DAEC 87C30418 */ lh $v1, 0x418($fp) -/* C2980 8012DAF0 87C5041C */ lh $a1, 0x41C($fp) -/* C2984 8012DAF4 2402012C */ addiu $v0, $zero, 0x12C -/* C2988 8012DAF8 AC820004 */ sw $v0, 0x4($a0) -/* C298C 8012DAFC 84820048 */ lh $v0, 0x48($a0) -/* C2990 8012DB00 00651821 */ addu $v1, $v1, $a1 -/* C2994 8012DB04 00621821 */ addu $v1, $v1, $v0 -/* C2998 8012DB08 AC830008 */ sw $v1, 0x8($a0) -/* C299C 8012DB0C 97C304D6 */ lhu $v1, 0x4D6($fp) -/* C29A0 8012DB10 8C820008 */ lw $v0, 0x8($a0) -/* C29A4 8012DB14 00431021 */ addu $v0, $v0, $v1 -/* C29A8 8012DB18 2442FFF0 */ addiu $v0, $v0, -0x10 -/* C29AC 8012DB1C 0804BB1C */ j .LJP_8012EC70 -/* C29B0 8012DB20 AC82000C */ sw $v0, 0xC($a0) -.LJP_8012DB24: -/* C29B4 8012DB24 0000A82D */ daddu $s5, $zero, $zero -/* C29B8 8012DB28 97D204D4 */ lhu $s2, 0x4D4($fp) -/* C29BC 8012DB2C 97D304D6 */ lhu $s3, 0x4D6($fp) -/* C29C0 8012DB30 3C028016 */ lui $v0, %hi(msg_drawState) -/* C29C4 8012DB34 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) -/* C29C8 8012DB38 A040002B */ sb $zero, 0x2B($v0) -/* C29CC 8012DB3C 3C038016 */ lui $v1, %hi(msg_drawState) -/* C29D0 8012DB40 8C63ACF4 */ lw $v1, %lo(msg_drawState)($v1) -/* C29D4 8012DB44 2402000C */ addiu $v0, $zero, 0xC -/* C29D8 8012DB48 A4620046 */ sh $v0, 0x46($v1) -/* C29DC 8012DB4C 24020006 */ addiu $v0, $zero, 0x6 -/* C29E0 8012DB50 A4620048 */ sh $v0, 0x48($v1) -/* C29E4 8012DB54 93C304B8 */ lbu $v1, 0x4B8($fp) -/* C29E8 8012DB58 24190002 */ addiu $t9, $zero, 0x2 -/* C29EC 8012DB5C 14790078 */ bne $v1, $t9, .LJP_8012DD40 -/* C29F0 8012DB60 241400FF */ addiu $s4, $zero, 0xFF -/* C29F4 8012DB64 93C204C9 */ lbu $v0, 0x4C9($fp) -/* C29F8 8012DB68 24030006 */ addiu $v1, $zero, 0x6 -/* C29FC 8012DB6C 24420001 */ addiu $v0, $v0, 0x1 -/* C2A00 8012DB70 A3C204C9 */ sb $v0, 0x4C9($fp) -/* C2A04 8012DB74 304200FF */ andi $v0, $v0, 0xFF -/* C2A08 8012DB78 14430002 */ bne $v0, $v1, .LJP_8012DB84 -/* C2A0C 8012DB7C 24020004 */ addiu $v0, $zero, 0x4 -/* C2A10 8012DB80 A3C204B8 */ sb $v0, 0x4B8($fp) -.LJP_8012DB84: -/* C2A14 8012DB84 93C204C9 */ lbu $v0, 0x4C9($fp) -/* C2A18 8012DB88 3C018015 */ lui $at, %hi(D_JP_80155818) -/* C2A1C 8012DB8C D4225818 */ ldc1 $f2, %lo(D_JP_80155818)($at) -/* C2A20 8012DB90 44820000 */ mtc1 $v0, $f0 -/* C2A24 8012DB94 00000000 */ nop -/* C2A28 8012DB98 46800020 */ cvt.s.w $f0, $f0 -/* C2A2C 8012DB9C 46000021 */ cvt.d.s $f0, $f0 -/* C2A30 8012DBA0 46220002 */ mul.d $f0, $f0, $f2 -/* C2A34 8012DBA4 00000000 */ nop -/* C2A38 8012DBA8 3C018015 */ lui $at, %hi(D_JP_80155820) -/* C2A3C 8012DBAC D4225820 */ ldc1 $f2, %lo(D_JP_80155820)($at) -/* C2A40 8012DBB0 46220000 */ add.d $f0, $f0, $f2 -/* C2A44 8012DBB4 44922000 */ mtc1 $s2, $f4 -/* C2A48 8012DBB8 00000000 */ nop -/* C2A4C 8012DBBC 46802120 */ cvt.s.w $f4, $f4 -/* C2A50 8012DBC0 462002A0 */ cvt.s.d $f10, $f0 -/* C2A54 8012DBC4 460A2102 */ mul.s $f4, $f4, $f10 -/* C2A58 8012DBC8 00000000 */ nop -/* C2A5C 8012DBCC 3C013FE0 */ lui $at, (0x3FE00000 >> 16) -/* C2A60 8012DBD0 44816800 */ mtc1 $at, $f13 -/* C2A64 8012DBD4 44806000 */ mtc1 $zero, $f12 -/* C2A68 8012DBD8 46002121 */ cvt.d.s $f4, $f4 -/* C2A6C 8012DBDC 462C2002 */ mul.d $f0, $f4, $f12 -/* C2A70 8012DBE0 00000000 */ nop -/* C2A74 8012DBE4 44933000 */ mtc1 $s3, $f6 -/* C2A78 8012DBE8 00000000 */ nop -/* C2A7C 8012DBEC 468031A0 */ cvt.s.w $f6, $f6 -/* C2A80 8012DBF0 460A3182 */ mul.s $f6, $f6, $f10 -/* C2A84 8012DBF4 00000000 */ nop -/* C2A88 8012DBF8 87C3041A */ lh $v1, 0x41A($fp) -/* C2A8C 8012DBFC 001217C2 */ srl $v0, $s2, 31 -/* C2A90 8012DC00 02421021 */ addu $v0, $s2, $v0 -/* C2A94 8012DC04 460031A1 */ cvt.d.s $f6, $f6 -/* C2A98 8012DC08 462C3202 */ mul.d $f8, $f6, $f12 -/* C2A9C 8012DC0C 00000000 */ nop -/* C2AA0 8012DC10 00021043 */ sra $v0, $v0, 1 -/* C2AA4 8012DC14 00621821 */ addu $v1, $v1, $v0 -/* C2AA8 8012DC18 001317C2 */ srl $v0, $s3, 31 -/* C2AAC 8012DC1C 02621021 */ addu $v0, $s3, $v0 -/* C2AB0 8012DC20 00021043 */ sra $v0, $v0, 1 -/* C2AB4 8012DC24 44831000 */ mtc1 $v1, $f2 -/* C2AB8 8012DC28 00000000 */ nop -/* C2ABC 8012DC2C 468010A0 */ cvt.s.w $f2, $f2 -/* C2AC0 8012DC30 87C3041C */ lh $v1, 0x41C($fp) -/* C2AC4 8012DC34 462C2100 */ add.d $f4, $f4, $f12 -/* C2AC8 8012DC38 460010A1 */ cvt.d.s $f2, $f2 -/* C2ACC 8012DC3C 00621821 */ addu $v1, $v1, $v0 -/* C2AD0 8012DC40 46201081 */ sub.d $f2, $f2, $f0 -/* C2AD4 8012DC44 44830000 */ mtc1 $v1, $f0 -/* C2AD8 8012DC48 00000000 */ nop -/* C2ADC 8012DC4C 46800020 */ cvt.s.w $f0, $f0 -/* C2AE0 8012DC50 46000021 */ cvt.d.s $f0, $f0 -/* C2AE4 8012DC54 46280001 */ sub.d $f0, $f0, $f8 -/* C2AE8 8012DC58 462010A0 */ cvt.s.d $f2, $f2 -/* C2AEC 8012DC5C 460010A1 */ cvt.d.s $f2, $f2 -/* C2AF0 8012DC60 462C1080 */ add.d $f2, $f2, $f12 -/* C2AF4 8012DC64 4620230D */ trunc.w.d $f12, $f4 -/* C2AF8 8012DC68 44126000 */ mfc1 $s2, $f12 -/* C2AFC 8012DC6C 3C013FE0 */ lui $at, (0x3FE00000 >> 16) -/* C2B00 8012DC70 44816800 */ mtc1 $at, $f13 -/* C2B04 8012DC74 44806000 */ mtc1 $zero, $f12 -/* C2B08 8012DC78 46200020 */ cvt.s.d $f0, $f0 -/* C2B0C 8012DC7C 462C3180 */ add.d $f6, $f6, $f12 -/* C2B10 8012DC80 46000021 */ cvt.d.s $f0, $f0 -/* C2B14 8012DC84 2A420018 */ slti $v0, $s2, 0x18 -/* C2B18 8012DC88 462C0000 */ add.d $f0, $f0, $f12 -/* C2B1C 8012DC8C 4620330D */ trunc.w.d $f12, $f6 -/* C2B20 8012DC90 44136000 */ mfc1 $s3, $f12 -/* C2B24 8012DC94 4620130D */ trunc.w.d $f12, $f2 -/* C2B28 8012DC98 44116000 */ mfc1 $s1, $f12 -/* C2B2C 8012DC9C 4620030D */ trunc.w.d $f12, $f0 -/* C2B30 8012DCA0 44106000 */ mfc1 $s0, $f12 -/* C2B34 8012DCA4 54400001 */ bnel $v0, $zero, .LJP_8012DCAC -/* C2B38 8012DCA8 24120018 */ addiu $s2, $zero, 0x18 -.LJP_8012DCAC: -/* C2B3C 8012DCAC 2A620018 */ slti $v0, $s3, 0x18 -/* C2B40 8012DCB0 54400001 */ bnel $v0, $zero, .LJP_8012DCB8 -/* C2B44 8012DCB4 24130018 */ addiu $s3, $zero, 0x18 -.LJP_8012DCB8: -/* C2B48 8012DCB8 3C018015 */ lui $at, %hi(D_JP_80155828) -/* C2B4C 8012DCBC D4225828 */ ldc1 $f2, %lo(D_JP_80155828)($at) -/* C2B50 8012DCC0 46005021 */ cvt.d.s $f0, $f10 -/* C2B54 8012DCC4 46220002 */ mul.d $f0, $f0, $f2 -/* C2B58 8012DCC8 00000000 */ nop -/* C2B5C 8012DCCC 3C0141E0 */ lui $at, (0x41E00000 >> 16) -/* C2B60 8012DCD0 44811800 */ mtc1 $at, $f3 -/* C2B64 8012DCD4 44801000 */ mtc1 $zero, $f2 -/* C2B68 8012DCD8 00000000 */ nop -/* C2B6C 8012DCDC 4620103E */ c.le.d $f2, $f0 -/* C2B70 8012DCE0 00000000 */ nop -/* C2B74 8012DCE4 45030005 */ bc1tl .LJP_8012DCFC -/* C2B78 8012DCE8 46220001 */ sub.d $f0, $f0, $f2 -/* C2B7C 8012DCEC 4620030D */ trunc.w.d $f12, $f0 -/* C2B80 8012DCF0 44036000 */ mfc1 $v1, $f12 -/* C2B84 8012DCF4 0804B745 */ j .LJP_8012DD14 -/* C2B88 8012DCF8 306200FF */ andi $v0, $v1, 0xFF -.LJP_8012DCFC: -/* C2B8C 8012DCFC 3C028000 */ lui $v0, (0x80000000 >> 16) -/* C2B90 8012DD00 4620030D */ trunc.w.d $f12, $f0 -/* C2B94 8012DD04 44036000 */ mfc1 $v1, $f12 -/* C2B98 8012DD08 00000000 */ nop -/* C2B9C 8012DD0C 00621825 */ or $v1, $v1, $v0 -/* C2BA0 8012DD10 306200FF */ andi $v0, $v1, 0xFF -.LJP_8012DD14: -/* C2BA4 8012DD14 3C018015 */ lui $at, %hi(D_JP_80155830) -/* C2BA8 8012DD18 D4225830 */ ldc1 $f2, %lo(D_JP_80155830)($at) -/* C2BAC 8012DD1C 44820000 */ mtc1 $v0, $f0 -/* C2BB0 8012DD20 00000000 */ nop -/* C2BB4 8012DD24 46800021 */ cvt.d.w $f0, $f0 -/* C2BB8 8012DD28 46220002 */ mul.d $f0, $f0, $f2 -/* C2BBC 8012DD2C 00000000 */ nop -/* C2BC0 8012DD30 4620030D */ trunc.w.d $f12, $f0 -/* C2BC4 8012DD34 44186000 */ mfc1 $t8, $f12 -/* C2BC8 8012DD38 0804B78D */ j .LJP_8012DE34 -/* C2BCC 8012DD3C A7B8008E */ sh $t8, 0x8E($sp) -.LJP_8012DD40: -/* C2BD0 8012DD40 24020003 */ addiu $v0, $zero, 0x3 -/* C2BD4 8012DD44 14620029 */ bne $v1, $v0, .LJP_8012DDEC -/* C2BD8 8012DD48 240400FF */ addiu $a0, $zero, 0xFF -/* C2BDC 8012DD4C 93C204D2 */ lbu $v0, 0x4D2($fp) -/* C2BE0 8012DD50 24420001 */ addiu $v0, $v0, 0x1 -/* C2BE4 8012DD54 A3C204D2 */ sb $v0, 0x4D2($fp) -/* C2BE8 8012DD58 304200FF */ andi $v0, $v0, 0xFF -/* C2BEC 8012DD5C 2C420005 */ sltiu $v0, $v0, 0x5 -/* C2BF0 8012DD60 14400004 */ bnez $v0, .LJP_8012DD74 -/* C2BF4 8012DD64 00000000 */ nop -/* C2BF8 8012DD68 8FC204BC */ lw $v0, 0x4BC($fp) -/* C2BFC 8012DD6C 34420001 */ ori $v0, $v0, 0x1 -/* C2C00 8012DD70 AFC204BC */ sw $v0, 0x4BC($fp) -.LJP_8012DD74: -/* C2C04 8012DD74 93C304D2 */ lbu $v1, 0x4D2($fp) -/* C2C08 8012DD78 3C018015 */ lui $at, %hi(D_JP_80155838) -/* C2C0C 8012DD7C D4225838 */ ldc1 $f2, %lo(D_JP_80155838)($at) -/* C2C10 8012DD80 00031040 */ sll $v0, $v1, 1 -/* C2C14 8012DD84 00431021 */ addu $v0, $v0, $v1 -/* C2C18 8012DD88 000210C0 */ sll $v0, $v0, 3 -/* C2C1C 8012DD8C 00431023 */ subu $v0, $v0, $v1 -/* C2C20 8012DD90 00021040 */ sll $v0, $v0, 1 -/* C2C24 8012DD94 0002A027 */ nor $s4, $zero, $v0 -/* C2C28 8012DD98 328200FF */ andi $v0, $s4, 0xFF -/* C2C2C 8012DD9C 44820000 */ mtc1 $v0, $f0 -/* C2C30 8012DDA0 00000000 */ nop -/* C2C34 8012DDA4 46800021 */ cvt.d.w $f0, $f0 -/* C2C38 8012DDA8 46220002 */ mul.d $f0, $f0, $f2 -/* C2C3C 8012DDAC 00000000 */ nop -/* C2C40 8012DDB0 24150001 */ addiu $s5, $zero, 0x1 -/* C2C44 8012DDB4 4620030D */ trunc.w.d $f12, $f0 -/* C2C48 8012DDB8 44036000 */ mfc1 $v1, $f12 -/* C2C4C 8012DDBC 00000000 */ nop -/* C2C50 8012DDC0 00031400 */ sll $v0, $v1, 16 -/* C2C54 8012DDC4 00021403 */ sra $v0, $v0, 16 -/* C2C58 8012DDC8 28420020 */ slti $v0, $v0, 0x20 -/* C2C5C 8012DDCC 14400003 */ bnez $v0, .LJP_8012DDDC -/* C2C60 8012DDD0 A7A3008E */ sh $v1, 0x8E($sp) -/* C2C64 8012DDD4 2463FFE0 */ addiu $v1, $v1, -0x20 -/* C2C68 8012DDD8 A7A3008E */ sh $v1, 0x8E($sp) -.LJP_8012DDDC: -/* C2C6C 8012DDDC 87D1041A */ lh $s1, 0x41A($fp) -/* C2C70 8012DDE0 87D0041C */ lh $s0, 0x41C($fp) -/* C2C74 8012DDE4 0804B78E */ j .LJP_8012DE38 -/* C2C78 8012DDE8 0220202D */ daddu $a0, $s1, $zero -.LJP_8012DDEC: -/* C2C7C 8012DDEC 24050020 */ addiu $a1, $zero, 0x20 -/* C2C80 8012DDF0 00A0302D */ daddu $a2, $a1, $zero -/* C2C84 8012DDF4 0000382D */ daddu $a3, $zero, $zero -/* C2C88 8012DDF8 26420002 */ addiu $v0, $s2, 0x2 -/* C2C8C 8012DDFC 87D1041A */ lh $s1, 0x41A($fp) -/* C2C90 8012DE00 87D0041C */ lh $s0, 0x41C($fp) -/* C2C94 8012DE04 3042FFFF */ andi $v0, $v0, 0xFFFF -/* C2C98 8012DE08 AFA20018 */ sw $v0, 0x18($sp) -/* C2C9C 8012DE0C 26620002 */ addiu $v0, $s3, 0x2 -/* C2CA0 8012DE10 3042FFFF */ andi $v0, $v0, 0xFFFF -/* C2CA4 8012DE14 AFA2001C */ sw $v0, 0x1C($sp) -/* C2CA8 8012DE18 2622FFFF */ addiu $v0, $s1, -0x1 -/* C2CAC 8012DE1C 3042FFFF */ andi $v0, $v0, 0xFFFF -/* C2CB0 8012DE20 AFA20010 */ sw $v0, 0x10($sp) -/* C2CB4 8012DE24 2602FFFF */ addiu $v0, $s0, -0x1 -/* C2CB8 8012DE28 3042FFFF */ andi $v0, $v0, 0xFFFF -/* C2CBC 8012DE2C 0C04C6C8 */ jal msg_draw_prim_rect -/* C2CC0 8012DE30 AFA20014 */ sw $v0, 0x14($sp) -.LJP_8012DE34: -/* C2CC4 8012DE34 0220202D */ daddu $a0, $s1, $zero -.LJP_8012DE38: -/* C2CC8 8012DE38 0200282D */ daddu $a1, $s0, $zero -/* C2CCC 8012DE3C 0240302D */ daddu $a2, $s2, $zero -/* C2CD0 8012DE40 24820002 */ addiu $v0, $a0, 0x2 -/* C2CD4 8012DE44 3C038016 */ lui $v1, %hi(msg_drawState) -/* C2CD8 8012DE48 8C63ACF4 */ lw $v1, %lo(msg_drawState)($v1) -/* C2CDC 8012DE4C 0260382D */ daddu $a3, $s3, $zero -/* C2CE0 8012DE50 AC620000 */ sw $v0, 0x0($v1) -/* C2CE4 8012DE54 24A20002 */ addiu $v0, $a1, 0x2 -/* C2CE8 8012DE58 AC620008 */ sw $v0, 0x8($v1) -/* C2CEC 8012DE5C 00861021 */ addu $v0, $a0, $a2 -/* C2CF0 8012DE60 2442FFFE */ addiu $v0, $v0, -0x2 -/* C2CF4 8012DE64 AC620004 */ sw $v0, 0x4($v1) -/* C2CF8 8012DE68 00B31021 */ addu $v0, $a1, $s3 -/* C2CFC 8012DE6C 2442FFFE */ addiu $v0, $v0, -0x2 -/* C2D00 8012DE70 AC62000C */ sw $v0, 0xC($v1) -/* C2D04 8012DE74 24190005 */ addiu $t9, $zero, 0x5 -/* C2D08 8012DE78 AFB90010 */ sw $t9, 0x10($sp) -/* C2D0C 8012DE7C 9063002B */ lbu $v1, 0x2B($v1) -/* C2D10 8012DE80 328200FF */ andi $v0, $s4, 0xFF -/* C2D14 8012DE84 AFB50018 */ sw $s5, 0x18($sp) -/* C2D18 8012DE88 AFA2001C */ sw $v0, 0x1C($sp) -/* C2D1C 8012DE8C AFA20020 */ sw $v0, 0x20($sp) -/* C2D20 8012DE90 0C04CB34 */ jal msg_draw_frame -/* C2D24 8012DE94 AFA30014 */ sw $v1, 0x14($sp) -/* C2D28 8012DE98 0C04C516 */ jal msg_reset_gfx_state -/* C2D2C 8012DE9C 329400FF */ andi $s4, $s4, 0xFF -/* C2D30 8012DEA0 3C048016 */ lui $a0, %hi(msg_drawState) -/* C2D34 8012DEA4 8C84ACF4 */ lw $a0, %lo(msg_drawState)($a0) -/* C2D38 8012DEA8 A7B400AE */ sh $s4, 0xAE($sp) -/* C2D3C 8012DEAC 8C820020 */ lw $v0, 0x20($a0) -/* C2D40 8012DEB0 94830034 */ lhu $v1, 0x34($a0) -/* C2D44 8012DEB4 2418000A */ addiu $t8, $zero, 0xA -/* C2D48 8012DEB8 A498004A */ sh $t8, 0x4A($a0) -/* C2D4C 8012DEBC 24420002 */ addiu $v0, $v0, 0x2 -/* C2D50 8012DEC0 34630010 */ ori $v1, $v1, 0x10 -/* C2D54 8012DEC4 AC820020 */ sw $v0, 0x20($a0) -/* C2D58 8012DEC8 0804C43A */ j .LJP_801310E8 -/* C2D5C 8012DECC A4830034 */ sh $v1, 0x34($a0) -.LJP_8012DED0: -/* C2D60 8012DED0 3C058016 */ lui $a1, %hi(msg_drawState) -/* C2D64 8012DED4 8CA5ACF4 */ lw $a1, %lo(msg_drawState)($a1) -/* C2D68 8012DED8 24020010 */ addiu $v0, $zero, 0x10 -/* C2D6C 8012DEDC 24190005 */ addiu $t9, $zero, 0x5 -/* C2D70 8012DEE0 A4A20046 */ sh $v0, 0x46($a1) -/* C2D74 8012DEE4 A4B90048 */ sh $t9, 0x48($a1) -/* C2D78 8012DEE8 87C2041A */ lh $v0, 0x41A($fp) -/* C2D7C 8012DEEC 24420005 */ addiu $v0, $v0, 0x5 -/* C2D80 8012DEF0 ACA20000 */ sw $v0, 0x0($a1) -/* C2D84 8012DEF4 87C2041C */ lh $v0, 0x41C($fp) -/* C2D88 8012DEF8 24420004 */ addiu $v0, $v0, 0x4 -/* C2D8C 8012DEFC ACA20008 */ sw $v0, 0x8($a1) -/* C2D90 8012DF00 87C2041A */ lh $v0, 0x41A($fp) -/* C2D94 8012DF04 97C304D4 */ lhu $v1, 0x4D4($fp) -/* C2D98 8012DF08 0000882D */ daddu $s1, $zero, $zero -/* C2D9C 8012DF0C 00431021 */ addu $v0, $v0, $v1 -/* C2DA0 8012DF10 2442FFF8 */ addiu $v0, $v0, -0x8 -/* C2DA4 8012DF14 ACA20004 */ sw $v0, 0x4($a1) -/* C2DA8 8012DF18 87C2041C */ lh $v0, 0x41C($fp) -/* C2DAC 8012DF1C 97C304D6 */ lhu $v1, 0x4D6($fp) -/* C2DB0 8012DF20 240400FF */ addiu $a0, $zero, 0xFF -/* C2DB4 8012DF24 00431021 */ addu $v0, $v0, $v1 -/* C2DB8 8012DF28 94A30006 */ lhu $v1, 0x6($a1) -/* C2DBC 8012DF2C 2442FFFB */ addiu $v0, $v0, -0x5 -/* C2DC0 8012DF30 ACA2000C */ sw $v0, 0xC($a1) -/* C2DC4 8012DF34 2463FFEF */ addiu $v1, $v1, -0x11 -/* C2DC8 8012DF38 A7C30442 */ sh $v1, 0x442($fp) -/* C2DCC 8012DF3C 94A2000E */ lhu $v0, 0xE($a1) -/* C2DD0 8012DF40 0000382D */ daddu $a3, $zero, $zero -/* C2DD4 8012DF44 2442FFEF */ addiu $v0, $v0, -0x11 -/* C2DD8 8012DF48 A7C20444 */ sh $v0, 0x444($fp) -/* C2DDC 8012DF4C A4A0004A */ sh $zero, 0x4A($a1) -/* C2DE0 8012DF50 97C2041A */ lhu $v0, 0x41A($fp) -/* C2DE4 8012DF54 24050020 */ addiu $a1, $zero, 0x20 -/* C2DE8 8012DF58 24420003 */ addiu $v0, $v0, 0x3 -/* C2DEC 8012DF5C 3042FFFF */ andi $v0, $v0, 0xFFFF -/* C2DF0 8012DF60 AFA20010 */ sw $v0, 0x10($sp) -/* C2DF4 8012DF64 97C2041C */ lhu $v0, 0x41C($fp) -/* C2DF8 8012DF68 00A0302D */ daddu $a2, $a1, $zero -/* C2DFC 8012DF6C 2442FFFF */ addiu $v0, $v0, -0x1 -/* C2E00 8012DF70 3042FFFF */ andi $v0, $v0, 0xFFFF -/* C2E04 8012DF74 AFA20014 */ sw $v0, 0x14($sp) -/* C2E08 8012DF78 97C204D4 */ lhu $v0, 0x4D4($fp) -/* C2E0C 8012DF7C 24180001 */ addiu $t8, $zero, 0x1 -/* C2E10 8012DF80 AFB8001C */ sw $t8, 0x1C($sp) -/* C2E14 8012DF84 2442FFFA */ addiu $v0, $v0, -0x6 -/* C2E18 8012DF88 3042FFFF */ andi $v0, $v0, 0xFFFF -/* C2E1C 8012DF8C 0C04C6C8 */ jal msg_draw_prim_rect -/* C2E20 8012DF90 AFA20018 */ sw $v0, 0x18($sp) -/* C2E24 8012DF94 24040020 */ addiu $a0, $zero, 0x20 -/* C2E28 8012DF98 240500FF */ addiu $a1, $zero, 0xFF -/* C2E2C 8012DF9C 97C2041A */ lhu $v0, 0x41A($fp) -/* C2E30 8012DFA0 0080302D */ daddu $a2, $a0, $zero -/* C2E34 8012DFA4 24420003 */ addiu $v0, $v0, 0x3 -/* C2E38 8012DFA8 3042FFFF */ andi $v0, $v0, 0xFFFF -/* C2E3C 8012DFAC AFA20010 */ sw $v0, 0x10($sp) -/* C2E40 8012DFB0 97C2041C */ lhu $v0, 0x41C($fp) -/* C2E44 8012DFB4 97C304D6 */ lhu $v1, 0x4D6($fp) -/* C2E48 8012DFB8 0000382D */ daddu $a3, $zero, $zero -/* C2E4C 8012DFBC 00431021 */ addu $v0, $v0, $v1 -/* C2E50 8012DFC0 3042FFFF */ andi $v0, $v0, 0xFFFF -/* C2E54 8012DFC4 AFA20014 */ sw $v0, 0x14($sp) -/* C2E58 8012DFC8 97C204D4 */ lhu $v0, 0x4D4($fp) -/* C2E5C 8012DFCC 24190001 */ addiu $t9, $zero, 0x1 -/* C2E60 8012DFD0 AFB9001C */ sw $t9, 0x1C($sp) -/* C2E64 8012DFD4 2442FFFA */ addiu $v0, $v0, -0x6 -/* C2E68 8012DFD8 3042FFFF */ andi $v0, $v0, 0xFFFF -/* C2E6C 8012DFDC 0C04C6C8 */ jal msg_draw_prim_rect -/* C2E70 8012DFE0 AFA20018 */ sw $v0, 0x18($sp) -/* C2E74 8012DFE4 93C304B8 */ lbu $v1, 0x4B8($fp) -/* C2E78 8012DFE8 24180002 */ addiu $t8, $zero, 0x2 -/* C2E7C 8012DFEC 14780011 */ bne $v1, $t8, .LJP_8012E034 -/* C2E80 8012DFF0 241000FF */ addiu $s0, $zero, 0xFF -/* C2E84 8012DFF4 93C304C9 */ lbu $v1, 0x4C9($fp) -/* C2E88 8012DFF8 00031040 */ sll $v0, $v1, 1 -/* C2E8C 8012DFFC 00431021 */ addu $v0, $v0, $v1 -/* C2E90 8012E000 00021100 */ sll $v0, $v0, 4 -/* C2E94 8012E004 24500050 */ addiu $s0, $v0, 0x50 -/* C2E98 8012E008 320200FF */ andi $v0, $s0, 0xFF -/* C2E9C 8012E00C 2442FFD0 */ addiu $v0, $v0, -0x30 -/* C2EA0 8012E010 24630001 */ addiu $v1, $v1, 0x1 -/* C2EA4 8012E014 A7A2008E */ sh $v0, 0x8E($sp) -/* C2EA8 8012E018 A3C304C9 */ sb $v1, 0x4C9($fp) -/* C2EAC 8012E01C 306300FF */ andi $v1, $v1, 0xFF -/* C2EB0 8012E020 24020004 */ addiu $v0, $zero, 0x4 -/* C2EB4 8012E024 14620017 */ bne $v1, $v0, .LJP_8012E084 -/* C2EB8 8012E028 24110001 */ addiu $s1, $zero, 0x1 -/* C2EBC 8012E02C 0804B821 */ j .LJP_8012E084 -/* C2EC0 8012E030 A3C304B8 */ sb $v1, 0x4B8($fp) -.LJP_8012E034: -/* C2EC4 8012E034 24020003 */ addiu $v0, $zero, 0x3 -/* C2EC8 8012E038 14620012 */ bne $v1, $v0, .LJP_8012E084 -/* C2ECC 8012E03C 2403FFD0 */ addiu $v1, $zero, -0x30 -/* C2ED0 8012E040 93C404D2 */ lbu $a0, 0x4D2($fp) -/* C2ED4 8012E044 00041080 */ sll $v0, $a0, 2 -/* C2ED8 8012E048 00441021 */ addu $v0, $v0, $a0 -/* C2EDC 8012E04C 000210C0 */ sll $v0, $v0, 3 -/* C2EE0 8012E050 00628023 */ subu $s0, $v1, $v0 -/* C2EE4 8012E054 320200FF */ andi $v0, $s0, 0xFF -/* C2EE8 8012E058 00431021 */ addu $v0, $v0, $v1 -/* C2EEC 8012E05C 24840001 */ addiu $a0, $a0, 0x1 -/* C2EF0 8012E060 A7A2008E */ sh $v0, 0x8E($sp) -/* C2EF4 8012E064 A3C404D2 */ sb $a0, 0x4D2($fp) -/* C2EF8 8012E068 308400FF */ andi $a0, $a0, 0xFF -/* C2EFC 8012E06C 24020004 */ addiu $v0, $zero, 0x4 -/* C2F00 8012E070 14820004 */ bne $a0, $v0, .LJP_8012E084 -/* C2F04 8012E074 24110001 */ addiu $s1, $zero, 0x1 -/* C2F08 8012E078 8FC204BC */ lw $v0, 0x4BC($fp) -/* C2F0C 8012E07C 34420001 */ ori $v0, $v0, 0x1 -/* C2F10 8012E080 AFC204BC */ sw $v0, 0x4BC($fp) -.LJP_8012E084: -/* C2F14 8012E084 87C4041A */ lh $a0, 0x41A($fp) -/* C2F18 8012E088 87C5041C */ lh $a1, 0x41C($fp) -/* C2F1C 8012E08C 97C604D4 */ lhu $a2, 0x4D4($fp) -/* C2F20 8012E090 97C704D6 */ lhu $a3, 0x4D6($fp) -/* C2F24 8012E094 24020006 */ addiu $v0, $zero, 0x6 -/* C2F28 8012E098 AFA20010 */ sw $v0, 0x10($sp) -/* C2F2C 8012E09C 3C028016 */ lui $v0, %hi(msg_drawState) -/* C2F30 8012E0A0 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) -/* C2F34 8012E0A4 9043002B */ lbu $v1, 0x2B($v0) -/* C2F38 8012E0A8 320200FF */ andi $v0, $s0, 0xFF -/* C2F3C 8012E0AC AFB10018 */ sw $s1, 0x18($sp) -/* C2F40 8012E0B0 AFA2001C */ sw $v0, 0x1C($sp) -/* C2F44 8012E0B4 AFA20020 */ sw $v0, 0x20($sp) -/* C2F48 8012E0B8 0C04CB34 */ jal msg_draw_frame -/* C2F4C 8012E0BC AFA30014 */ sw $v1, 0x14($sp) -/* C2F50 8012E0C0 0C04C516 */ jal msg_reset_gfx_state -/* C2F54 8012E0C4 321000FF */ andi $s0, $s0, 0xFF -/* C2F58 8012E0C8 3C038016 */ lui $v1, %hi(msg_drawState) -/* C2F5C 8012E0CC 8C63ACF4 */ lw $v1, %lo(msg_drawState)($v1) -/* C2F60 8012E0D0 8C620020 */ lw $v0, 0x20($v1) -/* C2F64 8012E0D4 0804BF3D */ j .LJP_8012FCF4 -/* C2F68 8012E0D8 A7B000AE */ sh $s0, 0xAE($sp) -.LJP_8012E0DC: -/* C2F6C 8012E0DC 24020012 */ addiu $v0, $zero, 0x12 -/* C2F70 8012E0E0 2404001C */ addiu $a0, $zero, 0x1C -/* C2F74 8012E0E4 3C038016 */ lui $v1, %hi(msg_drawState) -/* C2F78 8012E0E8 8C63ACF4 */ lw $v1, %lo(msg_drawState)($v1) -/* C2F7C 8012E0EC A4620046 */ sh $v0, 0x46($v1) -/* C2F80 8012E0F0 2402000D */ addiu $v0, $zero, 0xD -/* C2F84 8012E0F4 A4620048 */ sh $v0, 0x48($v1) -/* C2F88 8012E0F8 24020028 */ addiu $v0, $zero, 0x28 -/* C2F8C 8012E0FC A7C2041A */ sh $v0, 0x41A($fp) -/* C2F90 8012E100 240200F0 */ addiu $v0, $zero, 0xF0 -/* C2F94 8012E104 A7C204D4 */ sh $v0, 0x4D4($fp) -/* C2F98 8012E108 2402000F */ addiu $v0, $zero, 0xF -/* C2F9C 8012E10C A7C4041C */ sh $a0, 0x41C($fp) -/* C2FA0 8012E110 A062002B */ sb $v0, 0x2B($v1) -/* C2FA4 8012E114 93C204C8 */ lbu $v0, 0x4C8($fp) -/* C2FA8 8012E118 24190007 */ addiu $t9, $zero, 0x7 -/* C2FAC 8012E11C 1459000D */ bne $v0, $t9, .LJP_8012E154 -/* C2FB0 8012E120 241100FF */ addiu $s1, $zero, 0xFF -/* C2FB4 8012E124 3C18802E */ lui $t8, %hi(D_802E7890) -/* C2FB8 8012E128 27187890 */ addiu $t8, $t8, %lo(D_802E7890) -/* C2FBC 8012E12C 3C16802E */ lui $s6, %hi(D_802E7E30) -/* C2FC0 8012E130 26D67E30 */ addiu $s6, $s6, %lo(D_802E7E30) -/* C2FC4 8012E134 3C038016 */ lui $v1, %hi(msg_drawState) -/* C2FC8 8012E138 8C63ACF4 */ lw $v1, %lo(msg_drawState)($v1) -/* C2FCC 8012E13C 24020048 */ addiu $v0, $zero, 0x48 -/* C2FD0 8012E140 AFB800C0 */ sw $t8, 0xC0($sp) -/* C2FD4 8012E144 A7C204D6 */ sh $v0, 0x4D6($fp) -/* C2FD8 8012E148 24020018 */ addiu $v0, $zero, 0x18 -/* C2FDC 8012E14C 0804B85D */ j .LJP_8012E174 -/* C2FE0 8012E150 A462004A */ sh $v0, 0x4A($v1) -.LJP_8012E154: -/* C2FE4 8012E154 3C19802E */ lui $t9, %hi(D_802E7910) -/* C2FE8 8012E158 27397910 */ addiu $t9, $t9, %lo(D_802E7910) -/* C2FEC 8012E15C 3C028016 */ lui $v0, %hi(msg_drawState) -/* C2FF0 8012E160 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) -/* C2FF4 8012E164 3C16802E */ lui $s6, %hi(D_802E7E50) -/* C2FF8 8012E168 26D67E50 */ addiu $s6, $s6, %lo(D_802E7E50) -/* C2FFC 8012E16C AFB900C0 */ sw $t9, 0xC0($sp) -/* C3000 8012E170 A444004A */ sh $a0, 0x4A($v0) -.LJP_8012E174: -/* C3004 8012E174 24020036 */ addiu $v0, $zero, 0x36 -/* C3008 8012E178 3C048016 */ lui $a0, %hi(msg_drawState) -/* C300C 8012E17C 8C84ACF4 */ lw $a0, %lo(msg_drawState)($a0) -/* C3010 8012E180 24180002 */ addiu $t8, $zero, 0x2 -/* C3014 8012E184 AC820000 */ sw $v0, 0x0($a0) -/* C3018 8012E188 24020028 */ addiu $v0, $zero, 0x28 -/* C301C 8012E18C AC820008 */ sw $v0, 0x8($a0) -/* C3020 8012E190 24020107 */ addiu $v0, $zero, 0x107 -/* C3024 8012E194 AC820004 */ sw $v0, 0x4($a0) -/* C3028 8012E198 97C204D6 */ lhu $v0, 0x4D6($fp) -/* C302C 8012E19C 94830006 */ lhu $v1, 0x6($a0) -/* C3030 8012E1A0 24420011 */ addiu $v0, $v0, 0x11 -/* C3034 8012E1A4 2463FFF0 */ addiu $v1, $v1, -0x10 -/* C3038 8012E1A8 AC82000C */ sw $v0, 0xC($a0) -/* C303C 8012E1AC A7C30442 */ sh $v1, 0x442($fp) -/* C3040 8012E1B0 9482000E */ lhu $v0, 0xE($a0) -/* C3044 8012E1B4 93C504B8 */ lbu $a1, 0x4B8($fp) -/* C3048 8012E1B8 2442FFF7 */ addiu $v0, $v0, -0x9 -/* C304C 8012E1BC 14B80010 */ bne $a1, $t8, .LJP_8012E200 -/* C3050 8012E1C0 A7C20444 */ sh $v0, 0x444($fp) -/* C3054 8012E1C4 93C304C9 */ lbu $v1, 0x4C9($fp) -/* C3058 8012E1C8 00031180 */ sll $v0, $v1, 6 -/* C305C 8012E1CC 24510050 */ addiu $s1, $v0, 0x50 -/* C3060 8012E1D0 322200FF */ andi $v0, $s1, 0xFF -/* C3064 8012E1D4 2442FFD0 */ addiu $v0, $v0, -0x30 -/* C3068 8012E1D8 24630001 */ addiu $v1, $v1, 0x1 -/* C306C 8012E1DC A7A2008E */ sh $v0, 0x8E($sp) -/* C3070 8012E1E0 A3C304C9 */ sb $v1, 0x4C9($fp) -/* C3074 8012E1E4 306300FF */ andi $v1, $v1, 0xFF -/* C3078 8012E1E8 24020003 */ addiu $v0, $zero, 0x3 -/* C307C 8012E1EC 14620018 */ bne $v1, $v0, .LJP_8012E250 -/* C3080 8012E1F0 323900FF */ andi $t9, $s1, 0xFF -/* C3084 8012E1F4 24020004 */ addiu $v0, $zero, 0x4 -/* C3088 8012E1F8 0804B894 */ j .LJP_8012E250 -/* C308C 8012E1FC A3C204B8 */ sb $v0, 0x4B8($fp) -.LJP_8012E200: -/* C3090 8012E200 24020003 */ addiu $v0, $zero, 0x3 -/* C3094 8012E204 14A20012 */ bne $a1, $v0, .LJP_8012E250 -/* C3098 8012E208 323900FF */ andi $t9, $s1, 0xFF -/* C309C 8012E20C 93C404D2 */ lbu $a0, 0x4D2($fp) -/* C30A0 8012E210 2403FFD0 */ addiu $v1, $zero, -0x30 -/* C30A4 8012E214 00041040 */ sll $v0, $a0, 1 -/* C30A8 8012E218 00441021 */ addu $v0, $v0, $a0 -/* C30AC 8012E21C 00021100 */ sll $v0, $v0, 4 -/* C30B0 8012E220 00628823 */ subu $s1, $v1, $v0 -/* C30B4 8012E224 322200FF */ andi $v0, $s1, 0xFF -/* C30B8 8012E228 00431021 */ addu $v0, $v0, $v1 -/* C30BC 8012E22C 24840001 */ addiu $a0, $a0, 0x1 -/* C30C0 8012E230 A7A2008E */ sh $v0, 0x8E($sp) -/* C30C4 8012E234 A3C404D2 */ sb $a0, 0x4D2($fp) -/* C30C8 8012E238 308400FF */ andi $a0, $a0, 0xFF -/* C30CC 8012E23C 14850004 */ bne $a0, $a1, .LJP_8012E250 -/* C30D0 8012E240 323900FF */ andi $t9, $s1, 0xFF -/* C30D4 8012E244 8FC204BC */ lw $v0, 0x4BC($fp) -/* C30D8 8012E248 34420001 */ ori $v0, $v0, 0x1 -/* C30DC 8012E24C AFC204BC */ sw $v0, 0x4BC($fp) -.LJP_8012E250: -/* C30E0 8012E250 3C04802E */ lui $a0, %hi(D_802E7710) -/* C30E4 8012E254 24847710 */ addiu $a0, $a0, %lo(D_802E7710) -/* C30E8 8012E258 24050010 */ addiu $a1, $zero, 0x10 -/* C30EC 8012E25C 00A0302D */ daddu $a2, $a1, $zero -/* C30F0 8012E260 24070002 */ addiu $a3, $zero, 0x2 -/* C30F4 8012E264 24150028 */ addiu $s5, $zero, 0x28 -/* C30F8 8012E268 2410001C */ addiu $s0, $zero, 0x1C -/* C30FC 8012E26C 2418000A */ addiu $t8, $zero, 0xA -/* C3100 8012E270 A7B900AE */ sh $t9, 0xAE($sp) -/* C3104 8012E274 0300C82D */ daddu $t9, $t8, $zero -/* C3108 8012E278 24130136 */ addiu $s3, $zero, 0x136 -/* C310C 8012E27C 241200E6 */ addiu $s2, $zero, 0xE6 -/* C3110 8012E280 323100FF */ andi $s1, $s1, 0xFF -/* C3114 8012E284 AFA00010 */ sw $zero, 0x10($sp) -/* C3118 8012E288 AFB60014 */ sw $s6, 0x14($sp) -/* C311C 8012E28C AFB50018 */ sw $s5, 0x18($sp) -/* C3120 8012E290 AFB0001C */ sw $s0, 0x1C($sp) -/* C3124 8012E294 AFB80020 */ sw $t8, 0x20($sp) -/* C3128 8012E298 AFB90024 */ sw $t9, 0x24($sp) -/* C312C 8012E29C AFB30028 */ sw $s3, 0x28($sp) -/* C3130 8012E2A0 AFB2002C */ sw $s2, 0x2C($sp) -/* C3134 8012E2A4 0C04CEC8 */ jal draw_ci_image_with_clipping -/* C3138 8012E2A8 AFB10030 */ sw $s1, 0x30($sp) -/* C313C 8012E2AC 3C04802E */ lui $a0, %hi(D_802E7790) -/* C3140 8012E2B0 24847790 */ addiu $a0, $a0, %lo(D_802E7790) -/* C3144 8012E2B4 24050010 */ addiu $a1, $zero, 0x10 -/* C3148 8012E2B8 00A0302D */ daddu $a2, $a1, $zero -/* C314C 8012E2BC 24070002 */ addiu $a3, $zero, 0x2 -/* C3150 8012E2C0 24140108 */ addiu $s4, $zero, 0x108 -/* C3154 8012E2C4 2418000A */ addiu $t8, $zero, 0xA -/* C3158 8012E2C8 0300C82D */ daddu $t9, $t8, $zero -/* C315C 8012E2CC AFA00010 */ sw $zero, 0x10($sp) -/* C3160 8012E2D0 AFB60014 */ sw $s6, 0x14($sp) -/* C3164 8012E2D4 AFB40018 */ sw $s4, 0x18($sp) -/* C3168 8012E2D8 AFB0001C */ sw $s0, 0x1C($sp) -/* C316C 8012E2DC AFB80020 */ sw $t8, 0x20($sp) -/* C3170 8012E2E0 AFB90024 */ sw $t9, 0x24($sp) -/* C3174 8012E2E4 AFB30028 */ sw $s3, 0x28($sp) -/* C3178 8012E2E8 AFB2002C */ sw $s2, 0x2C($sp) -/* C317C 8012E2EC 0C04CEC8 */ jal draw_ci_image_with_clipping -/* C3180 8012E2F0 AFB10030 */ sw $s1, 0x30($sp) -/* C3184 8012E2F4 3C04802E */ lui $a0, %hi(D_802E7810) -/* C3188 8012E2F8 24847810 */ addiu $a0, $a0, %lo(D_802E7810) -/* C318C 8012E2FC 24050010 */ addiu $a1, $zero, 0x10 -/* C3190 8012E300 00A0302D */ daddu $a2, $a1, $zero -/* C3194 8012E304 24070002 */ addiu $a3, $zero, 0x2 -/* C3198 8012E308 AFA00010 */ sw $zero, 0x10($sp) -/* C319C 8012E30C AFB60014 */ sw $s6, 0x14($sp) -/* C31A0 8012E310 AFB50018 */ sw $s5, 0x18($sp) -/* C31A4 8012E314 97C204D6 */ lhu $v0, 0x4D6($fp) -/* C31A8 8012E318 2418000A */ addiu $t8, $zero, 0xA -/* C31AC 8012E31C 0300C82D */ daddu $t9, $t8, $zero -/* C31B0 8012E320 AFB80020 */ sw $t8, 0x20($sp) -/* C31B4 8012E324 AFB90024 */ sw $t9, 0x24($sp) -/* C31B8 8012E328 AFB30028 */ sw $s3, 0x28($sp) -/* C31BC 8012E32C AFB2002C */ sw $s2, 0x2C($sp) -/* C31C0 8012E330 AFB10030 */ sw $s1, 0x30($sp) -/* C31C4 8012E334 2442000C */ addiu $v0, $v0, 0xC -/* C31C8 8012E338 00A21004 */ sllv $v0, $v0, $a1 -/* C31CC 8012E33C 00A21007 */ srav $v0, $v0, $a1 -/* C31D0 8012E340 0C04CEC8 */ jal draw_ci_image_with_clipping -/* C31D4 8012E344 AFA2001C */ sw $v0, 0x1C($sp) -/* C31D8 8012E348 24050010 */ addiu $a1, $zero, 0x10 -/* C31DC 8012E34C 00A0302D */ daddu $a2, $a1, $zero -/* C31E0 8012E350 24070002 */ addiu $a3, $zero, 0x2 -/* C31E4 8012E354 AFA00010 */ sw $zero, 0x10($sp) -/* C31E8 8012E358 AFB60014 */ sw $s6, 0x14($sp) -/* C31EC 8012E35C AFB40018 */ sw $s4, 0x18($sp) -/* C31F0 8012E360 97C204D6 */ lhu $v0, 0x4D6($fp) -/* C31F4 8012E364 2418000A */ addiu $t8, $zero, 0xA -/* C31F8 8012E368 8FA400C0 */ lw $a0, 0xC0($sp) -/* C31FC 8012E36C 0300C82D */ daddu $t9, $t8, $zero -/* C3200 8012E370 AFB80020 */ sw $t8, 0x20($sp) -/* C3204 8012E374 AFB90024 */ sw $t9, 0x24($sp) -/* C3208 8012E378 AFB30028 */ sw $s3, 0x28($sp) -/* C320C 8012E37C AFB2002C */ sw $s2, 0x2C($sp) -/* C3210 8012E380 AFB10030 */ sw $s1, 0x30($sp) -/* C3214 8012E384 2442000C */ addiu $v0, $v0, 0xC -/* C3218 8012E388 00A21004 */ sllv $v0, $v0, $a1 -/* C321C 8012E38C 00A21007 */ srav $v0, $v0, $a1 -/* C3220 8012E390 0C04CEC8 */ jal draw_ci_image_with_clipping -/* C3224 8012E394 AFA2001C */ sw $v0, 0x1C($sp) -/* C3228 8012E398 3C120703 */ lui $s2, (0x703E03C >> 16) -/* C322C 8012E39C 3652E03C */ ori $s2, $s2, (0x703E03C & 0xFFFF) -/* C3230 8012E3A0 3C14F540 */ lui $s4, (0xF5400400 >> 16) -/* C3234 8012E3A4 36940400 */ ori $s4, $s4, (0xF5400400 & 0xFFFF) -/* C3238 8012E3A8 3C130001 */ lui $s3, (0x10050 >> 16) -/* C323C 8012E3AC 36730050 */ ori $s3, $s3, (0x10050 & 0xFFFF) -/* C3240 8012E3B0 3C150007 */ lui $s5, (0x7C03C >> 16) -/* C3244 8012E3B4 36B5C03C */ ori $s5, $s5, (0x7C03C & 0xFFFF) -/* C3248 8012E3B8 3C06E442 */ lui $a2, (0xE44200B0 >> 16) -/* C324C 8012E3BC 34C600B0 */ ori $a2, $a2, (0xE44200B0 & 0xFFFF) -/* C3250 8012E3C0 3C05000E */ lui $a1, (0xE0070 >> 16) -/* C3254 8012E3C4 34A50070 */ ori $a1, $a1, (0xE0070 & 0xFFFF) -/* C3258 8012E3C8 3C090400 */ lui $t1, (0x4000400 >> 16) -/* C325C 8012E3CC 35290400 */ ori $t1, $t1, (0x4000400 & 0xFFFF) -/* C3260 8012E3D0 3C0BFD48 */ lui $t3, (0xFD480007 >> 16) -/* C3264 8012E3D4 356B0007 */ ori $t3, $t3, (0xFD480007 & 0xFFFF) -/* C3268 8012E3D8 3C0AF548 */ lui $t2, (0xF5480200 >> 16) -/* C326C 8012E3DC 354A0200 */ ori $t2, $t2, (0xF5480200 & 0xFFFF) -/* C3270 8012E3E0 3C0D0701 */ lui $t5, (0x7014040 >> 16) -/* C3274 8012E3E4 35AD4040 */ ori $t5, $t5, (0x7014040 & 0xFFFF) -/* C3278 8012E3E8 3C0E0701 */ lui $t6, (0x701E07C >> 16) -/* C327C 8012E3EC 35CEE07C */ ori $t6, $t6, (0x701E07C & 0xFFFF) -/* C3280 8012E3F0 3C0CF540 */ lui $t4, (0xF5400200 >> 16) -/* C3284 8012E3F4 358C0200 */ ori $t4, $t4, (0xF5400200 & 0xFFFF) -/* C3288 8012E3F8 3C0F0001 */ lui $t7, (0x14040 >> 16) -/* C328C 8012E3FC 35EF4040 */ ori $t7, $t7, (0x14040 & 0xFFFF) -/* C3290 8012E400 3C100003 */ lui $s0, (0x3C07C >> 16) -/* C3294 8012E404 3610C07C */ ori $s0, $s0, (0x3C07C & 0xFFFF) -/* C3298 8012E408 3C11000A */ lui $s1, (0xA00B0 >> 16) -/* C329C 8012E40C 363100B0 */ ori $s1, $s1, (0xA00B0 & 0xFFFF) -/* C32A0 8012E410 3C160042 */ lui $s6, (0x4200B0 >> 16) -/* C32A4 8012E414 36D600B0 */ ori $s6, $s6, (0x4200B0 & 0xFFFF) -/* C32A8 8012E418 3C18FD48 */ lui $t8, (0xFD480003 >> 16) -/* C32AC 8012E41C 37180003 */ ori $t8, $t8, (0xFD480003 & 0xFFFF) -/* C32B0 8012E420 3C190700 */ lui $t9, (0x700C030 >> 16) -/* C32B4 8012E424 3739C030 */ ori $t9, $t9, (0x700C030 & 0xFFFF) -/* C32B8 8012E428 AFB800D0 */ sw $t8, 0xD0($sp) -/* C32BC 8012E42C 3C180700 */ lui $t8, (0x700E01C >> 16) -/* C32C0 8012E430 3718E01C */ ori $t8, $t8, (0x700E01C & 0xFFFF) -/* C32C4 8012E434 AFB900E0 */ sw $t9, 0xE0($sp) -/* C32C8 8012E438 3C190001 */ lui $t9, (0x1C01C >> 16) -/* C32CC 8012E43C 3739C01C */ ori $t9, $t9, (0x1C01C & 0xFFFF) -/* C32D0 8012E440 AFB800E4 */ sw $t8, 0xE4($sp) -/* C32D4 8012E444 3C18000E */ lui $t8, (0xE00B0 >> 16) -/* C32D8 8012E448 371800B0 */ ori $t8, $t8, (0xE00B0 & 0xFFFF) -/* C32DC 8012E44C 3C03802E */ lui $v1, %hi(D_802E7990) -/* C32E0 8012E450 24637990 */ addiu $v1, $v1, %lo(D_802E7990) -/* C32E4 8012E454 AFB900D4 */ sw $t9, 0xD4($sp) -/* C32E8 8012E458 8EE20000 */ lw $v0, 0x0($s7) -/* C32EC 8012E45C 3C08F200 */ lui $t0, (0xF2000000 >> 16) -/* C32F0 8012E460 AFB800D8 */ sw $t8, 0xD8($sp) -/* C32F4 8012E464 0040202D */ daddu $a0, $v0, $zero -/* C32F8 8012E468 24420008 */ addiu $v0, $v0, 0x8 -/* C32FC 8012E46C AEE20000 */ sw $v0, 0x0($s7) -/* C3300 8012E470 8FB900C4 */ lw $t9, 0xC4($sp) -/* C3304 8012E474 3C07E100 */ lui $a3, (0xE1000000 >> 16) -/* C3308 8012E478 AC830004 */ sw $v1, 0x4($a0) -/* C330C 8012E47C 24430008 */ addiu $v1, $v0, 0x8 -/* C3310 8012E480 AC990000 */ sw $t9, 0x0($a0) -/* C3314 8012E484 AEE30000 */ sw $v1, 0x0($s7) -/* C3318 8012E488 8FB800C8 */ lw $t8, 0xC8($sp) -/* C331C 8012E48C 24430010 */ addiu $v1, $v0, 0x10 -/* C3320 8012E490 AC580000 */ sw $t8, 0x0($v0) -/* C3324 8012E494 8FB900CC */ lw $t9, 0xCC($sp) -/* C3328 8012E498 3C18E600 */ lui $t8, (0xE6000000 >> 16) -/* C332C 8012E49C AC590004 */ sw $t9, 0x4($v0) -/* C3330 8012E4A0 AEE30000 */ sw $v1, 0x0($s7) -/* C3334 8012E4A4 24430018 */ addiu $v1, $v0, 0x18 -/* C3338 8012E4A8 3C19F400 */ lui $t9, (0xF4000000 >> 16) -/* C333C 8012E4AC AC580008 */ sw $t8, 0x8($v0) -/* C3340 8012E4B0 AC40000C */ sw $zero, 0xC($v0) -/* C3344 8012E4B4 AEE30000 */ sw $v1, 0x0($s7) -/* C3348 8012E4B8 24430020 */ addiu $v1, $v0, 0x20 -/* C334C 8012E4BC 3C18E700 */ lui $t8, (0xE7000000 >> 16) -/* C3350 8012E4C0 AC590010 */ sw $t9, 0x10($v0) -/* C3354 8012E4C4 AC520014 */ sw $s2, 0x14($v0) -/* C3358 8012E4C8 AEE30000 */ sw $v1, 0x0($s7) -/* C335C 8012E4CC 24430028 */ addiu $v1, $v0, 0x28 -/* C3360 8012E4D0 AC580018 */ sw $t8, 0x18($v0) -/* C3364 8012E4D4 AC40001C */ sw $zero, 0x1C($v0) -/* C3368 8012E4D8 AEE30000 */ sw $v1, 0x0($s7) -/* C336C 8012E4DC 24430030 */ addiu $v1, $v0, 0x30 -/* C3370 8012E4E0 AC540020 */ sw $s4, 0x20($v0) -/* C3374 8012E4E4 AC530024 */ sw $s3, 0x24($v0) -/* C3378 8012E4E8 AEE30000 */ sw $v1, 0x0($s7) -/* C337C 8012E4EC 24430038 */ addiu $v1, $v0, 0x38 -/* C3380 8012E4F0 AC480028 */ sw $t0, 0x28($v0) -/* C3384 8012E4F4 AC55002C */ sw $s5, 0x2C($v0) -/* C3388 8012E4F8 AEE30000 */ sw $v1, 0x0($s7) -/* C338C 8012E4FC 24430040 */ addiu $v1, $v0, 0x40 -/* C3390 8012E500 AC460030 */ sw $a2, 0x30($v0) -/* C3394 8012E504 AC450034 */ sw $a1, 0x34($v0) -/* C3398 8012E508 AEE30000 */ sw $v1, 0x0($s7) -/* C339C 8012E50C 24430048 */ addiu $v1, $v0, 0x48 -/* C33A0 8012E510 3C06F100 */ lui $a2, (0xF1000000 >> 16) -/* C33A4 8012E514 AC470038 */ sw $a3, 0x38($v0) -/* C33A8 8012E518 AC40003C */ sw $zero, 0x3C($v0) -/* C33AC 8012E51C AEE30000 */ sw $v1, 0x0($s7) -/* C33B0 8012E520 24430050 */ addiu $v1, $v0, 0x50 -/* C33B4 8012E524 AC460040 */ sw $a2, 0x40($v0) -/* C33B8 8012E528 AC490044 */ sw $t1, 0x44($v0) -/* C33BC 8012E52C AEE30000 */ sw $v1, 0x0($s7) -/* C33C0 8012E530 3C03802E */ lui $v1, %hi(D_802E7A90) -/* C33C4 8012E534 24637A90 */ addiu $v1, $v1, %lo(D_802E7A90) -/* C33C8 8012E538 AC4B0048 */ sw $t3, 0x48($v0) -/* C33CC 8012E53C AC43004C */ sw $v1, 0x4C($v0) -/* C33D0 8012E540 24430058 */ addiu $v1, $v0, 0x58 -/* C33D4 8012E544 AEE30000 */ sw $v1, 0x0($s7) -/* C33D8 8012E548 24430060 */ addiu $v1, $v0, 0x60 -/* C33DC 8012E54C 3C19E600 */ lui $t9, (0xE6000000 >> 16) -/* C33E0 8012E550 AC4A0050 */ sw $t2, 0x50($v0) -/* C33E4 8012E554 AC4D0054 */ sw $t5, 0x54($v0) -/* C33E8 8012E558 AEE30000 */ sw $v1, 0x0($s7) -/* C33EC 8012E55C 24430068 */ addiu $v1, $v0, 0x68 -/* C33F0 8012E560 3C18F400 */ lui $t8, (0xF4000000 >> 16) -/* C33F4 8012E564 AC590058 */ sw $t9, 0x58($v0) -/* C33F8 8012E568 AC40005C */ sw $zero, 0x5C($v0) -/* C33FC 8012E56C AEE30000 */ sw $v1, 0x0($s7) -/* C3400 8012E570 24430070 */ addiu $v1, $v0, 0x70 -/* C3404 8012E574 3C19E700 */ lui $t9, (0xE7000000 >> 16) -/* C3408 8012E578 AC580060 */ sw $t8, 0x60($v0) -/* C340C 8012E57C AC4E0064 */ sw $t6, 0x64($v0) -/* C3410 8012E580 AEE30000 */ sw $v1, 0x0($s7) -/* C3414 8012E584 24430078 */ addiu $v1, $v0, 0x78 -/* C3418 8012E588 AC590068 */ sw $t9, 0x68($v0) -/* C341C 8012E58C AC40006C */ sw $zero, 0x6C($v0) -/* C3420 8012E590 AEE30000 */ sw $v1, 0x0($s7) -/* C3424 8012E594 24430080 */ addiu $v1, $v0, 0x80 -/* C3428 8012E598 AC4C0070 */ sw $t4, 0x70($v0) -/* C342C 8012E59C AC4F0074 */ sw $t7, 0x74($v0) -/* C3430 8012E5A0 AEE30000 */ sw $v1, 0x0($s7) -/* C3434 8012E5A4 AC480078 */ sw $t0, 0x78($v0) -/* C3438 8012E5A8 AC50007C */ sw $s0, 0x7C($v0) -/* C343C 8012E5AC 97C404D6 */ lhu $a0, 0x4D6($fp) -/* C3440 8012E5B0 24430088 */ addiu $v1, $v0, 0x88 -/* C3444 8012E5B4 AEE30000 */ sw $v1, 0x0($s7) -/* C3448 8012E5B8 24430090 */ addiu $v1, $v0, 0x90 -/* C344C 8012E5BC AC510084 */ sw $s1, 0x84($v0) -/* C3450 8012E5C0 AEE30000 */ sw $v1, 0x0($s7) -/* C3454 8012E5C4 24430098 */ addiu $v1, $v0, 0x98 -/* C3458 8012E5C8 AC470088 */ sw $a3, 0x88($v0) -/* C345C 8012E5CC AC40008C */ sw $zero, 0x8C($v0) -/* C3460 8012E5D0 AEE30000 */ sw $v1, 0x0($s7) -/* C3464 8012E5D4 244300A0 */ addiu $v1, $v0, 0xA0 -/* C3468 8012E5D8 AC460090 */ sw $a2, 0x90($v0) -/* C346C 8012E5DC AC490094 */ sw $t1, 0x94($v0) -/* C3470 8012E5E0 AEE30000 */ sw $v1, 0x0($s7) -/* C3474 8012E5E4 3C03802E */ lui $v1, %hi(D_802E7BD0) -/* C3478 8012E5E8 24637BD0 */ addiu $v1, $v1, %lo(D_802E7BD0) -/* C347C 8012E5EC AC43009C */ sw $v1, 0x9C($v0) -/* C3480 8012E5F0 244300A8 */ addiu $v1, $v0, 0xA8 -/* C3484 8012E5F4 AC4B0098 */ sw $t3, 0x98($v0) -/* C3488 8012E5F8 AEE30000 */ sw $v1, 0x0($s7) -/* C348C 8012E5FC 3C03E40E */ lui $v1, (0xE40E0000 >> 16) -/* C3490 8012E600 3C05E442 */ lui $a1, (0xE4420000 >> 16) -/* C3494 8012E604 AC4A00A0 */ sw $t2, 0xA0($v0) -/* C3498 8012E608 2484000C */ addiu $a0, $a0, 0xC -/* C349C 8012E60C 00042080 */ sll $a0, $a0, 2 -/* C34A0 8012E610 30840FFF */ andi $a0, $a0, 0xFFF -/* C34A4 8012E614 00832025 */ or $a0, $a0, $v1 -/* C34A8 8012E618 244300B0 */ addiu $v1, $v0, 0xB0 -/* C34AC 8012E61C AC440080 */ sw $a0, 0x80($v0) -/* C34B0 8012E620 AC4D00A4 */ sw $t5, 0xA4($v0) -/* C34B4 8012E624 3C18E600 */ lui $t8, (0xE6000000 >> 16) -/* C34B8 8012E628 AEE30000 */ sw $v1, 0x0($s7) -/* C34BC 8012E62C 244300B8 */ addiu $v1, $v0, 0xB8 -/* C34C0 8012E630 3C19F400 */ lui $t9, (0xF4000000 >> 16) -/* C34C4 8012E634 AC5800A8 */ sw $t8, 0xA8($v0) -/* C34C8 8012E638 AC4000AC */ sw $zero, 0xAC($v0) -/* C34CC 8012E63C AEE30000 */ sw $v1, 0x0($s7) -/* C34D0 8012E640 244300C0 */ addiu $v1, $v0, 0xC0 -/* C34D4 8012E644 3C18E700 */ lui $t8, (0xE7000000 >> 16) -/* C34D8 8012E648 AC5900B0 */ sw $t9, 0xB0($v0) -/* C34DC 8012E64C AC4E00B4 */ sw $t6, 0xB4($v0) -/* C34E0 8012E650 AEE30000 */ sw $v1, 0x0($s7) -/* C34E4 8012E654 244300C8 */ addiu $v1, $v0, 0xC8 -/* C34E8 8012E658 AC5800B8 */ sw $t8, 0xB8($v0) -/* C34EC 8012E65C AC4000BC */ sw $zero, 0xBC($v0) -/* C34F0 8012E660 AEE30000 */ sw $v1, 0x0($s7) -/* C34F4 8012E664 244300D0 */ addiu $v1, $v0, 0xD0 -/* C34F8 8012E668 AC4C00C0 */ sw $t4, 0xC0($v0) -/* C34FC 8012E66C AC4F00C4 */ sw $t7, 0xC4($v0) -/* C3500 8012E670 AEE30000 */ sw $v1, 0x0($s7) -/* C3504 8012E674 AC4800C8 */ sw $t0, 0xC8($v0) -/* C3508 8012E678 AC5000CC */ sw $s0, 0xCC($v0) -/* C350C 8012E67C 97C404D6 */ lhu $a0, 0x4D6($fp) -/* C3510 8012E680 244300D8 */ addiu $v1, $v0, 0xD8 -/* C3514 8012E684 AEE30000 */ sw $v1, 0x0($s7) -/* C3518 8012E688 244300E0 */ addiu $v1, $v0, 0xE0 -/* C351C 8012E68C AC5600D4 */ sw $s6, 0xD4($v0) -/* C3520 8012E690 AEE30000 */ sw $v1, 0x0($s7) -/* C3524 8012E694 244300E8 */ addiu $v1, $v0, 0xE8 -/* C3528 8012E698 AC4700D8 */ sw $a3, 0xD8($v0) -/* C352C 8012E69C AC4000DC */ sw $zero, 0xDC($v0) -/* C3530 8012E6A0 AEE30000 */ sw $v1, 0x0($s7) -/* C3534 8012E6A4 244300F0 */ addiu $v1, $v0, 0xF0 -/* C3538 8012E6A8 AC4600E0 */ sw $a2, 0xE0($v0) -/* C353C 8012E6AC AC4900E4 */ sw $t1, 0xE4($v0) -/* C3540 8012E6B0 AEE30000 */ sw $v1, 0x0($s7) -/* C3544 8012E6B4 8FB900C4 */ lw $t9, 0xC4($sp) -/* C3548 8012E6B8 3C03802E */ lui $v1, %hi(D_802E7D10) -/* C354C 8012E6BC 24637D10 */ addiu $v1, $v1, %lo(D_802E7D10) -/* C3550 8012E6C0 AC5900E8 */ sw $t9, 0xE8($v0) -/* C3554 8012E6C4 AC4300EC */ sw $v1, 0xEC($v0) -/* C3558 8012E6C8 244300F8 */ addiu $v1, $v0, 0xF8 -/* C355C 8012E6CC AEE30000 */ sw $v1, 0x0($s7) -/* C3560 8012E6D0 24430100 */ addiu $v1, $v0, 0x100 -/* C3564 8012E6D4 2484000C */ addiu $a0, $a0, 0xC -/* C3568 8012E6D8 00042080 */ sll $a0, $a0, 2 -/* C356C 8012E6DC 8FB800C8 */ lw $t8, 0xC8($sp) -/* C3570 8012E6E0 30840FFF */ andi $a0, $a0, 0xFFF -/* C3574 8012E6E4 AC5800F0 */ sw $t8, 0xF0($v0) -/* C3578 8012E6E8 8FB900CC */ lw $t9, 0xCC($sp) -/* C357C 8012E6EC 3C18E600 */ lui $t8, (0xE6000000 >> 16) -/* C3580 8012E6F0 AC5900F4 */ sw $t9, 0xF4($v0) -/* C3584 8012E6F4 AEE30000 */ sw $v1, 0x0($s7) -/* C3588 8012E6F8 3C03E446 */ lui $v1, (0xE4460000 >> 16) -/* C358C 8012E6FC 00832025 */ or $a0, $a0, $v1 -/* C3590 8012E700 24430108 */ addiu $v1, $v0, 0x108 -/* C3594 8012E704 AC4400D0 */ sw $a0, 0xD0($v0) -/* C3598 8012E708 AC4000FC */ sw $zero, 0xFC($v0) -/* C359C 8012E70C 3C19F400 */ lui $t9, (0xF4000000 >> 16) -/* C35A0 8012E710 AC5800F8 */ sw $t8, 0xF8($v0) -/* C35A4 8012E714 AEE30000 */ sw $v1, 0x0($s7) -/* C35A8 8012E718 24430110 */ addiu $v1, $v0, 0x110 -/* C35AC 8012E71C 3C18E700 */ lui $t8, (0xE7000000 >> 16) -/* C35B0 8012E720 AC590100 */ sw $t9, 0x100($v0) -/* C35B4 8012E724 AC520104 */ sw $s2, 0x104($v0) -/* C35B8 8012E728 AEE30000 */ sw $v1, 0x0($s7) -/* C35BC 8012E72C 24430118 */ addiu $v1, $v0, 0x118 -/* C35C0 8012E730 AC580108 */ sw $t8, 0x108($v0) -/* C35C4 8012E734 AC40010C */ sw $zero, 0x10C($v0) -/* C35C8 8012E738 AEE30000 */ sw $v1, 0x0($s7) -/* C35CC 8012E73C 24430120 */ addiu $v1, $v0, 0x120 -/* C35D0 8012E740 AC540110 */ sw $s4, 0x110($v0) -/* C35D4 8012E744 AC530114 */ sw $s3, 0x114($v0) -/* C35D8 8012E748 AEE30000 */ sw $v1, 0x0($s7) -/* C35DC 8012E74C 24430128 */ addiu $v1, $v0, 0x128 -/* C35E0 8012E750 AC480118 */ sw $t0, 0x118($v0) -/* C35E4 8012E754 AC55011C */ sw $s5, 0x11C($v0) -/* C35E8 8012E758 AEE30000 */ sw $v1, 0x0($s7) -/* C35EC 8012E75C 24430130 */ addiu $v1, $v0, 0x130 -/* C35F0 8012E760 AEE30000 */ sw $v1, 0x0($s7) -/* C35F4 8012E764 24430138 */ addiu $v1, $v0, 0x138 -/* C35F8 8012E768 AEE30000 */ sw $v1, 0x0($s7) -/* C35FC 8012E76C 24430140 */ addiu $v1, $v0, 0x140 -/* C3600 8012E770 AEE30000 */ sw $v1, 0x0($s7) -/* C3604 8012E774 24430148 */ addiu $v1, $v0, 0x148 -/* C3608 8012E778 AEE30000 */ sw $v1, 0x0($s7) -/* C360C 8012E77C 97C304D6 */ lhu $v1, 0x4D6($fp) -/* C3610 8012E780 24440150 */ addiu $a0, $v0, 0x150 -/* C3614 8012E784 AEE40000 */ sw $a0, 0x0($s7) -/* C3618 8012E788 2463001C */ addiu $v1, $v1, 0x1C -/* C361C 8012E78C 00031880 */ sll $v1, $v1, 2 -/* C3620 8012E790 30630FFF */ andi $v1, $v1, 0xFFF -/* C3624 8012E794 00651825 */ or $v1, $v1, $a1 -/* C3628 8012E798 AC430120 */ sw $v1, 0x120($v0) -/* C362C 8012E79C 97C404D6 */ lhu $a0, 0x4D6($fp) -/* C3630 8012E7A0 24430158 */ addiu $v1, $v0, 0x158 -/* C3634 8012E7A4 AEE30000 */ sw $v1, 0x0($s7) -/* C3638 8012E7A8 AC470128 */ sw $a3, 0x128($v0) -/* C363C 8012E7AC AC40012C */ sw $zero, 0x12C($v0) -/* C3640 8012E7B0 AC460130 */ sw $a2, 0x130($v0) -/* C3644 8012E7B4 AC490134 */ sw $t1, 0x134($v0) -/* C3648 8012E7B8 8FB900D0 */ lw $t9, 0xD0($sp) -/* C364C 8012E7BC 3C03802E */ lui $v1, %hi(D_802E7E10) -/* C3650 8012E7C0 24637E10 */ addiu $v1, $v1, %lo(D_802E7E10) -/* C3654 8012E7C4 AC590138 */ sw $t9, 0x138($v0) -/* C3658 8012E7C8 3C19E600 */ lui $t9, (0xE6000000 >> 16) -/* C365C 8012E7CC 2484000C */ addiu $a0, $a0, 0xC -/* C3660 8012E7D0 00042080 */ sll $a0, $a0, 2 -/* C3664 8012E7D4 30840FFF */ andi $a0, $a0, 0xFFF -/* C3668 8012E7D8 AC43013C */ sw $v1, 0x13C($v0) -/* C366C 8012E7DC 3C03000E */ lui $v1, (0xE0000 >> 16) -/* C3670 8012E7E0 00832025 */ or $a0, $a0, $v1 -/* C3674 8012E7E4 AC4A0140 */ sw $t2, 0x140($v0) -/* C3678 8012E7E8 8FB800E0 */ lw $t8, 0xE0($sp) -/* C367C 8012E7EC 24430160 */ addiu $v1, $v0, 0x160 -/* C3680 8012E7F0 AC580144 */ sw $t8, 0x144($v0) -/* C3684 8012E7F4 AC40014C */ sw $zero, 0x14C($v0) -/* C3688 8012E7F8 AC440124 */ sw $a0, 0x124($v0) -/* C368C 8012E7FC 3C18F400 */ lui $t8, (0xF4000000 >> 16) -/* C3690 8012E800 AC590148 */ sw $t9, 0x148($v0) -/* C3694 8012E804 AC580150 */ sw $t8, 0x150($v0) -/* C3698 8012E808 8FB900E4 */ lw $t9, 0xE4($sp) -/* C369C 8012E80C 3C18E700 */ lui $t8, (0xE7000000 >> 16) -/* C36A0 8012E810 AC590154 */ sw $t9, 0x154($v0) -/* C36A4 8012E814 AEE30000 */ sw $v1, 0x0($s7) -/* C36A8 8012E818 24430168 */ addiu $v1, $v0, 0x168 -/* C36AC 8012E81C AC580158 */ sw $t8, 0x158($v0) -/* C36B0 8012E820 AC40015C */ sw $zero, 0x15C($v0) -/* C36B4 8012E824 AEE30000 */ sw $v1, 0x0($s7) -/* C36B8 8012E828 3403C030 */ ori $v1, $zero, 0xC030 -/* C36BC 8012E82C AC430164 */ sw $v1, 0x164($v0) -/* C36C0 8012E830 24430170 */ addiu $v1, $v0, 0x170 -/* C36C4 8012E834 AC4C0160 */ sw $t4, 0x160($v0) -/* C36C8 8012E838 AEE30000 */ sw $v1, 0x0($s7) -/* C36CC 8012E83C AC480168 */ sw $t0, 0x168($v0) -/* C36D0 8012E840 8FB900D4 */ lw $t9, 0xD4($sp) -/* C36D4 8012E844 AC59016C */ sw $t9, 0x16C($v0) -/* C36D8 8012E848 97C404D6 */ lhu $a0, 0x4D6($fp) -/* C36DC 8012E84C 24430178 */ addiu $v1, $v0, 0x178 -/* C36E0 8012E850 AEE30000 */ sw $v1, 0x0($s7) -/* C36E4 8012E854 8FB800D8 */ lw $t8, 0xD8($sp) -/* C36E8 8012E858 24430180 */ addiu $v1, $v0, 0x180 -/* C36EC 8012E85C AC580174 */ sw $t8, 0x174($v0) -/* C36F0 8012E860 AEE30000 */ sw $v1, 0x0($s7) -/* C36F4 8012E864 24430188 */ addiu $v1, $v0, 0x188 -/* C36F8 8012E868 2484000C */ addiu $a0, $a0, 0xC -/* C36FC 8012E86C 00042080 */ sll $a0, $a0, 2 -/* C3700 8012E870 30840FFF */ andi $a0, $a0, 0xFFF -/* C3704 8012E874 00852025 */ or $a0, $a0, $a1 -/* C3708 8012E878 AC470178 */ sw $a3, 0x178($v0) -/* C370C 8012E87C AC40017C */ sw $zero, 0x17C($v0) -/* C3710 8012E880 AEE30000 */ sw $v1, 0x0($s7) -/* C3714 8012E884 AC460180 */ sw $a2, 0x180($v0) -/* C3718 8012E888 AC490184 */ sw $t1, 0x184($v0) -/* C371C 8012E88C 0804BB1C */ j .LJP_8012EC70 -/* C3720 8012E890 AC440170 */ sw $a0, 0x170($v0) -.LJP_8012E894: -/* C3724 8012E894 0000902D */ daddu $s2, $zero, $zero -/* C3728 8012E898 240400FF */ addiu $a0, $zero, 0xFF -/* C372C 8012E89C 24050020 */ addiu $a1, $zero, 0x20 -/* C3730 8012E8A0 2402000C */ addiu $v0, $zero, 0xC -/* C3734 8012E8A4 00A0302D */ daddu $a2, $a1, $zero -/* C3738 8012E8A8 3C078016 */ lui $a3, %hi(msg_drawState) -/* C373C 8012E8AC 8CE7ACF4 */ lw $a3, %lo(msg_drawState)($a3) -/* C3740 8012E8B0 2411002B */ addiu $s1, $zero, 0x2B -/* C3744 8012E8B4 24190005 */ addiu $t9, $zero, 0x5 -/* C3748 8012E8B8 A4E20046 */ sh $v0, 0x46($a3) -/* C374C 8012E8BC 24020028 */ addiu $v0, $zero, 0x28 -/* C3750 8012E8C0 A4F90048 */ sh $t9, 0x48($a3) -/* C3754 8012E8C4 A7C2041A */ sh $v0, 0x41A($fp) -/* C3758 8012E8C8 2402001C */ addiu $v0, $zero, 0x1C -/* C375C 8012E8CC A7C2041C */ sh $v0, 0x41C($fp) -/* C3760 8012E8D0 2402002D */ addiu $v0, $zero, 0x2D -/* C3764 8012E8D4 ACE20000 */ sw $v0, 0x0($a3) -/* C3768 8012E8D8 00A0102D */ daddu $v0, $a1, $zero -/* C376C 8012E8DC ACE20008 */ sw $v0, 0x8($a3) -/* C3770 8012E8E0 24020110 */ addiu $v0, $zero, 0x110 -/* C3774 8012E8E4 ACE20004 */ sw $v0, 0x4($a3) -/* C3778 8012E8E8 94E30006 */ lhu $v1, 0x6($a3) -/* C377C 8012E8EC 24020051 */ addiu $v0, $zero, 0x51 -/* C3780 8012E8F0 ACE2000C */ sw $v0, 0xC($a3) -/* C3784 8012E8F4 2463FFEB */ addiu $v1, $v1, -0x15 -/* C3788 8012E8F8 A7C30442 */ sh $v1, 0x442($fp) -/* C378C 8012E8FC 94E2000E */ lhu $v0, 0xE($a3) -/* C3790 8012E900 241000EA */ addiu $s0, $zero, 0xEA -/* C3794 8012E904 2442FFEC */ addiu $v0, $v0, -0x14 -/* C3798 8012E908 A7C20444 */ sh $v0, 0x444($fp) -/* C379C 8012E90C A0E0002B */ sb $zero, 0x2B($a3) -/* C37A0 8012E910 3C028016 */ lui $v0, %hi(msg_drawState) -/* C37A4 8012E914 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) -/* C37A8 8012E918 0000382D */ daddu $a3, $zero, $zero -/* C37AC 8012E91C A440004A */ sh $zero, 0x4A($v0) -/* C37B0 8012E920 2402001B */ addiu $v0, $zero, 0x1B -/* C37B4 8012E924 24180001 */ addiu $t8, $zero, 0x1 -/* C37B8 8012E928 AFB10010 */ sw $s1, 0x10($sp) -/* C37BC 8012E92C AFA20014 */ sw $v0, 0x14($sp) -/* C37C0 8012E930 AFB00018 */ sw $s0, 0x18($sp) -/* C37C4 8012E934 0C04C6C8 */ jal msg_draw_prim_rect -/* C37C8 8012E938 AFB8001C */ sw $t8, 0x1C($sp) -/* C37CC 8012E93C 24040020 */ addiu $a0, $zero, 0x20 -/* C37D0 8012E940 240500FF */ addiu $a1, $zero, 0xFF -/* C37D4 8012E944 0080302D */ daddu $a2, $a0, $zero -/* C37D8 8012E948 0000382D */ daddu $a3, $zero, $zero -/* C37DC 8012E94C 24020056 */ addiu $v0, $zero, 0x56 -/* C37E0 8012E950 24190001 */ addiu $t9, $zero, 0x1 -/* C37E4 8012E954 AFB10010 */ sw $s1, 0x10($sp) -/* C37E8 8012E958 AFA20014 */ sw $v0, 0x14($sp) -/* C37EC 8012E95C AFB00018 */ sw $s0, 0x18($sp) -/* C37F0 8012E960 0C04C6C8 */ jal msg_draw_prim_rect -/* C37F4 8012E964 AFB9001C */ sw $t9, 0x1C($sp) -/* C37F8 8012E968 93C504B8 */ lbu $a1, 0x4B8($fp) -/* C37FC 8012E96C 24180002 */ addiu $t8, $zero, 0x2 -/* C3800 8012E970 14B80010 */ bne $a1, $t8, .LJP_8012E9B4 -/* C3804 8012E974 241300FF */ addiu $s3, $zero, 0xFF -/* C3808 8012E978 93C304C9 */ lbu $v1, 0x4C9($fp) -/* C380C 8012E97C 00031180 */ sll $v0, $v1, 6 -/* C3810 8012E980 24530050 */ addiu $s3, $v0, 0x50 -/* C3814 8012E984 326200FF */ andi $v0, $s3, 0xFF -/* C3818 8012E988 2442FFD0 */ addiu $v0, $v0, -0x30 -/* C381C 8012E98C 24630001 */ addiu $v1, $v1, 0x1 -/* C3820 8012E990 A7A2008E */ sh $v0, 0x8E($sp) -/* C3824 8012E994 A3C304C9 */ sb $v1, 0x4C9($fp) -/* C3828 8012E998 306300FF */ andi $v1, $v1, 0xFF -/* C382C 8012E99C 24020003 */ addiu $v0, $zero, 0x3 -/* C3830 8012E9A0 14620018 */ bne $v1, $v0, .LJP_8012EA04 -/* C3834 8012E9A4 24120001 */ addiu $s2, $zero, 0x1 -/* C3838 8012E9A8 24020004 */ addiu $v0, $zero, 0x4 -/* C383C 8012E9AC 0804BA81 */ j .LJP_8012EA04 -/* C3840 8012E9B0 A3C204B8 */ sb $v0, 0x4B8($fp) -.LJP_8012E9B4: -/* C3844 8012E9B4 24020003 */ addiu $v0, $zero, 0x3 -/* C3848 8012E9B8 14A20013 */ bne $a1, $v0, .LJP_8012EA08 -/* C384C 8012E9BC 24040028 */ addiu $a0, $zero, 0x28 -/* C3850 8012E9C0 93C404D2 */ lbu $a0, 0x4D2($fp) -/* C3854 8012E9C4 2403FFD0 */ addiu $v1, $zero, -0x30 -/* C3858 8012E9C8 00041040 */ sll $v0, $a0, 1 -/* C385C 8012E9CC 00441021 */ addu $v0, $v0, $a0 -/* C3860 8012E9D0 00021100 */ sll $v0, $v0, 4 -/* C3864 8012E9D4 00629823 */ subu $s3, $v1, $v0 -/* C3868 8012E9D8 326200FF */ andi $v0, $s3, 0xFF -/* C386C 8012E9DC 00431021 */ addu $v0, $v0, $v1 -/* C3870 8012E9E0 24840001 */ addiu $a0, $a0, 0x1 -/* C3874 8012E9E4 A7A2008E */ sh $v0, 0x8E($sp) -/* C3878 8012E9E8 A3C404D2 */ sb $a0, 0x4D2($fp) -/* C387C 8012E9EC 308400FF */ andi $a0, $a0, 0xFF -/* C3880 8012E9F0 14850004 */ bne $a0, $a1, .LJP_8012EA04 -/* C3884 8012E9F4 24120001 */ addiu $s2, $zero, 0x1 -/* C3888 8012E9F8 8FC204BC */ lw $v0, 0x4BC($fp) -/* C388C 8012E9FC 34420001 */ ori $v0, $v0, 0x1 -/* C3890 8012EA00 AFC204BC */ sw $v0, 0x4BC($fp) -.LJP_8012EA04: -/* C3894 8012EA04 24040028 */ addiu $a0, $zero, 0x28 -.LJP_8012EA08: -/* C3898 8012EA08 2405001C */ addiu $a1, $zero, 0x1C -/* C389C 8012EA0C 240600F0 */ addiu $a2, $zero, 0xF0 -/* C38A0 8012EA10 24020006 */ addiu $v0, $zero, 0x6 -/* C38A4 8012EA14 3C038016 */ lui $v1, %hi(msg_drawState) -/* C38A8 8012EA18 8C63ACF4 */ lw $v1, %lo(msg_drawState)($v1) -/* C38AC 8012EA1C 2407003A */ addiu $a3, $zero, 0x3A -/* C38B0 8012EA20 AFA20010 */ sw $v0, 0x10($sp) -/* C38B4 8012EA24 9062002B */ lbu $v0, 0x2B($v1) -/* C38B8 8012EA28 327000FF */ andi $s0, $s3, 0xFF -/* C38BC 8012EA2C AFB20018 */ sw $s2, 0x18($sp) -/* C38C0 8012EA30 AFB0001C */ sw $s0, 0x1C($sp) -/* C38C4 8012EA34 AFB00020 */ sw $s0, 0x20($sp) -/* C38C8 8012EA38 0C04CB34 */ jal msg_draw_frame -/* C38CC 8012EA3C AFA20014 */ sw $v0, 0x14($sp) -/* C38D0 8012EA40 24050096 */ addiu $a1, $zero, 0x96 -/* C38D4 8012EA44 24060069 */ addiu $a2, $zero, 0x69 -/* C38D8 8012EA48 AFA00010 */ sw $zero, 0x10($sp) -/* C38DC 8012EA4C 8FC30508 */ lw $v1, 0x508($fp) -/* C38E0 8012EA50 24020055 */ addiu $v0, $zero, 0x55 -/* C38E4 8012EA54 AFA20018 */ sw $v0, 0x18($sp) -/* C38E8 8012EA58 24020061 */ addiu $v0, $zero, 0x61 -/* C38EC 8012EA5C 2419000A */ addiu $t9, $zero, 0xA -/* C38F0 8012EA60 0320C02D */ daddu $t8, $t9, $zero -/* C38F4 8012EA64 2412012C */ addiu $s2, $zero, 0x12C -/* C38F8 8012EA68 241100DC */ addiu $s1, $zero, 0xDC -/* C38FC 8012EA6C AFA2001C */ sw $v0, 0x1C($sp) -/* C3900 8012EA70 AFB90020 */ sw $t9, 0x20($sp) -/* C3904 8012EA74 AFB80024 */ sw $t8, 0x24($sp) -/* C3908 8012EA78 AFB20028 */ sw $s2, 0x28($sp) -/* C390C 8012EA7C AFB1002C */ sw $s1, 0x2C($sp) -/* C3910 8012EA80 AFB00030 */ sw $s0, 0x30($sp) -/* C3914 8012EA84 AFA30014 */ sw $v1, 0x14($sp) -/* C3918 8012EA88 8FC40504 */ lw $a0, 0x504($fp) -/* C391C 8012EA8C 0C04CEC8 */ jal draw_ci_image_with_clipping -/* C3920 8012EA90 24070002 */ addiu $a3, $zero, 0x2 -/* C3924 8012EA94 24050046 */ addiu $a1, $zero, 0x46 -/* C3928 8012EA98 2406005F */ addiu $a2, $zero, 0x5F -/* C392C 8012EA9C 24190001 */ addiu $t9, $zero, 0x1 -/* C3930 8012EAA0 AFB90010 */ sw $t9, 0x10($sp) -/* C3934 8012EAA4 8FC30510 */ lw $v1, 0x510($fp) -/* C3938 8012EAA8 240200A0 */ addiu $v0, $zero, 0xA0 -/* C393C 8012EAAC AFA20018 */ sw $v0, 0x18($sp) -/* C3940 8012EAB0 24020066 */ addiu $v0, $zero, 0x66 -/* C3944 8012EAB4 2418000A */ addiu $t8, $zero, 0xA -/* C3948 8012EAB8 0300C82D */ daddu $t9, $t8, $zero -/* C394C 8012EABC AFA2001C */ sw $v0, 0x1C($sp) -/* C3950 8012EAC0 AFB80020 */ sw $t8, 0x20($sp) -/* C3954 8012EAC4 AFB90024 */ sw $t9, 0x24($sp) -/* C3958 8012EAC8 AFB20028 */ sw $s2, 0x28($sp) -/* C395C 8012EACC AFB1002C */ sw $s1, 0x2C($sp) -/* C3960 8012EAD0 AFB00030 */ sw $s0, 0x30($sp) -/* C3964 8012EAD4 AFA30014 */ sw $v1, 0x14($sp) -/* C3968 8012EAD8 8FC4050C */ lw $a0, 0x50C($fp) -/* C396C 8012EADC 0C04CEC8 */ jal draw_ci_image_with_clipping -/* C3970 8012EAE0 24070002 */ addiu $a3, $zero, 0x2 -/* C3974 8012EAE4 0C04C516 */ jal msg_reset_gfx_state -/* C3978 8012EAE8 327300FF */ andi $s3, $s3, 0xFF -/* C397C 8012EAEC 3C038016 */ lui $v1, %hi(msg_drawState) -/* C3980 8012EAF0 8C63ACF4 */ lw $v1, %lo(msg_drawState)($v1) -/* C3984 8012EAF4 8C620020 */ lw $v0, 0x20($v1) -/* C3988 8012EAF8 0804BF3D */ j .LJP_8012FCF4 -/* C398C 8012EAFC A7B300AE */ sh $s3, 0xAE($sp) -.LJP_8012EB00: -/* C3990 8012EB00 3C038016 */ lui $v1, %hi(msg_drawState) -/* C3994 8012EB04 8C63ACF4 */ lw $v1, %lo(msg_drawState)($v1) -/* C3998 8012EB08 94640034 */ lhu $a0, 0x34($v1) -/* C399C 8012EB0C 24020010 */ addiu $v0, $zero, 0x10 -/* C39A0 8012EB10 A4620046 */ sh $v0, 0x46($v1) -/* C39A4 8012EB14 24020008 */ addiu $v0, $zero, 0x8 -/* C39A8 8012EB18 A4620048 */ sh $v0, 0x48($v1) -/* C39AC 8012EB1C 2402013F */ addiu $v0, $zero, 0x13F -/* C39B0 8012EB20 AC620004 */ sw $v0, 0x4($v1) -/* C39B4 8012EB24 240200EF */ addiu $v0, $zero, 0xEF -/* C39B8 8012EB28 AC600000 */ sw $zero, 0x0($v1) -/* C39BC 8012EB2C AC600008 */ sw $zero, 0x8($v1) -/* C39C0 8012EB30 AC62000C */ sw $v0, 0xC($v1) -/* C39C4 8012EB34 A460004A */ sh $zero, 0x4A($v1) -/* C39C8 8012EB38 34840010 */ ori $a0, $a0, 0x10 -/* C39CC 8012EB3C A4640034 */ sh $a0, 0x34($v1) -/* C39D0 8012EB40 93C204B8 */ lbu $v0, 0x4B8($fp) -/* C39D4 8012EB44 2442FFF3 */ addiu $v0, $v0, -0xD -/* C39D8 8012EB48 2C420002 */ sltiu $v0, $v0, 0x2 -/* C39DC 8012EB4C 10400004 */ beqz $v0, .LJP_8012EB60 -/* C39E0 8012EB50 0000202D */ daddu $a0, $zero, $zero -/* C39E4 8012EB54 A7C0041A */ sh $zero, 0x41A($fp) -/* C39E8 8012EB58 0804BB1C */ j .LJP_8012EC70 -/* C39EC 8012EB5C A7C0041C */ sh $zero, 0x41C($fp) -.LJP_8012EB60: -/* C39F0 8012EB60 0080282D */ daddu $a1, $a0, $zero -/* C39F4 8012EB64 97C304D4 */ lhu $v1, 0x4D4($fp) -/* C39F8 8012EB68 240200A0 */ addiu $v0, $zero, 0xA0 -/* C39FC 8012EB6C 00031842 */ srl $v1, $v1, 1 -/* C3A00 8012EB70 00431023 */ subu $v0, $v0, $v1 -/* C3A04 8012EB74 A7C2041A */ sh $v0, 0x41A($fp) -/* C3A08 8012EB78 87C6041A */ lh $a2, 0x41A($fp) -/* C3A0C 8012EB7C 24020038 */ addiu $v0, $zero, 0x38 -/* C3A10 8012EB80 A7C2041C */ sh $v0, 0x41C($fp) -/* C3A14 8012EB84 AFA00010 */ sw $zero, 0x10($sp) -/* C3A18 8012EB88 97C204D4 */ lhu $v0, 0x4D4($fp) -/* C3A1C 8012EB8C 24070038 */ addiu $a3, $zero, 0x38 -/* C3A20 8012EB90 AFA20014 */ sw $v0, 0x14($sp) -/* C3A24 8012EB94 97C304D6 */ lhu $v1, 0x4D6($fp) -/* C3A28 8012EB98 241800FF */ addiu $t8, $zero, 0xFF -/* C3A2C 8012EB9C 24020140 */ addiu $v0, $zero, 0x140 -/* C3A30 8012EBA0 AFA20044 */ sw $v0, 0x44($sp) -/* C3A34 8012EBA4 240200F0 */ addiu $v0, $zero, 0xF0 -/* C3A38 8012EBA8 AFB8001C */ sw $t8, 0x1C($sp) -/* C3A3C 8012EBAC AFA00020 */ sw $zero, 0x20($sp) -/* C3A40 8012EBB0 AFA00024 */ sw $zero, 0x24($sp) -/* C3A44 8012EBB4 AFA00028 */ sw $zero, 0x28($sp) -/* C3A48 8012EBB8 AFA0002C */ sw $zero, 0x2C($sp) -/* C3A4C 8012EBBC AFA00030 */ sw $zero, 0x30($sp) -/* C3A50 8012EBC0 AFA00034 */ sw $zero, 0x34($sp) -/* C3A54 8012EBC4 AFA00038 */ sw $zero, 0x38($sp) -/* C3A58 8012EBC8 AFA0003C */ sw $zero, 0x3C($sp) -/* C3A5C 8012EBCC AFA00040 */ sw $zero, 0x40($sp) -/* C3A60 8012EBD0 AFA20048 */ sw $v0, 0x48($sp) -/* C3A64 8012EBD4 AFA0004C */ sw $zero, 0x4C($sp) -/* C3A68 8012EBD8 0C03D51C */ jal draw_box -/* C3A6C 8012EBDC AFA30018 */ sw $v1, 0x18($sp) -/* C3A70 8012EBE0 0804BB1C */ j .LJP_8012EC70 -/* C3A74 8012EBE4 00000000 */ nop -.LJP_8012EBE8: -/* C3A78 8012EBE8 3C048016 */ lui $a0, %hi(msg_drawState) -/* C3A7C 8012EBEC 8C84ACF4 */ lw $a0, %lo(msg_drawState)($a0) -/* C3A80 8012EBF0 2402003C */ addiu $v0, $zero, 0x3C -/* C3A84 8012EBF4 A7C2041A */ sh $v0, 0x41A($fp) -/* C3A88 8012EBF8 2402006E */ addiu $v0, $zero, 0x6E -/* C3A8C 8012EBFC A7C2041C */ sh $v0, 0x41C($fp) -/* C3A90 8012EC00 240200C8 */ addiu $v0, $zero, 0xC8 -/* C3A94 8012EC04 A7C204D4 */ sh $v0, 0x4D4($fp) -/* C3A98 8012EC08 24020032 */ addiu $v0, $zero, 0x32 -/* C3A9C 8012EC0C A7C204D6 */ sh $v0, 0x4D6($fp) -/* C3AA0 8012EC10 A4800046 */ sh $zero, 0x46($a0) -/* C3AA4 8012EC14 A4800048 */ sh $zero, 0x48($a0) -/* C3AA8 8012EC18 87C2041A */ lh $v0, 0x41A($fp) -/* C3AAC 8012EC1C AC820000 */ sw $v0, 0x0($a0) -/* C3AB0 8012EC20 87C2041C */ lh $v0, 0x41C($fp) -/* C3AB4 8012EC24 AC820008 */ sw $v0, 0x8($a0) -/* C3AB8 8012EC28 87C2041A */ lh $v0, 0x41A($fp) -/* C3ABC 8012EC2C 97C304D4 */ lhu $v1, 0x4D4($fp) -/* C3AC0 8012EC30 00431021 */ addu $v0, $v0, $v1 -/* C3AC4 8012EC34 AC820004 */ sw $v0, 0x4($a0) -/* C3AC8 8012EC38 87C2041C */ lh $v0, 0x41C($fp) -/* C3ACC 8012EC3C 97C304D6 */ lhu $v1, 0x4D6($fp) -/* C3AD0 8012EC40 00431021 */ addu $v0, $v0, $v1 -/* C3AD4 8012EC44 AC82000C */ sw $v0, 0xC($a0) -/* C3AD8 8012EC48 97C3041A */ lhu $v1, 0x41A($fp) -/* C3ADC 8012EC4C 97C204D4 */ lhu $v0, 0x4D4($fp) -/* C3AE0 8012EC50 97C404D6 */ lhu $a0, 0x4D6($fp) -/* C3AE4 8012EC54 00621821 */ addu $v1, $v1, $v0 -/* C3AE8 8012EC58 97C2041C */ lhu $v0, 0x41C($fp) -/* C3AEC 8012EC5C 2463FFF6 */ addiu $v1, $v1, -0xA -/* C3AF0 8012EC60 A7C30442 */ sh $v1, 0x442($fp) -/* C3AF4 8012EC64 00441021 */ addu $v0, $v0, $a0 -/* C3AF8 8012EC68 2442FFF6 */ addiu $v0, $v0, -0xA -/* C3AFC 8012EC6C A7C20444 */ sh $v0, 0x444($fp) -.LJP_8012EC70: -/* C3B00 8012EC70 0C04C516 */ jal msg_reset_gfx_state -/* C3B04 8012EC74 00000000 */ nop -/* C3B08 8012EC78 0804BF3A */ j .LJP_8012FCE8 -/* C3B0C 8012EC7C 00000000 */ nop -.LJP_8012EC80: -/* C3B10 8012EC80 93C304B8 */ lbu $v1, 0x4B8($fp) -/* C3B14 8012EC84 2402000C */ addiu $v0, $zero, 0xC -/* C3B18 8012EC88 1462000A */ bne $v1, $v0, .LJP_8012ECB4 -/* C3B1C 8012EC8C 2402000B */ addiu $v0, $zero, 0xB -/* C3B20 8012EC90 3C028016 */ lui $v0, %hi(msg_drawState) -/* C3B24 8012EC94 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) -/* C3B28 8012EC98 93C30447 */ lbu $v1, 0x447($fp) -/* C3B2C 8012EC9C 90420050 */ lbu $v0, 0x50($v0) -/* C3B30 8012ECA0 0043102B */ sltu $v0, $v0, $v1 -/* C3B34 8012ECA4 14400037 */ bnez $v0, .LJP_8012ED84 -/* C3B38 8012ECA8 24190001 */ addiu $t9, $zero, 0x1 -/* C3B3C 8012ECAC 0804BB61 */ j .LJP_8012ED84 -/* C3B40 8012ECB0 A7B90080 */ sh $t9, 0x80($sp) -.LJP_8012ECB4: -/* C3B44 8012ECB4 14620033 */ bne $v1, $v0, .LJP_8012ED84 -/* C3B48 8012ECB8 00000000 */ nop -/* C3B4C 8012ECBC 93C50447 */ lbu $a1, 0x447($fp) -/* C3B50 8012ECC0 00051040 */ sll $v0, $a1, 1 -/* C3B54 8012ECC4 03C21021 */ addu $v0, $fp, $v0 -/* C3B58 8012ECC8 94430448 */ lhu $v1, 0x448($v0) -/* C3B5C 8012ECCC 8FC20420 */ lw $v0, 0x420($fp) -/* C3B60 8012ECD0 0043102A */ slt $v0, $v0, $v1 -/* C3B64 8012ECD4 10400009 */ beqz $v0, .LJP_8012ECFC -/* C3B68 8012ECD8 00A0182D */ daddu $v1, $a1, $zero -/* C3B6C 8012ECDC 3C028016 */ lui $v0, %hi(msg_drawState) -/* C3B70 8012ECE0 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) -/* C3B74 8012ECE4 90420050 */ lbu $v0, 0x50($v0) -/* C3B78 8012ECE8 0045102B */ sltu $v0, $v0, $a1 -/* C3B7C 8012ECEC 14400025 */ bnez $v0, .LJP_8012ED84 -/* C3B80 8012ECF0 24180001 */ addiu $t8, $zero, 0x1 -/* C3B84 8012ECF4 0804BB61 */ j .LJP_8012ED84 -/* C3B88 8012ECF8 A7B80080 */ sh $t8, 0x80($sp) -.LJP_8012ECFC: -/* C3B8C 8012ECFC 3C028016 */ lui $v0, %hi(msg_drawState) -/* C3B90 8012ED00 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) -/* C3B94 8012ED04 90440050 */ lbu $a0, 0x50($v0) -/* C3B98 8012ED08 0064102B */ sltu $v0, $v1, $a0 -/* C3B9C 8012ED0C 10400003 */ beqz $v0, .LJP_8012ED1C -/* C3BA0 8012ED10 24190001 */ addiu $t9, $zero, 0x1 -/* C3BA4 8012ED14 0804BB61 */ j .LJP_8012ED84 -/* C3BA8 8012ED18 A7B90080 */ sh $t9, 0x80($sp) -.LJP_8012ED1C: -/* C3BAC 8012ED1C 0083102B */ sltu $v0, $a0, $v1 -/* C3BB0 8012ED20 14400018 */ bnez $v0, .LJP_8012ED84 -/* C3BB4 8012ED24 00000000 */ nop -/* C3BB8 8012ED28 93C304FC */ lbu $v1, 0x4FC($fp) -/* C3BBC 8012ED2C 2C620002 */ sltiu $v0, $v1, 0x2 -/* C3BC0 8012ED30 14400014 */ bnez $v0, .LJP_8012ED84 -/* C3BC4 8012ED34 24040024 */ addiu $a0, $zero, 0x24 -/* C3BC8 8012ED38 24180002 */ addiu $t8, $zero, 0x2 -/* C3BCC 8012ED3C 14780002 */ bne $v1, $t8, .LJP_8012ED48 -/* C3BD0 8012ED40 24020030 */ addiu $v0, $zero, 0x30 -/* C3BD4 8012ED44 24020020 */ addiu $v0, $zero, 0x20 -.LJP_8012ED48: -/* C3BD8 8012ED48 97C30488 */ lhu $v1, 0x488($fp) -/* C3BDC 8012ED4C 0062102A */ slt $v0, $v1, $v0 -/* C3BE0 8012ED50 1040000C */ beqz $v0, .LJP_8012ED84 -/* C3BE4 8012ED54 2C620011 */ sltiu $v0, $v1, 0x11 -/* C3BE8 8012ED58 54400001 */ bnel $v0, $zero, .LJP_8012ED60 -/* C3BEC 8012ED5C 24040038 */ addiu $a0, $zero, 0x38 -.LJP_8012ED60: -/* C3BF0 8012ED60 97C2048C */ lhu $v0, 0x48C($fp) -/* C3BF4 8012ED64 00820018 */ mult $a0, $v0 -/* C3BF8 8012ED68 241800FF */ addiu $t8, $zero, 0xFF -/* C3BFC 8012ED6C 0000C812 */ mflo $t9 -/* C3C00 8012ED70 03191023 */ subu $v0, $t8, $t9 -/* C3C04 8012ED74 A7A2008E */ sh $v0, 0x8E($sp) -/* C3C08 8012ED78 00021400 */ sll $v0, $v0, 16 -/* C3C0C 8012ED7C 04420001 */ bltzl $v0, .LJP_8012ED84 -/* C3C10 8012ED80 A7A0008E */ sh $zero, 0x8E($sp) -.LJP_8012ED84: -/* C3C14 8012ED84 3C038016 */ lui $v1, %hi(msg_drawState) -/* C3C18 8012ED88 8C63ACF4 */ lw $v1, %lo(msg_drawState)($v1) -/* C3C1C 8012ED8C 90620050 */ lbu $v0, 0x50($v1) -/* C3C20 8012ED90 24420001 */ addiu $v0, $v0, 0x1 -/* C3C24 8012ED94 0804BE1A */ j .LJP_8012F868 -/* C3C28 8012ED98 A0620050 */ sb $v0, 0x50($v1) -.LJP_8012ED9C: -/* C3C2C 8012ED9C 24180001 */ addiu $t8, $zero, 0x1 -/* C3C30 8012EDA0 0804C43A */ j .LJP_801310E8 -/* C3C34 8012EDA4 A7B80080 */ sh $t8, 0x80($sp) -.LJP_8012EDA8: -/* C3C38 8012EDA8 3C038016 */ lui $v1, %hi(msg_drawState) -/* C3C3C 8012EDAC 8C63ACF4 */ lw $v1, %lo(msg_drawState)($v1) -/* C3C40 8012EDB0 8C620020 */ lw $v0, 0x20($v1) -/* C3C44 8012EDB4 8C64004C */ lw $a0, 0x4C($v1) -/* C3C48 8012EDB8 24420001 */ addiu $v0, $v0, 0x1 -/* C3C4C 8012EDBC 00822021 */ addu $a0, $a0, $v0 -/* C3C50 8012EDC0 AC620020 */ sw $v0, 0x20($v1) -/* C3C54 8012EDC4 90830000 */ lbu $v1, 0x0($a0) -/* C3C58 8012EDC8 2C62001F */ sltiu $v0, $v1, 0x1F -/* C3C5C 8012EDCC 104008C6 */ beqz $v0, .LJP_801310E8 -/* C3C60 8012EDD0 00031080 */ sll $v0, $v1, 2 -/* C3C64 8012EDD4 3C018015 */ lui $at, %hi(jtbl_JP_80155840) -/* C3C68 8012EDD8 00220821 */ addu $at, $at, $v0 -/* C3C6C 8012EDDC 8C225840 */ lw $v0, %lo(jtbl_JP_80155840)($at) -/* C3C70 8012EDE0 00400008 */ jr $v0 -/* C3C74 8012EDE4 00000000 */ nop -.LJP_8012EDE8: -/* C3C78 8012EDE8 3C048016 */ lui $a0, %hi(msg_drawState) -/* C3C7C 8012EDEC 8C84ACF4 */ lw $a0, %lo(msg_drawState)($a0) -/* C3C80 8012EDF0 8C820020 */ lw $v0, 0x20($a0) -/* C3C84 8012EDF4 8C83004C */ lw $v1, 0x4C($a0) -/* C3C88 8012EDF8 00431021 */ addu $v0, $v0, $v1 -/* C3C8C 8012EDFC 90450001 */ lbu $a1, 0x1($v0) -/* C3C90 8012EE00 8C820020 */ lw $v0, 0x20($a0) -/* C3C94 8012EE04 94830034 */ lhu $v1, 0x34($a0) -/* C3C98 8012EE08 24420002 */ addiu $v0, $v0, 0x2 -/* C3C9C 8012EE0C 34630010 */ ori $v1, $v1, 0x10 -/* C3CA0 8012EE10 AC820020 */ sw $v0, 0x20($a0) -/* C3CA4 8012EE14 A4830034 */ sh $v1, 0x34($a0) -/* C3CA8 8012EE18 0804C43A */ j .LJP_801310E8 -/* C3CAC 8012EE1C A485003C */ sh $a1, 0x3C($a0) -.LJP_8012EE20: -/* C3CB0 8012EE20 3C048016 */ lui $a0, %hi(msg_drawState) -/* C3CB4 8012EE24 8C84ACF4 */ lw $a0, %lo(msg_drawState)($a0) -/* C3CB8 8012EE28 8C830020 */ lw $v1, 0x20($a0) -/* C3CBC 8012EE2C 8C82004C */ lw $v0, 0x4C($a0) -/* C3CC0 8012EE30 00621821 */ addu $v1, $v1, $v0 -/* C3CC4 8012EE34 8C820020 */ lw $v0, 0x20($a0) -/* C3CC8 8012EE38 90630001 */ lbu $v1, 0x1($v1) -/* C3CCC 8012EE3C 24420002 */ addiu $v0, $v0, 0x2 -/* C3CD0 8012EE40 AC820020 */ sw $v0, 0x20($a0) -/* C3CD4 8012EE44 0804C43A */ j .LJP_801310E8 -/* C3CD8 8012EE48 A483003E */ sh $v1, 0x3E($a0) -.LJP_8012EE4C: -/* C3CDC 8012EE4C 3C048016 */ lui $a0, %hi(msg_drawState) -/* C3CE0 8012EE50 8C84ACF4 */ lw $a0, %lo(msg_drawState)($a0) -/* C3CE4 8012EE54 8C820020 */ lw $v0, 0x20($a0) -/* C3CE8 8012EE58 8C83004C */ lw $v1, 0x4C($a0) -/* C3CEC 8012EE5C 00431021 */ addu $v0, $v0, $v1 -/* C3CF0 8012EE60 90450001 */ lbu $a1, 0x1($v0) -/* C3CF4 8012EE64 94820034 */ lhu $v0, 0x34($a0) -/* C3CF8 8012EE68 8C830020 */ lw $v1, 0x20($a0) -/* C3CFC 8012EE6C 34420010 */ ori $v0, $v0, 0x10 -/* C3D00 8012EE70 24630002 */ addiu $v1, $v1, 0x2 -/* C3D04 8012EE74 A4820034 */ sh $v0, 0x34($a0) -/* C3D08 8012EE78 AC830020 */ sw $v1, 0x20($a0) -/* C3D0C 8012EE7C 0804C43A */ j .LJP_801310E8 -/* C3D10 8012EE80 A485004A */ sh $a1, 0x4A($a0) -.LJP_8012EE84: -/* C3D14 8012EE84 3C048016 */ lui $a0, %hi(msg_drawState) -/* C3D18 8012EE88 8C84ACF4 */ lw $a0, %lo(msg_drawState)($a0) -/* C3D1C 8012EE8C 8C820020 */ lw $v0, 0x20($a0) -/* C3D20 8012EE90 8C83004C */ lw $v1, 0x4C($a0) -/* C3D24 8012EE94 00431021 */ addu $v0, $v0, $v1 -/* C3D28 8012EE98 90420001 */ lbu $v0, 0x1($v0) -/* C3D2C 8012EE9C 0804BF3A */ j .LJP_8012FCE8 -/* C3D30 8012EEA0 A0820040 */ sb $v0, 0x40($a0) -.LJP_8012EEA4: -/* C3D34 8012EEA4 3C048016 */ lui $a0, %hi(msg_drawState) -/* C3D38 8012EEA8 8C84ACF4 */ lw $a0, %lo(msg_drawState)($a0) -/* C3D3C 8012EEAC 8C820020 */ lw $v0, 0x20($a0) -/* C3D40 8012EEB0 8C83004C */ lw $v1, 0x4C($a0) -/* C3D44 8012EEB4 00431021 */ addu $v0, $v0, $v1 -/* C3D48 8012EEB8 90420001 */ lbu $v0, 0x1($v0) -/* C3D4C 8012EEBC 3C013D80 */ lui $at, (0x3D800000 >> 16) -/* C3D50 8012EEC0 44812000 */ mtc1 $at, $f4 -/* C3D54 8012EEC4 3043000F */ andi $v1, $v0, 0xF -/* C3D58 8012EEC8 44830000 */ mtc1 $v1, $f0 -/* C3D5C 8012EECC 00000000 */ nop -/* C3D60 8012EED0 46800020 */ cvt.s.w $f0, $f0 -/* C3D64 8012EED4 46040002 */ mul.s $f0, $f0, $f4 -/* C3D68 8012EED8 00000000 */ nop -/* C3D6C 8012EEDC 00021102 */ srl $v0, $v0, 4 -/* C3D70 8012EEE0 44821000 */ mtc1 $v0, $f2 -/* C3D74 8012EEE4 00000000 */ nop -/* C3D78 8012EEE8 468010A0 */ cvt.s.w $f2, $f2 -/* C3D7C 8012EEEC 8C820020 */ lw $v0, 0x20($a0) -/* C3D80 8012EEF0 8C83004C */ lw $v1, 0x4C($a0) -/* C3D84 8012EEF4 46001080 */ add.s $f2, $f2, $f0 -/* C3D88 8012EEF8 00431021 */ addu $v0, $v0, $v1 -/* C3D8C 8012EEFC E4820010 */ swc1 $f2, 0x10($a0) -/* C3D90 8012EF00 90420002 */ lbu $v0, 0x2($v0) -/* C3D94 8012EF04 00021902 */ srl $v1, $v0, 4 -/* C3D98 8012EF08 3042000F */ andi $v0, $v0, 0xF -/* C3D9C 8012EF0C 44820000 */ mtc1 $v0, $f0 -/* C3DA0 8012EF10 00000000 */ nop -/* C3DA4 8012EF14 46800020 */ cvt.s.w $f0, $f0 -/* C3DA8 8012EF18 46040002 */ mul.s $f0, $f0, $f4 -/* C3DAC 8012EF1C 00000000 */ nop -/* C3DB0 8012EF20 3C013FF0 */ lui $at, (0x3FF00000 >> 16) -/* C3DB4 8012EF24 44816800 */ mtc1 $at, $f13 -/* C3DB8 8012EF28 44806000 */ mtc1 $zero, $f12 -/* C3DBC 8012EF2C 44831000 */ mtc1 $v1, $f2 -/* C3DC0 8012EF30 00000000 */ nop -/* C3DC4 8012EF34 468010A0 */ cvt.s.w $f2, $f2 -/* C3DC8 8012EF38 8C820020 */ lw $v0, 0x20($a0) -/* C3DCC 8012EF3C C4840010 */ lwc1 $f4, 0x10($a0) -/* C3DD0 8012EF40 46001080 */ add.s $f2, $f2, $f0 -/* C3DD4 8012EF44 24420003 */ addiu $v0, $v0, 0x3 -/* C3DD8 8012EF48 46002121 */ cvt.d.s $f4, $f4 -/* C3DDC 8012EF4C 4624603C */ c.lt.d $f12, $f4 -/* C3DE0 8012EF50 AC820020 */ sw $v0, 0x20($a0) -/* C3DE4 8012EF54 45010007 */ bc1t .LJP_8012EF74 -/* C3DE8 8012EF58 E4820014 */ swc1 $f2, 0x14($a0) -/* C3DEC 8012EF5C 46001006 */ mov.s $f0, $f2 -/* C3DF0 8012EF60 46000021 */ cvt.d.s $f0, $f0 -/* C3DF4 8012EF64 4620603C */ c.lt.d $f12, $f0 -/* C3DF8 8012EF68 00000000 */ nop -/* C3DFC 8012EF6C 4500000A */ bc1f .LJP_8012EF98 -/* C3E00 8012EF70 00000000 */ nop -.LJP_8012EF74: -/* C3E04 8012EF74 3C02E300 */ lui $v0, (0xE3001201 >> 16) -/* C3E08 8012EF78 8EE30000 */ lw $v1, 0x0($s7) -/* C3E0C 8012EF7C 34421201 */ ori $v0, $v0, (0xE3001201 & 0xFFFF) -/* C3E10 8012EF80 0060202D */ daddu $a0, $v1, $zero -/* C3E14 8012EF84 24630008 */ addiu $v1, $v1, 0x8 -/* C3E18 8012EF88 AEE30000 */ sw $v1, 0x0($s7) -/* C3E1C 8012EF8C AC820000 */ sw $v0, 0x0($a0) -/* C3E20 8012EF90 0804C43A */ j .LJP_801310E8 -/* C3E24 8012EF94 AC800004 */ sw $zero, 0x4($a0) -.LJP_8012EF98: -/* C3E28 8012EF98 462C203C */ c.lt.d $f4, $f12 -/* C3E2C 8012EF9C 00000000 */ nop -/* C3E30 8012EFA0 45010005 */ bc1t .LJP_8012EFB8 -/* C3E34 8012EFA4 3C04E300 */ lui $a0, (0xE3001201 >> 16) -/* C3E38 8012EFA8 462C003C */ c.lt.d $f0, $f12 -/* C3E3C 8012EFAC 00000000 */ nop -/* C3E40 8012EFB0 4500084D */ bc1f .LJP_801310E8 -/* C3E44 8012EFB4 00000000 */ nop -.LJP_8012EFB8: -/* C3E48 8012EFB8 8EE20000 */ lw $v0, 0x0($s7) -/* C3E4C 8012EFBC 34841201 */ ori $a0, $a0, (0xE3001201 & 0xFFFF) -/* C3E50 8012EFC0 0040182D */ daddu $v1, $v0, $zero -/* C3E54 8012EFC4 24420008 */ addiu $v0, $v0, 0x8 -/* C3E58 8012EFC8 AEE20000 */ sw $v0, 0x0($s7) -/* C3E5C 8012EFCC 24023000 */ addiu $v0, $zero, 0x3000 -/* C3E60 8012EFD0 AC640000 */ sw $a0, 0x0($v1) -/* C3E64 8012EFD4 0804C43A */ j .LJP_801310E8 -/* C3E68 8012EFD8 AC620004 */ sw $v0, 0x4($v1) -.LJP_8012EFDC: -/* C3E6C 8012EFDC 3C06E300 */ lui $a2, (0xE3001201 >> 16) -/* C3E70 8012EFE0 34C61201 */ ori $a2, $a2, (0xE3001201 & 0xFFFF) -/* C3E74 8012EFE4 8EE20000 */ lw $v0, 0x0($s7) -/* C3E78 8012EFE8 3C048016 */ lui $a0, %hi(msg_drawState) -/* C3E7C 8012EFEC 8C84ACF4 */ lw $a0, %lo(msg_drawState)($a0) -/* C3E80 8012EFF0 0040282D */ daddu $a1, $v0, $zero -/* C3E84 8012EFF4 24420008 */ addiu $v0, $v0, 0x8 -/* C3E88 8012EFF8 8C830020 */ lw $v1, 0x20($a0) -/* C3E8C 8012EFFC 3C013F80 */ lui $at, (0x3F800000 >> 16) -/* C3E90 8012F000 44816000 */ mtc1 $at, $f12 -/* C3E94 8012F004 24630001 */ addiu $v1, $v1, 0x1 -/* C3E98 8012F008 E48C0010 */ swc1 $f12, 0x10($a0) -/* C3E9C 8012F00C E48C0014 */ swc1 $f12, 0x14($a0) -/* C3EA0 8012F010 AEE20000 */ sw $v0, 0x0($s7) -/* C3EA4 8012F014 24023000 */ addiu $v0, $zero, 0x3000 -/* C3EA8 8012F018 AC830020 */ sw $v1, 0x20($a0) -/* C3EAC 8012F01C ACA60000 */ sw $a2, 0x0($a1) -/* C3EB0 8012F020 0804C43A */ j .LJP_801310E8 -/* C3EB4 8012F024 ACA20004 */ sw $v0, 0x4($a1) -.LJP_8012F028: -/* C3EB8 8012F028 3C058016 */ lui $a1, %hi(msg_drawState) -/* C3EBC 8012F02C 8CA5ACF4 */ lw $a1, %lo(msg_drawState)($a1) -/* C3EC0 8012F030 8CA30020 */ lw $v1, 0x20($a1) -/* C3EC4 8012F034 8CA2004C */ lw $v0, 0x4C($a1) -/* C3EC8 8012F038 00621821 */ addu $v1, $v1, $v0 -/* C3ECC 8012F03C 90640001 */ lbu $a0, 0x1($v1) -/* C3ED0 8012F040 8CA20020 */ lw $v0, 0x20($a1) -/* C3ED4 8012F044 90630002 */ lbu $v1, 0x2($v1) -/* C3ED8 8012F048 24420003 */ addiu $v0, $v0, 0x3 -/* C3EDC 8012F04C 00042200 */ sll $a0, $a0, 8 -/* C3EE0 8012F050 00641821 */ addu $v1, $v1, $a0 -/* C3EE4 8012F054 ACA20020 */ sw $v0, 0x20($a1) -/* C3EE8 8012F058 0804C43A */ j .LJP_801310E8 -/* C3EEC 8012F05C A4A30042 */ sh $v1, 0x42($a1) -.LJP_8012F060: -/* C3EF0 8012F060 3C048016 */ lui $a0, %hi(msg_drawState) -/* C3EF4 8012F064 8C84ACF4 */ lw $a0, %lo(msg_drawState)($a0) -/* C3EF8 8012F068 8C830020 */ lw $v1, 0x20($a0) -/* C3EFC 8012F06C 8C82004C */ lw $v0, 0x4C($a0) -/* C3F00 8012F070 00621821 */ addu $v1, $v1, $v0 -/* C3F04 8012F074 8C820020 */ lw $v0, 0x20($a0) -/* C3F08 8012F078 90630001 */ lbu $v1, 0x1($v1) -/* C3F0C 8012F07C 0804BC43 */ j .LJP_8012F10C -/* C3F10 8012F080 24420002 */ addiu $v0, $v0, 0x2 -.LJP_8012F084: -/* C3F14 8012F084 3C048016 */ lui $a0, %hi(msg_drawState) -/* C3F18 8012F088 8C84ACF4 */ lw $a0, %lo(msg_drawState)($a0) -/* C3F1C 8012F08C 8C820020 */ lw $v0, 0x20($a0) -/* C3F20 8012F090 8C83004C */ lw $v1, 0x4C($a0) -/* C3F24 8012F094 00431021 */ addu $v0, $v0, $v1 -/* C3F28 8012F098 90450001 */ lbu $a1, 0x1($v0) -/* C3F2C 8012F09C 8C820020 */ lw $v0, 0x20($a0) -/* C3F30 8012F0A0 94830042 */ lhu $v1, 0x42($a0) -/* C3F34 8012F0A4 24420002 */ addiu $v0, $v0, 0x2 -/* C3F38 8012F0A8 00651821 */ addu $v1, $v1, $a1 -/* C3F3C 8012F0AC AC820020 */ sw $v0, 0x20($a0) -/* C3F40 8012F0B0 0804C43A */ j .LJP_801310E8 -/* C3F44 8012F0B4 A4830042 */ sh $v1, 0x42($a0) -.LJP_8012F0B8: -/* C3F48 8012F0B8 3C048016 */ lui $a0, %hi(msg_drawState) -/* C3F4C 8012F0BC 8C84ACF4 */ lw $a0, %lo(msg_drawState)($a0) -/* C3F50 8012F0C0 8C820020 */ lw $v0, 0x20($a0) -/* C3F54 8012F0C4 8C83004C */ lw $v1, 0x4C($a0) -/* C3F58 8012F0C8 00431021 */ addu $v0, $v0, $v1 -/* C3F5C 8012F0CC 90450001 */ lbu $a1, 0x1($v0) -/* C3F60 8012F0D0 8C820020 */ lw $v0, 0x20($a0) -/* C3F64 8012F0D4 94830044 */ lhu $v1, 0x44($a0) -/* C3F68 8012F0D8 24420002 */ addiu $v0, $v0, 0x2 -/* C3F6C 8012F0DC 0804BC43 */ j .LJP_8012F10C -/* C3F70 8012F0E0 00651821 */ addu $v1, $v1, $a1 -.LJP_8012F0E4: -/* C3F74 8012F0E4 3C048016 */ lui $a0, %hi(msg_drawState) -/* C3F78 8012F0E8 8C84ACF4 */ lw $a0, %lo(msg_drawState)($a0) -/* C3F7C 8012F0EC 8C820020 */ lw $v0, 0x20($a0) -/* C3F80 8012F0F0 8C83004C */ lw $v1, 0x4C($a0) -/* C3F84 8012F0F4 00431021 */ addu $v0, $v0, $v1 -/* C3F88 8012F0F8 90450001 */ lbu $a1, 0x1($v0) -/* C3F8C 8012F0FC 8C820020 */ lw $v0, 0x20($a0) -/* C3F90 8012F100 94830044 */ lhu $v1, 0x44($a0) -/* C3F94 8012F104 24420002 */ addiu $v0, $v0, 0x2 -/* C3F98 8012F108 00651823 */ subu $v1, $v1, $a1 -.LJP_8012F10C: -/* C3F9C 8012F10C AC820020 */ sw $v0, 0x20($a0) -/* C3FA0 8012F110 0804C43A */ j .LJP_801310E8 -/* C3FA4 8012F114 A4830044 */ sh $v1, 0x44($a0) -.LJP_8012F118: -/* C3FA8 8012F118 3C0B8016 */ lui $t3, %hi(msg_drawState) -/* C3FAC 8012F11C 8D6BACF4 */ lw $t3, %lo(msg_drawState)($t3) -/* C3FB0 8012F120 8D620020 */ lw $v0, 0x20($t3) -/* C3FB4 8012F124 8D63004C */ lw $v1, 0x4C($t3) -/* C3FB8 8012F128 00431021 */ addu $v0, $v0, $v1 -/* C3FBC 8012F12C 90430001 */ lbu $v1, 0x1($v0) -/* C3FC0 8012F130 97AD008E */ lhu $t5, 0x8E($sp) -/* C3FC4 8012F134 00031080 */ sll $v0, $v1, 2 -/* C3FC8 8012F138 00431021 */ addu $v0, $v0, $v1 -/* C3FCC 8012F13C 3C038015 */ lui $v1, %hi(gMsgVarImages) -/* C3FD0 8012F140 8C636354 */ lw $v1, %lo(gMsgVarImages)($v1) -/* C3FD4 8012F144 00021080 */ sll $v0, $v0, 2 -/* C3FD8 8012F148 00626021 */ addu $t4, $v1, $v0 -/* C3FDC 8012F14C 000D1400 */ sll $v0, $t5, 16 -/* C3FE0 8012F150 00021C03 */ sra $v1, $v0, 16 -/* C3FE4 8012F154 286200FF */ slti $v0, $v1, 0xFF -/* C3FE8 8012F158 1040000A */ beqz $v0, .LJP_8012F184 -/* C3FEC 8012F15C 00000000 */ nop -/* C3FF0 8012F160 3C018015 */ lui $at, %hi(D_JP_801558C0) -/* C3FF4 8012F164 D42258C0 */ ldc1 $f2, %lo(D_JP_801558C0)($at) -/* C3FF8 8012F168 44830000 */ mtc1 $v1, $f0 -/* C3FFC 8012F16C 00000000 */ nop -/* C4000 8012F170 46800021 */ cvt.d.w $f0, $f0 -/* C4004 8012F174 46220002 */ mul.d $f0, $f0, $f2 -/* C4008 8012F178 00000000 */ nop -/* C400C 8012F17C 4620030D */ trunc.w.d $f12, $f0 -/* C4010 8012F180 440D6000 */ mfc1 $t5, $f12 -.LJP_8012F184: -/* C4014 8012F184 8D8A0010 */ lw $t2, 0x10($t4) -/* C4018 8012F188 97C4041A */ lhu $a0, 0x41A($fp) -/* C401C 8012F18C 95670046 */ lhu $a3, 0x46($t3) -/* C4020 8012F190 95620042 */ lhu $v0, 0x42($t3) -/* C4024 8012F194 97C8041C */ lhu $t0, 0x41C($fp) -/* C4028 8012F198 95690048 */ lhu $t1, 0x48($t3) -/* C402C 8012F19C 95630044 */ lhu $v1, 0x44($t3) -/* C4030 8012F1A0 95850008 */ lhu $a1, 0x8($t4) -/* C4034 8012F1A4 9586000A */ lhu $a2, 0xA($t4) -/* C4038 8012F1A8 97B90066 */ lhu $t9, 0x66($sp) -/* C403C 8012F1AC 97B80076 */ lhu $t8, 0x76($sp) -/* C4040 8012F1B0 00992021 */ addu $a0, $a0, $t9 -/* C4044 8012F1B4 00E43821 */ addu $a3, $a3, $a0 -/* C4048 8012F1B8 00471021 */ addu $v0, $v0, $a3 -/* C404C 8012F1BC 00581023 */ subu $v0, $v0, $t8 -/* C4050 8012F1C0 00021400 */ sll $v0, $v0, 16 -/* C4054 8012F1C4 AFAA0010 */ sw $t2, 0x10($sp) -/* C4058 8012F1C8 8D840004 */ lw $a0, 0x4($t4) -/* C405C 8012F1CC 97B9006E */ lhu $t9, 0x6E($sp) -/* C4060 8012F1D0 97B8007E */ lhu $t8, 0x7E($sp) -/* C4064 8012F1D4 00021403 */ sra $v0, $v0, 16 -/* C4068 8012F1D8 AFA20018 */ sw $v0, 0x18($sp) -/* C406C 8012F1DC 01194021 */ addu $t0, $t0, $t9 -/* C4070 8012F1E0 01284821 */ addu $t1, $t1, $t0 -/* C4074 8012F1E4 00691821 */ addu $v1, $v1, $t1 -/* C4078 8012F1E8 00781823 */ subu $v1, $v1, $t8 -/* C407C 8012F1EC 00031C00 */ sll $v1, $v1, 16 -/* C4080 8012F1F0 00031C03 */ sra $v1, $v1, 16 -/* C4084 8012F1F4 AFA3001C */ sw $v1, 0x1C($sp) -/* C4088 8012F1F8 AFA40014 */ sw $a0, 0x14($sp) -/* C408C 8012F1FC 95620002 */ lhu $v0, 0x2($t3) -/* C4090 8012F200 AFA20020 */ sw $v0, 0x20($sp) -/* C4094 8012F204 9562000A */ lhu $v0, 0xA($t3) -/* C4098 8012F208 AFA20024 */ sw $v0, 0x24($sp) -/* C409C 8012F20C 95620006 */ lhu $v0, 0x6($t3) -/* C40A0 8012F210 95630002 */ lhu $v1, 0x2($t3) -/* C40A4 8012F214 00431023 */ subu $v0, $v0, $v1 -/* C40A8 8012F218 3042FFFF */ andi $v0, $v0, 0xFFFF -/* C40AC 8012F21C AFA20028 */ sw $v0, 0x28($sp) -/* C40B0 8012F220 9563000E */ lhu $v1, 0xE($t3) -/* C40B4 8012F224 9564000A */ lhu $a0, 0xA($t3) -/* C40B8 8012F228 31A200FF */ andi $v0, $t5, 0xFF -/* C40BC 8012F22C AFA20030 */ sw $v0, 0x30($sp) -/* C40C0 8012F230 00641823 */ subu $v1, $v1, $a0 -/* C40C4 8012F234 3063FFFF */ andi $v1, $v1, 0xFFFF -/* C40C8 8012F238 AFA3002C */ sw $v1, 0x2C($sp) -/* C40CC 8012F23C 8D840000 */ lw $a0, 0x0($t4) -/* C40D0 8012F240 0C04CEC8 */ jal draw_ci_image_with_clipping -/* C40D4 8012F244 8D87000C */ lw $a3, 0xC($t4) -/* C40D8 8012F248 3C048016 */ lui $a0, %hi(msg_drawState) -/* C40DC 8012F24C 8C84ACF4 */ lw $a0, %lo(msg_drawState)($a0) -/* C40E0 8012F250 94820034 */ lhu $v0, 0x34($a0) -/* C40E4 8012F254 8C830020 */ lw $v1, 0x20($a0) -/* C40E8 8012F258 34420012 */ ori $v0, $v0, 0x12 -/* C40EC 8012F25C 24630002 */ addiu $v1, $v1, 0x2 -/* C40F0 8012F260 A4820034 */ sh $v0, 0x34($a0) -/* C40F4 8012F264 0804C43A */ j .LJP_801310E8 -/* C40F8 8012F268 AC830020 */ sw $v1, 0x20($a0) -.LJP_8012F26C: -/* C40FC 8012F26C 97B0008E */ lhu $s0, 0x8E($sp) -/* C4100 8012F270 00101400 */ sll $v0, $s0, 16 -/* C4104 8012F274 00021C03 */ sra $v1, $v0, 16 -/* C4108 8012F278 286200FF */ slti $v0, $v1, 0xFF -/* C410C 8012F27C 1040000A */ beqz $v0, .LJP_8012F2A8 -/* C4110 8012F280 00000000 */ nop -/* C4114 8012F284 3C018015 */ lui $at, %hi(D_JP_801558C8) -/* C4118 8012F288 D42258C8 */ ldc1 $f2, %lo(D_JP_801558C8)($at) -/* C411C 8012F28C 44830000 */ mtc1 $v1, $f0 -/* C4120 8012F290 00000000 */ nop -/* C4124 8012F294 46800021 */ cvt.d.w $f0, $f0 -/* C4128 8012F298 46220002 */ mul.d $f0, $f0, $f2 -/* C412C 8012F29C 00000000 */ nop -/* C4130 8012F2A0 4620030D */ trunc.w.d $f12, $f0 -/* C4134 8012F2A4 44106000 */ mfc1 $s0, $f12 -.LJP_8012F2A8: -/* C4138 8012F2A8 3C028016 */ lui $v0, %hi(msg_drawState) -/* C413C 8012F2AC 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) -/* C4140 8012F2B0 8C430020 */ lw $v1, 0x20($v0) -/* C4144 8012F2B4 8C42004C */ lw $v0, 0x4C($v0) -/* C4148 8012F2B8 27A40050 */ addiu $a0, $sp, 0x50 -/* C414C 8012F2BC 00621821 */ addu $v1, $v1, $v0 -/* C4150 8012F2C0 90660003 */ lbu $a2, 0x3($v1) -/* C4154 8012F2C4 90650001 */ lbu $a1, 0x1($v1) -/* C4158 8012F2C8 90620002 */ lbu $v0, 0x2($v1) -/* C415C 8012F2CC 00052A00 */ sll $a1, $a1, 8 -/* C4160 8012F2D0 0C04494A */ jal spr_get_npc_raster_info -/* C4164 8012F2D4 00A22825 */ or $a1, $a1, $v0 -/* C4168 8012F2D8 104000FA */ beqz $v0, .LJP_8012F6C4 -/* C416C 8012F2DC 00000000 */ nop -/* C4170 8012F2E0 3C058016 */ lui $a1, %hi(msg_drawState) -/* C4174 8012F2E4 8CA5ACF4 */ lw $a1, %lo(msg_drawState)($a1) -/* C4178 8012F2E8 97C6041A */ lhu $a2, 0x41A($fp) -/* C417C 8012F2EC 97C8041C */ lhu $t0, 0x41C($fp) -/* C4180 8012F2F0 97B90066 */ lhu $t9, 0x66($sp) -/* C4184 8012F2F4 97B80076 */ lhu $t8, 0x76($sp) -/* C4188 8012F2F8 94A70046 */ lhu $a3, 0x46($a1) -/* C418C 8012F2FC 94A30042 */ lhu $v1, 0x42($a1) -/* C4190 8012F300 94A90048 */ lhu $t1, 0x48($a1) -/* C4194 8012F304 94A40044 */ lhu $a0, 0x44($a1) -/* C4198 8012F308 00D93021 */ addu $a2, $a2, $t9 -/* C419C 8012F30C AFA00010 */ sw $zero, 0x10($sp) -/* C41A0 8012F310 8FA20054 */ lw $v0, 0x54($sp) -/* C41A4 8012F314 97B9006E */ lhu $t9, 0x6E($sp) -/* C41A8 8012F318 00E63821 */ addu $a3, $a3, $a2 -/* C41AC 8012F31C 00671821 */ addu $v1, $v1, $a3 -/* C41B0 8012F320 00781823 */ subu $v1, $v1, $t8 -/* C41B4 8012F324 00031C00 */ sll $v1, $v1, 16 -/* C41B8 8012F328 00031C03 */ sra $v1, $v1, 16 -/* C41BC 8012F32C 01194021 */ addu $t0, $t0, $t9 -/* C41C0 8012F330 01284821 */ addu $t1, $t1, $t0 -/* C41C4 8012F334 97B8007E */ lhu $t8, 0x7E($sp) -/* C41C8 8012F338 00892021 */ addu $a0, $a0, $t1 -/* C41CC 8012F33C AFA20014 */ sw $v0, 0x14($sp) -/* C41D0 8012F340 AFA30018 */ sw $v1, 0x18($sp) -/* C41D4 8012F344 00982023 */ subu $a0, $a0, $t8 -/* C41D8 8012F348 00042400 */ sll $a0, $a0, 16 -/* C41DC 8012F34C 00042403 */ sra $a0, $a0, 16 -/* C41E0 8012F350 AFA4001C */ sw $a0, 0x1C($sp) -/* C41E4 8012F354 94A20002 */ lhu $v0, 0x2($a1) -/* C41E8 8012F358 AFA20020 */ sw $v0, 0x20($sp) -/* C41EC 8012F35C 94A2000A */ lhu $v0, 0xA($a1) -/* C41F0 8012F360 AFA20024 */ sw $v0, 0x24($sp) -/* C41F4 8012F364 94A20006 */ lhu $v0, 0x6($a1) -/* C41F8 8012F368 94A30002 */ lhu $v1, 0x2($a1) -/* C41FC 8012F36C 00431023 */ subu $v0, $v0, $v1 -/* C4200 8012F370 3042FFFF */ andi $v0, $v0, 0xFFFF -/* C4204 8012F374 AFA20028 */ sw $v0, 0x28($sp) -/* C4208 8012F378 94A3000E */ lhu $v1, 0xE($a1) -/* C420C 8012F37C 94A4000A */ lhu $a0, 0xA($a1) -/* C4210 8012F380 320200FF */ andi $v0, $s0, 0xFF -/* C4214 8012F384 AFA20030 */ sw $v0, 0x30($sp) -/* C4218 8012F388 00641823 */ subu $v1, $v1, $a0 -/* C421C 8012F38C 3063FFFF */ andi $v1, $v1, 0xFFFF -/* C4220 8012F390 AFA3002C */ sw $v1, 0x2C($sp) -/* C4224 8012F394 8FA40050 */ lw $a0, 0x50($sp) -/* C4228 8012F398 8FA50058 */ lw $a1, 0x58($sp) -/* C422C 8012F39C 8FA6005C */ lw $a2, 0x5C($sp) -/* C4230 8012F3A0 0C04CEC8 */ jal draw_ci_image_with_clipping -/* C4234 8012F3A4 24070002 */ addiu $a3, $zero, 0x2 -/* C4238 8012F3A8 3C038016 */ lui $v1, %hi(msg_drawState) -/* C423C 8012F3AC 8C63ACF4 */ lw $v1, %lo(msg_drawState)($v1) -/* C4240 8012F3B0 94620034 */ lhu $v0, 0x34($v1) -/* C4244 8012F3B4 34420010 */ ori $v0, $v0, 0x10 -/* C4248 8012F3B8 0804BDB1 */ j .LJP_8012F6C4 -/* C424C 8012F3BC A4620034 */ sh $v0, 0x34($v1) -.LJP_8012F3C0: -/* C4250 8012F3C0 3C028015 */ lui $v0, %hi(D_8015131C) -/* C4254 8012F3C4 8C42637C */ lw $v0, %lo(D_8015131C)($v0) -/* C4258 8012F3C8 10400127 */ beqz $v0, .LJP_8012F868 -/* C425C 8012F3CC 00000000 */ nop -/* C4260 8012F3D0 97AB008E */ lhu $t3, 0x8E($sp) -/* C4264 8012F3D4 000B1400 */ sll $v0, $t3, 16 -/* C4268 8012F3D8 00021C03 */ sra $v1, $v0, 16 -/* C426C 8012F3DC 286200FF */ slti $v0, $v1, 0xFF -/* C4270 8012F3E0 1040000A */ beqz $v0, .LJP_8012F40C -/* C4274 8012F3E4 00000000 */ nop -/* C4278 8012F3E8 3C018015 */ lui $at, %hi(D_JP_801558D0) -/* C427C 8012F3EC D42258D0 */ ldc1 $f2, %lo(D_JP_801558D0)($at) -/* C4280 8012F3F0 44830000 */ mtc1 $v1, $f0 -/* C4284 8012F3F4 00000000 */ nop -/* C4288 8012F3F8 46800021 */ cvt.d.w $f0, $f0 -/* C428C 8012F3FC 46220002 */ mul.d $f0, $f0, $f2 -/* C4290 8012F400 00000000 */ nop -/* C4294 8012F404 4620030D */ trunc.w.d $f12, $f0 -/* C4298 8012F408 440B6000 */ mfc1 $t3, $f12 -.LJP_8012F40C: -/* C429C 8012F40C 3C048016 */ lui $a0, %hi(D_80159B50) -/* C42A0 8012F410 2484EAD0 */ addiu $a0, $a0, %lo(D_80159B50) -/* C42A4 8012F414 3C088016 */ lui $t0, %hi(msg_drawState) -/* C42A8 8012F418 8D08ACF4 */ lw $t0, %lo(msg_drawState)($t0) -/* C42AC 8012F41C 97C6041A */ lhu $a2, 0x41A($fp) -/* C42B0 8012F420 97C9041C */ lhu $t1, 0x41C($fp) -/* C42B4 8012F424 97B90066 */ lhu $t9, 0x66($sp) -/* C42B8 8012F428 97B80076 */ lhu $t8, 0x76($sp) -/* C42BC 8012F42C 00D93021 */ addu $a2, $a2, $t9 -/* C42C0 8012F430 95070046 */ lhu $a3, 0x46($t0) -/* C42C4 8012F434 95030042 */ lhu $v1, 0x42($t0) -/* C42C8 8012F438 950A0048 */ lhu $t2, 0x48($t0) -/* C42CC 8012F43C 95050044 */ lhu $a1, 0x44($t0) -/* C42D0 8012F440 97B9006E */ lhu $t9, 0x6E($sp) -/* C42D4 8012F444 3C028016 */ lui $v0, %hi(D_8015C7E0) -/* C42D8 8012F448 24421760 */ addiu $v0, $v0, %lo(D_8015C7E0) -/* C42DC 8012F44C AFA00010 */ sw $zero, 0x10($sp) -/* C42E0 8012F450 AFA20014 */ sw $v0, 0x14($sp) -/* C42E4 8012F454 00E63821 */ addu $a3, $a3, $a2 -/* C42E8 8012F458 00671821 */ addu $v1, $v1, $a3 -/* C42EC 8012F45C 00781823 */ subu $v1, $v1, $t8 -/* C42F0 8012F460 00031C00 */ sll $v1, $v1, 16 -/* C42F4 8012F464 00031C03 */ sra $v1, $v1, 16 -/* C42F8 8012F468 01394821 */ addu $t1, $t1, $t9 -/* C42FC 8012F46C 01495021 */ addu $t2, $t2, $t1 -/* C4300 8012F470 97B8007E */ lhu $t8, 0x7E($sp) -/* C4304 8012F474 00AA2821 */ addu $a1, $a1, $t2 -/* C4308 8012F478 AFA30018 */ sw $v1, 0x18($sp) -/* C430C 8012F47C 00B82823 */ subu $a1, $a1, $t8 -/* C4310 8012F480 00052C00 */ sll $a1, $a1, 16 -/* C4314 8012F484 00052C03 */ sra $a1, $a1, 16 -/* C4318 8012F488 AFA5001C */ sw $a1, 0x1C($sp) -/* C431C 8012F48C 95020002 */ lhu $v0, 0x2($t0) -/* C4320 8012F490 24070002 */ addiu $a3, $zero, 0x2 -/* C4324 8012F494 AFA20020 */ sw $v0, 0x20($sp) -/* C4328 8012F498 9502000A */ lhu $v0, 0xA($t0) -/* C432C 8012F49C 24050020 */ addiu $a1, $zero, 0x20 -/* C4330 8012F4A0 AFA20024 */ sw $v0, 0x24($sp) -/* C4334 8012F4A4 95020006 */ lhu $v0, 0x6($t0) -/* C4338 8012F4A8 95030002 */ lhu $v1, 0x2($t0) -/* C433C 8012F4AC 00A0302D */ daddu $a2, $a1, $zero -/* C4340 8012F4B0 00431023 */ subu $v0, $v0, $v1 -/* C4344 8012F4B4 3042FFFF */ andi $v0, $v0, 0xFFFF -/* C4348 8012F4B8 AFA20028 */ sw $v0, 0x28($sp) -/* C434C 8012F4BC 9503000E */ lhu $v1, 0xE($t0) -/* C4350 8012F4C0 9508000A */ lhu $t0, 0xA($t0) -/* C4354 8012F4C4 316200FF */ andi $v0, $t3, 0xFF -/* C4358 8012F4C8 AFA20030 */ sw $v0, 0x30($sp) -/* C435C 8012F4CC 00681823 */ subu $v1, $v1, $t0 -/* C4360 8012F4D0 3063FFFF */ andi $v1, $v1, 0xFFFF -/* C4364 8012F4D4 0C04CEC8 */ jal draw_ci_image_with_clipping -/* C4368 8012F4D8 AFA3002C */ sw $v1, 0x2C($sp) -/* C436C 8012F4DC 3C038016 */ lui $v1, %hi(msg_drawState) -/* C4370 8012F4E0 8C63ACF4 */ lw $v1, %lo(msg_drawState)($v1) -/* C4374 8012F4E4 94620034 */ lhu $v0, 0x34($v1) -/* C4378 8012F4E8 34420010 */ ori $v0, $v0, 0x10 -/* C437C 8012F4EC 0804BE1A */ j .LJP_8012F868 -/* C4380 8012F4F0 A4620034 */ sh $v0, 0x34($v1) -.LJP_8012F4F4: -/* C4384 8012F4F4 3C028016 */ lui $v0, %hi(msg_drawState) -/* C4388 8012F4F8 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) -/* C438C 8012F4FC 8C430020 */ lw $v1, 0x20($v0) -/* C4390 8012F500 8C42004C */ lw $v0, 0x4C($v0) -/* C4394 8012F504 00622821 */ addu $a1, $v1, $v0 -/* C4398 8012F508 90A70001 */ lbu $a3, 0x1($a1) -/* C439C 8012F50C 00071040 */ sll $v0, $a3, 1 -/* C43A0 8012F510 03C22021 */ addu $a0, $fp, $v0 -/* C43A4 8012F514 84830434 */ lh $v1, 0x434($a0) -/* C43A8 8012F518 2402FFFF */ addiu $v0, $zero, -0x1 -/* C43AC 8012F51C 14620003 */ bne $v1, $v0, .LJP_8012F52C -/* C43B0 8012F520 00000000 */ nop -/* C43B4 8012F524 90A20003 */ lbu $v0, 0x3($a1) -/* C43B8 8012F528 A4820434 */ sh $v0, 0x434($a0) -.LJP_8012F52C: -/* C43BC 8012F52C 84820434 */ lh $v0, 0x434($a0) -/* C43C0 8012F530 14400005 */ bnez $v0, .LJP_8012F548 -/* C43C4 8012F534 240A0011 */ addiu $t2, $zero, 0x11 -/* C43C8 8012F538 03C71821 */ addu $v1, $fp, $a3 -/* C43CC 8012F53C 90620430 */ lbu $v0, 0x430($v1) -/* C43D0 8012F540 24420001 */ addiu $v0, $v0, 0x1 -/* C43D4 8012F544 A0620430 */ sb $v0, 0x430($v1) -.LJP_8012F548: -/* C43D8 8012F548 03C72821 */ addu $a1, $fp, $a3 -/* C43DC 8012F54C 24090012 */ addiu $t1, $zero, 0x12 -/* C43E0 8012F550 0080302D */ daddu $a2, $a0, $zero -/* C43E4 8012F554 3C028016 */ lui $v0, %hi(msg_drawState) -/* C43E8 8012F558 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) -/* C43EC 8012F55C 24080013 */ addiu $t0, $zero, 0x13 -.LJP_8012F560: -/* C43F0 8012F560 8C440020 */ lw $a0, 0x20($v0) -.LJP_8012F564: -/* C43F4 8012F564 3C028016 */ lui $v0, %hi(msg_drawState) -/* C43F8 8012F568 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) -/* C43FC 8012F56C 8C42004C */ lw $v0, 0x4C($v0) -/* C4400 8012F570 00821821 */ addu $v1, $a0, $v0 -/* C4404 8012F574 9062FFFF */ lbu $v0, -0x1($v1) -/* C4408 8012F578 241900FF */ addiu $t9, $zero, 0xFF -/* C440C 8012F57C 1459000D */ bne $v0, $t9, .LJP_8012F5B4 -/* C4410 8012F580 00000000 */ nop -/* C4414 8012F584 90620000 */ lbu $v0, 0x0($v1) -/* C4418 8012F588 144A000A */ bne $v0, $t2, .LJP_8012F5B4 -/* C441C 8012F58C 00000000 */ nop -/* C4420 8012F590 90620001 */ lbu $v0, 0x1($v1) -/* C4424 8012F594 14470007 */ bne $v0, $a3, .LJP_8012F5B4 -/* C4428 8012F598 00000000 */ nop -/* C442C 8012F59C 90630002 */ lbu $v1, 0x2($v1) -/* C4430 8012F5A0 90A20430 */ lbu $v0, 0x430($a1) -/* C4434 8012F5A4 1062002A */ beq $v1, $v0, .LJP_8012F650 -/* C4438 8012F5A8 00000000 */ nop -/* C443C 8012F5AC 0804BD92 */ j .LJP_8012F648 -/* C4440 8012F5B0 24840004 */ addiu $a0, $a0, 0x4 -.LJP_8012F5B4: -/* C4444 8012F5B4 3C028016 */ lui $v0, %hi(msg_drawState) -/* C4448 8012F5B8 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) -/* C444C 8012F5BC 8C42004C */ lw $v0, 0x4C($v0) -/* C4450 8012F5C0 00441821 */ addu $v1, $v0, $a0 -/* C4454 8012F5C4 90620000 */ lbu $v0, 0x0($v1) -/* C4458 8012F5C8 241800FF */ addiu $t8, $zero, 0xFF -/* C445C 8012F5CC 5458FFE5 */ bnel $v0, $t8, .LJP_8012F564 -/* C4460 8012F5D0 24840001 */ addiu $a0, $a0, 0x1 -/* C4464 8012F5D4 90620001 */ lbu $v0, 0x1($v1) -/* C4468 8012F5D8 1449000D */ bne $v0, $t1, .LJP_8012F610 -/* C446C 8012F5DC 00000000 */ nop -/* C4470 8012F5E0 90620002 */ lbu $v0, 0x2($v1) -/* C4474 8012F5E4 1447000A */ bne $v0, $a3, .LJP_8012F610 -/* C4478 8012F5E8 00000000 */ nop -/* C447C 8012F5EC 84C20434 */ lh $v0, 0x434($a2) -/* C4480 8012F5F0 14400017 */ bnez $v0, .LJP_8012F650 -/* C4484 8012F5F4 24840001 */ addiu $a0, $a0, 0x1 -/* C4488 8012F5F8 90620003 */ lbu $v0, 0x3($v1) -/* C448C 8012F5FC A0A20430 */ sb $v0, 0x430($a1) -/* C4490 8012F600 3C028016 */ lui $v0, %hi(msg_drawState) -/* C4494 8012F604 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) -/* C4498 8012F608 0804BD58 */ j .LJP_8012F560 -/* C449C 8012F60C 00000000 */ nop -.LJP_8012F610: -/* C44A0 8012F610 3C028016 */ lui $v0, %hi(msg_drawState) -/* C44A4 8012F614 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) -/* C44A8 8012F618 8C42004C */ lw $v0, 0x4C($v0) -/* C44AC 8012F61C 00441821 */ addu $v1, $v0, $a0 -/* C44B0 8012F620 90620000 */ lbu $v0, 0x0($v1) -/* C44B4 8012F624 241900FF */ addiu $t9, $zero, 0xFF -/* C44B8 8012F628 5459FFCE */ bnel $v0, $t9, .LJP_8012F564 -/* C44BC 8012F62C 24840001 */ addiu $a0, $a0, 0x1 -/* C44C0 8012F630 90620001 */ lbu $v0, 0x1($v1) -/* C44C4 8012F634 5448FFCB */ bnel $v0, $t0, .LJP_8012F564 -/* C44C8 8012F638 24840001 */ addiu $a0, $a0, 0x1 -/* C44CC 8012F63C 90620002 */ lbu $v0, 0x2($v1) -/* C44D0 8012F640 50470003 */ beql $v0, $a3, .LJP_8012F650 -/* C44D4 8012F644 24840001 */ addiu $a0, $a0, 0x1 -.LJP_8012F648: -/* C44D8 8012F648 0804BD59 */ j .LJP_8012F564 -/* C44DC 8012F64C 24840001 */ addiu $a0, $a0, 0x1 -.LJP_8012F650: -/* C44E0 8012F650 3C058016 */ lui $a1, %hi(msg_drawState) -/* C44E4 8012F654 8CA5ACF4 */ lw $a1, %lo(msg_drawState)($a1) -/* C44E8 8012F658 8CA2004C */ lw $v0, 0x4C($a1) -/* C44EC 8012F65C ACA40020 */ sw $a0, 0x20($a1) -/* C44F0 8012F660 00443021 */ addu $a2, $v0, $a0 -/* C44F4 8012F664 90C30000 */ lbu $v1, 0x0($a2) -/* C44F8 8012F668 24020012 */ addiu $v0, $zero, 0x12 -/* C44FC 8012F66C 1062001B */ beq $v1, $v0, .LJP_8012F6DC -/* C4500 8012F670 28620013 */ slti $v0, $v1, 0x13 -/* C4504 8012F674 10400005 */ beqz $v0, .LJP_8012F68C -/* C4508 8012F678 24020011 */ addiu $v0, $zero, 0x11 -/* C450C 8012F67C 10620008 */ beq $v1, $v0, .LJP_8012F6A0 -/* C4510 8012F680 00071040 */ sll $v0, $a3, 1 -/* C4514 8012F684 0804C43A */ j .LJP_801310E8 -/* C4518 8012F688 00000000 */ nop -.LJP_8012F68C: -/* C451C 8012F68C 24020013 */ addiu $v0, $zero, 0x13 -/* C4520 8012F690 10620015 */ beq $v1, $v0, .LJP_8012F6E8 -/* C4524 8012F694 24820002 */ addiu $v0, $a0, 0x2 -/* C4528 8012F698 0804C43A */ j .LJP_801310E8 -/* C452C 8012F69C 00000000 */ nop -.LJP_8012F6A0: -/* C4530 8012F6A0 03C21821 */ addu $v1, $fp, $v0 -/* C4534 8012F6A4 84620434 */ lh $v0, 0x434($v1) -/* C4538 8012F6A8 14400006 */ bnez $v0, .LJP_8012F6C4 -/* C453C 8012F6AC 00000000 */ nop -/* C4540 8012F6B0 90C20003 */ lbu $v0, 0x3($a2) -/* C4544 8012F6B4 10400002 */ beqz $v0, .LJP_8012F6C0 -/* C4548 8012F6B8 2402FFFE */ addiu $v0, $zero, -0x2 -/* C454C 8012F6BC 90C20003 */ lbu $v0, 0x3($a2) -.LJP_8012F6C0: -/* C4550 8012F6C0 A4620434 */ sh $v0, 0x434($v1) -.LJP_8012F6C4: -/* C4554 8012F6C4 3C038016 */ lui $v1, %hi(msg_drawState) -/* C4558 8012F6C8 8C63ACF4 */ lw $v1, %lo(msg_drawState)($v1) -/* C455C 8012F6CC 8C620020 */ lw $v0, 0x20($v1) -/* C4560 8012F6D0 24420004 */ addiu $v0, $v0, 0x4 -/* C4564 8012F6D4 0804C43A */ j .LJP_801310E8 -/* C4568 8012F6D8 AC620020 */ sw $v0, 0x20($v1) -.LJP_8012F6DC: -/* C456C 8012F6DC 24820003 */ addiu $v0, $a0, 0x3 -/* C4570 8012F6E0 0804C43A */ j .LJP_801310E8 -/* C4574 8012F6E4 ACA20020 */ sw $v0, 0x20($a1) -.LJP_8012F6E8: -/* C4578 8012F6E8 0804C43A */ j .LJP_801310E8 -/* C457C 8012F6EC ACA20020 */ sw $v0, 0x20($a1) -.LJP_8012F6F0: -/* C4580 8012F6F0 3C038016 */ lui $v1, %hi(msg_drawState) -/* C4584 8012F6F4 8C63ACF4 */ lw $v1, %lo(msg_drawState)($v1) -/* C4588 8012F6F8 8C620020 */ lw $v0, 0x20($v1) -/* C458C 8012F6FC 24420003 */ addiu $v0, $v0, 0x3 -/* C4590 8012F700 0804C43A */ j .LJP_801310E8 -/* C4594 8012F704 AC620020 */ sw $v0, 0x20($v1) -.LJP_8012F708: -/* C4598 8012F708 3C058016 */ lui $a1, %hi(msg_drawState) -/* C459C 8012F70C 8CA5ACF4 */ lw $a1, %lo(msg_drawState)($a1) -/* C45A0 8012F710 97B80076 */ lhu $t8, 0x76($sp) -/* C45A4 8012F714 8CA20020 */ lw $v0, 0x20($a1) -/* C45A8 8012F718 8CA3004C */ lw $v1, 0x4C($a1) -/* C45AC 8012F71C 94A40042 */ lhu $a0, 0x42($a1) -/* C45B0 8012F720 00431021 */ addu $v0, $v0, $v1 -/* C45B4 8012F724 90430001 */ lbu $v1, 0x1($v0) -/* C45B8 8012F728 94A20046 */ lhu $v0, 0x46($a1) -/* C45BC 8012F72C 00031840 */ sll $v1, $v1, 1 -/* C45C0 8012F730 03C31821 */ addu $v1, $fp, $v1 -/* C45C4 8012F734 00441021 */ addu $v0, $v0, $a0 -/* C45C8 8012F738 00581023 */ subu $v0, $v0, $t8 -/* C45CC 8012F73C 2442FFFA */ addiu $v0, $v0, -0x6 -/* C45D0 8012F740 A4620490 */ sh $v0, 0x490($v1) -/* C45D4 8012F744 8CA20020 */ lw $v0, 0x20($a1) -/* C45D8 8012F748 8CA3004C */ lw $v1, 0x4C($a1) -/* C45DC 8012F74C 94A40044 */ lhu $a0, 0x44($a1) -/* C45E0 8012F750 97B9007E */ lhu $t9, 0x7E($sp) -/* C45E4 8012F754 00431021 */ addu $v0, $v0, $v1 -/* C45E8 8012F758 90430001 */ lbu $v1, 0x1($v0) -/* C45EC 8012F75C 94A20048 */ lhu $v0, 0x48($a1) -/* C45F0 8012F760 00031840 */ sll $v1, $v1, 1 -/* C45F4 8012F764 03C31821 */ addu $v1, $fp, $v1 -/* C45F8 8012F768 00441021 */ addu $v0, $v0, $a0 -/* C45FC 8012F76C 00591023 */ subu $v0, $v0, $t9 -/* C4600 8012F770 2442FFFF */ addiu $v0, $v0, -0x1 -/* C4604 8012F774 A462049C */ sh $v0, 0x49C($v1) -/* C4608 8012F778 8CA20020 */ lw $v0, 0x20($a1) -/* C460C 8012F77C 0804BE52 */ j .LJP_8012F948 -/* C4610 8012F780 24420002 */ addiu $v0, $v0, 0x2 -.LJP_8012F784: -/* C4614 8012F784 3C048016 */ lui $a0, %hi(msg_drawState) -/* C4618 8012F788 8C84ACF4 */ lw $a0, %lo(msg_drawState)($a0) -/* C461C 8012F78C 8C820020 */ lw $v0, 0x20($a0) -/* C4620 8012F790 8C83004C */ lw $v1, 0x4C($a0) -/* C4624 8012F794 00431021 */ addu $v0, $v0, $v1 -/* C4628 8012F798 90420001 */ lbu $v0, 0x1($v0) -/* C462C 8012F79C 241800FF */ addiu $t8, $zero, 0xFF -/* C4630 8012F7A0 54580004 */ bnel $v0, $t8, .LJP_8012F7B4 -/* C4634 8012F7A4 A082002D */ sb $v0, 0x2D($a0) -/* C4638 8012F7A8 94820034 */ lhu $v0, 0x34($a0) -/* C463C 8012F7AC 0804BF39 */ j .LJP_8012FCE4 -/* C4640 8012F7B0 3042FFDF */ andi $v0, $v0, 0xFFDF -.LJP_8012F7B4: -/* C4644 8012F7B4 3C028016 */ lui $v0, %hi(msg_drawState) -/* C4648 8012F7B8 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) -/* C464C 8012F7BC 94430034 */ lhu $v1, 0x34($v0) -/* C4650 8012F7C0 94440042 */ lhu $a0, 0x42($v0) -/* C4654 8012F7C4 34630020 */ ori $v1, $v1, 0x20 -/* C4658 8012F7C8 2484000E */ addiu $a0, $a0, 0xE -/* C465C 8012F7CC A4430034 */ sh $v1, 0x34($v0) -/* C4660 8012F7D0 0804BF3A */ j .LJP_8012FCE8 -/* C4664 8012F7D4 A4440042 */ sh $a0, 0x42($v0) -.LJP_8012F7D8: -/* C4668 8012F7D8 3C048016 */ lui $a0, %hi(msg_drawState) -/* C466C 8012F7DC 8C84ACF4 */ lw $a0, %lo(msg_drawState)($a0) -/* C4670 8012F7E0 8C820020 */ lw $v0, 0x20($a0) -/* C4674 8012F7E4 8C83004C */ lw $v1, 0x4C($a0) -/* C4678 8012F7E8 00431021 */ addu $v0, $v0, $v1 -/* C467C 8012F7EC 90420001 */ lbu $v0, 0x1($v0) -/* C4680 8012F7F0 0804BF3A */ j .LJP_8012FCE8 -/* C4684 8012F7F4 A082002B */ sb $v0, 0x2B($a0) -.LJP_8012F7F8: -/* C4688 8012F7F8 0C04C516 */ jal msg_reset_gfx_state -/* C468C 8012F7FC 00000000 */ nop -/* C4690 8012F800 0804BE1A */ j .LJP_8012F868 -/* C4694 8012F804 00000000 */ nop -.LJP_8012F808: -/* C4698 8012F808 3C028016 */ lui $v0, %hi(msg_drawState) -/* C469C 8012F80C 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) -/* C46A0 8012F810 94440042 */ lhu $a0, 0x42($v0) -/* C46A4 8012F814 8C430020 */ lw $v1, 0x20($v0) -/* C46A8 8012F818 94450044 */ lhu $a1, 0x44($v0) -/* C46AC 8012F81C 24630001 */ addiu $v1, $v1, 0x1 -/* C46B0 8012F820 A4440024 */ sh $a0, 0x24($v0) -/* C46B4 8012F824 A4450026 */ sh $a1, 0x26($v0) -/* C46B8 8012F828 0804C43A */ j .LJP_801310E8 -/* C46BC 8012F82C AC430020 */ sw $v1, 0x20($v0) -.LJP_8012F830: -/* C46C0 8012F830 3C028016 */ lui $v0, %hi(msg_drawState) -/* C46C4 8012F834 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) -/* C46C8 8012F838 94440024 */ lhu $a0, 0x24($v0) -/* C46CC 8012F83C 8C430020 */ lw $v1, 0x20($v0) -/* C46D0 8012F840 94450026 */ lhu $a1, 0x26($v0) -/* C46D4 8012F844 24630001 */ addiu $v1, $v1, 0x1 -/* C46D8 8012F848 A4440042 */ sh $a0, 0x42($v0) -/* C46DC 8012F84C A4450044 */ sh $a1, 0x44($v0) -/* C46E0 8012F850 0804C43A */ j .LJP_801310E8 -/* C46E4 8012F854 AC430020 */ sw $v1, 0x20($v0) -.LJP_8012F858: -/* C46E8 8012F858 3C038016 */ lui $v1, %hi(msg_drawState) -/* C46EC 8012F85C 8C63ACF4 */ lw $v1, %lo(msg_drawState)($v1) -/* C46F0 8012F860 9062004B */ lbu $v0, 0x4B($v1) -/* C46F4 8012F864 A0620028 */ sb $v0, 0x28($v1) -.LJP_8012F868: -/* C46F8 8012F868 3C038016 */ lui $v1, %hi(msg_drawState) -/* C46FC 8012F86C 8C63ACF4 */ lw $v1, %lo(msg_drawState)($v1) -/* C4700 8012F870 8C620020 */ lw $v0, 0x20($v1) -/* C4704 8012F874 24420001 */ addiu $v0, $v0, 0x1 -/* C4708 8012F878 0804C43A */ j .LJP_801310E8 -/* C470C 8012F87C AC620020 */ sw $v0, 0x20($v1) -.LJP_8012F880: -/* C4710 8012F880 3C028016 */ lui $v0, %hi(msg_drawState) -/* C4714 8012F884 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) -/* C4718 8012F888 8C430020 */ lw $v1, 0x20($v0) -/* C471C 8012F88C 90440028 */ lbu $a0, 0x28($v0) -/* C4720 8012F890 24630001 */ addiu $v1, $v1, 0x1 -/* C4724 8012F894 A444004A */ sh $a0, 0x4A($v0) -/* C4728 8012F898 0804C43A */ j .LJP_801310E8 -/* C472C 8012F89C AC430020 */ sw $v1, 0x20($v0) -.LJP_8012F8A0: -/* C4730 8012F8A0 3C038016 */ lui $v1, %hi(msg_drawState) -/* C4734 8012F8A4 8C63ACF4 */ lw $v1, %lo(msg_drawState)($v1) -/* C4738 8012F8A8 8C620020 */ lw $v0, 0x20($v1) -/* C473C 8012F8AC 8C63004C */ lw $v1, 0x4C($v1) -/* C4740 8012F8B0 00431021 */ addu $v0, $v0, $v1 -/* C4744 8012F8B4 90430001 */ lbu $v1, 0x1($v0) -/* C4748 8012F8B8 2C62000F */ sltiu $v0, $v1, 0xF -/* C474C 8012F8BC 1040060A */ beqz $v0, .LJP_801310E8 -/* C4750 8012F8C0 00031080 */ sll $v0, $v1, 2 -/* C4754 8012F8C4 3C018015 */ lui $at, %hi(jtbl_JP_801558D8) -/* C4758 8012F8C8 00220821 */ addu $at, $at, $v0 -/* C475C 8012F8CC 8C2258D8 */ lw $v0, %lo(jtbl_JP_801558D8)($at) -/* C4760 8012F8D0 00400008 */ jr $v0 -/* C4764 8012F8D4 00000000 */ nop -.LJP_8012F8D8: -/* C4768 8012F8D8 3C028016 */ lui $v0, %hi(msg_drawState) -/* C476C 8012F8DC 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) -/* C4770 8012F8E0 8C430038 */ lw $v1, 0x38($v0) -/* C4774 8012F8E4 8C440020 */ lw $a0, 0x20($v0) -/* C4778 8012F8E8 0804BEBD */ j .LJP_8012FAF4 -/* C477C 8012F8EC 34630001 */ ori $v1, $v1, 0x1 -.LJP_8012F8F0: -/* C4780 8012F8F0 3C028016 */ lui $v0, %hi(msg_drawState) -/* C4784 8012F8F4 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) -/* C4788 8012F8F8 8C430038 */ lw $v1, 0x38($v0) -/* C478C 8012F8FC 8C440020 */ lw $a0, 0x20($v0) -/* C4790 8012F900 0804BEBD */ j .LJP_8012FAF4 -/* C4794 8012F904 34630002 */ ori $v1, $v1, 0x2 -.LJP_8012F908: -/* C4798 8012F908 3C06FC70 */ lui $a2, (0xFC70FEE1 >> 16) -/* C479C 8012F90C 34C6FEE1 */ ori $a2, $a2, (0xFC70FEE1 & 0xFFFF) -/* C47A0 8012F910 3C058016 */ lui $a1, %hi(msg_drawState) -/* C47A4 8012F914 8CA5ACF4 */ lw $a1, %lo(msg_drawState)($a1) -/* C47A8 8012F918 8EE40000 */ lw $a0, 0x0($s7) -/* C47AC 8012F91C 8CA20038 */ lw $v0, 0x38($a1) -/* C47B0 8012F920 0080182D */ daddu $v1, $a0, $zero -/* C47B4 8012F924 34420004 */ ori $v0, $v0, 0x4 -/* C47B8 8012F928 ACA20038 */ sw $v0, 0x38($a1) -/* C47BC 8012F92C 2402F3F9 */ addiu $v0, $zero, -0xC07 -/* C47C0 8012F930 AC660000 */ sw $a2, 0x0($v1) -/* C47C4 8012F934 AC620004 */ sw $v0, 0x4($v1) -/* C47C8 8012F938 8CA20020 */ lw $v0, 0x20($a1) -/* C47CC 8012F93C 24840008 */ addiu $a0, $a0, 0x8 -/* C47D0 8012F940 AEE40000 */ sw $a0, 0x0($s7) -/* C47D4 8012F944 24420002 */ addiu $v0, $v0, 0x2 -.LJP_8012F948: -/* C47D8 8012F948 0804C43A */ j .LJP_801310E8 -/* C47DC 8012F94C ACA20020 */ sw $v0, 0x20($a1) -.LJP_8012F950: -/* C47E0 8012F950 3C09FC72 */ lui $t1, (0xFC72FEE5 >> 16) -/* C47E4 8012F954 3529FEE5 */ ori $t1, $t1, (0xFC72FEE5 & 0xFFFF) -/* C47E8 8012F958 3C0811FC */ lui $t0, (0x11FCF279 >> 16) -/* C47EC 8012F95C 3C030001 */ lui $v1, (0x10000 >> 16) -/* C47F0 8012F960 3C068016 */ lui $a2, %hi(msg_drawState) -/* C47F4 8012F964 8CC6ACF4 */ lw $a2, %lo(msg_drawState)($a2) -/* C47F8 8012F968 8EE50000 */ lw $a1, 0x0($s7) -/* C47FC 8012F96C 8CC20038 */ lw $v0, 0x38($a2) -/* C4800 8012F970 00A0382D */ daddu $a3, $a1, $zero -/* C4804 8012F974 00431025 */ or $v0, $v0, $v1 -/* C4808 8012F978 ACC20038 */ sw $v0, 0x38($a2) -/* C480C 8012F97C 3C02FB00 */ lui $v0, (0xFB000000 >> 16) -/* C4810 8012F980 ACE20000 */ sw $v0, 0x0($a3) -/* C4814 8012F984 8CC20020 */ lw $v0, 0x20($a2) -/* C4818 8012F988 8CC3004C */ lw $v1, 0x4C($a2) -/* C481C 8012F98C 24A50008 */ addiu $a1, $a1, 0x8 -/* C4820 8012F990 AEE50000 */ sw $a1, 0x0($s7) -/* C4824 8012F994 00431021 */ addu $v0, $v0, $v1 -/* C4828 8012F998 90440002 */ lbu $a0, 0x2($v0) -/* C482C 8012F99C 3508F279 */ ori $t0, $t0, (0x11FCF279 & 0xFFFF) -/* C4830 8012F9A0 00041E00 */ sll $v1, $a0, 24 -/* C4834 8012F9A4 00041400 */ sll $v0, $a0, 16 -/* C4838 8012F9A8 00621825 */ or $v1, $v1, $v0 -/* C483C 8012F9AC 00042200 */ sll $a0, $a0, 8 -/* C4840 8012F9B0 00641825 */ or $v1, $v1, $a0 -/* C4844 8012F9B4 ACE30004 */ sw $v1, 0x4($a3) -/* C4848 8012F9B8 ACA90000 */ sw $t1, 0x0($a1) -/* C484C 8012F9BC ACA80004 */ sw $t0, 0x4($a1) -/* C4850 8012F9C0 8CC20020 */ lw $v0, 0x20($a2) -/* C4854 8012F9C4 24A50008 */ addiu $a1, $a1, 0x8 -/* C4858 8012F9C8 AEE50000 */ sw $a1, 0x0($s7) -/* C485C 8012F9CC 24420003 */ addiu $v0, $v0, 0x3 -/* C4860 8012F9D0 0804C43A */ j .LJP_801310E8 -/* C4864 8012F9D4 ACC20020 */ sw $v0, 0x20($a2) -.LJP_8012F9D8: -/* C4868 8012F9D8 3C058016 */ lui $a1, %hi(msg_drawState) -/* C486C 8012F9DC 8CA5ACF4 */ lw $a1, %lo(msg_drawState)($a1) -/* C4870 8012F9E0 8CA20038 */ lw $v0, 0x38($a1) -/* C4874 8012F9E4 8CA40020 */ lw $a0, 0x20($a1) -/* C4878 8012F9E8 8CA3004C */ lw $v1, 0x4C($a1) -/* C487C 8012F9EC 34420020 */ ori $v0, $v0, 0x20 -/* C4880 8012F9F0 00831821 */ addu $v1, $a0, $v1 -/* C4884 8012F9F4 ACA20038 */ sw $v0, 0x38($a1) -/* C4888 8012F9F8 90630002 */ lbu $v1, 0x2($v1) -/* C488C 8012F9FC 24840003 */ addiu $a0, $a0, 0x3 -/* C4890 8012FA00 0804C439 */ j .LJP_801310E4 -/* C4894 8012FA04 A3A300B8 */ sb $v1, 0xB8($sp) -.LJP_8012FA08: -/* C4898 8012FA08 3C028016 */ lui $v0, %hi(msg_drawState) -/* C489C 8012FA0C 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) -/* C48A0 8012FA10 8C430038 */ lw $v1, 0x38($v0) -/* C48A4 8012FA14 8C440020 */ lw $a0, 0x20($v0) -/* C48A8 8012FA18 0804BEBD */ j .LJP_8012FAF4 -/* C48AC 8012FA1C 34630040 */ ori $v1, $v1, 0x40 -.LJP_8012FA20: -/* C48B0 8012FA20 3C058016 */ lui $a1, %hi(msg_drawState) -/* C48B4 8012FA24 8CA5ACF4 */ lw $a1, %lo(msg_drawState)($a1) -/* C48B8 8012FA28 8CA20038 */ lw $v0, 0x38($a1) -/* C48BC 8012FA2C 8CA40020 */ lw $a0, 0x20($a1) -/* C48C0 8012FA30 8CA3004C */ lw $v1, 0x4C($a1) -/* C48C4 8012FA34 34420080 */ ori $v0, $v0, 0x80 -/* C48C8 8012FA38 00831821 */ addu $v1, $a0, $v1 -/* C48CC 8012FA3C ACA20038 */ sw $v0, 0x38($a1) -/* C48D0 8012FA40 90630002 */ lbu $v1, 0x2($v1) -/* C48D4 8012FA44 24840003 */ addiu $a0, $a0, 0x3 -/* C48D8 8012FA48 0804C439 */ j .LJP_801310E4 -/* C48DC 8012FA4C A7A300B6 */ sh $v1, 0xB6($sp) -.LJP_8012FA50: -/* C48E0 8012FA50 3C028016 */ lui $v0, %hi(msg_drawState) -/* C48E4 8012FA54 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) -/* C48E8 8012FA58 8C430038 */ lw $v1, 0x38($v0) -/* C48EC 8012FA5C 8C440020 */ lw $a0, 0x20($v0) -/* C48F0 8012FA60 0804BEBD */ j .LJP_8012FAF4 -/* C48F4 8012FA64 34630200 */ ori $v1, $v1, 0x200 -.LJP_8012FA68: -/* C48F8 8012FA68 3C028016 */ lui $v0, %hi(msg_drawState) -/* C48FC 8012FA6C 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) -/* C4900 8012FA70 8C430038 */ lw $v1, 0x38($v0) -/* C4904 8012FA74 8C440020 */ lw $a0, 0x20($v0) -/* C4908 8012FA78 0804BEBD */ j .LJP_8012FAF4 -/* C490C 8012FA7C 34630400 */ ori $v1, $v1, 0x400 -.LJP_8012FA80: -/* C4910 8012FA80 3C028016 */ lui $v0, %hi(msg_drawState) -/* C4914 8012FA84 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) -/* C4918 8012FA88 8C430038 */ lw $v1, 0x38($v0) -/* C491C 8012FA8C 8C440020 */ lw $a0, 0x20($v0) -/* C4920 8012FA90 0804BEBD */ j .LJP_8012FAF4 -/* C4924 8012FA94 34630800 */ ori $v1, $v1, 0x800 -.LJP_8012FA98: -/* C4928 8012FA98 3C028016 */ lui $v0, %hi(msg_drawState) -/* C492C 8012FA9C 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) -/* C4930 8012FAA0 8C430038 */ lw $v1, 0x38($v0) -/* C4934 8012FAA4 8C440020 */ lw $a0, 0x20($v0) -/* C4938 8012FAA8 0804BEBD */ j .LJP_8012FAF4 -/* C493C 8012FAAC 34631000 */ ori $v1, $v1, 0x1000 -.LJP_8012FAB0: -/* C4940 8012FAB0 3C028016 */ lui $v0, %hi(msg_drawState) -/* C4944 8012FAB4 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) -/* C4948 8012FAB8 8C430038 */ lw $v1, 0x38($v0) -/* C494C 8012FABC 8C440020 */ lw $a0, 0x20($v0) -/* C4950 8012FAC0 0804BEBD */ j .LJP_8012FAF4 -/* C4954 8012FAC4 34632000 */ ori $v1, $v1, 0x2000 -.LJP_8012FAC8: -/* C4958 8012FAC8 3C028016 */ lui $v0, %hi(msg_drawState) -/* C495C 8012FACC 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) -/* C4960 8012FAD0 8C430038 */ lw $v1, 0x38($v0) -/* C4964 8012FAD4 8C440020 */ lw $a0, 0x20($v0) -/* C4968 8012FAD8 0804BEBD */ j .LJP_8012FAF4 -/* C496C 8012FADC 34634000 */ ori $v1, $v1, 0x4000 -.LJP_8012FAE0: -/* C4970 8012FAE0 3C028016 */ lui $v0, %hi(msg_drawState) -/* C4974 8012FAE4 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) -/* C4978 8012FAE8 8C430038 */ lw $v1, 0x38($v0) -/* C497C 8012FAEC 8C440020 */ lw $a0, 0x20($v0) -/* C4980 8012FAF0 34638000 */ ori $v1, $v1, 0x8000 -.LJP_8012FAF4: -/* C4984 8012FAF4 24840002 */ addiu $a0, $a0, 0x2 -/* C4988 8012FAF8 AC430038 */ sw $v1, 0x38($v0) -/* C498C 8012FAFC 0804C43A */ j .LJP_801310E8 -/* C4990 8012FB00 AC440020 */ sw $a0, 0x20($v0) -.LJP_8012FB04: -/* C4994 8012FB04 3C038016 */ lui $v1, %hi(msg_drawState) -/* C4998 8012FB08 8C63ACF4 */ lw $v1, %lo(msg_drawState)($v1) -/* C499C 8012FB0C 8C620020 */ lw $v0, 0x20($v1) -/* C49A0 8012FB10 8C63004C */ lw $v1, 0x4C($v1) -/* C49A4 8012FB14 00431021 */ addu $v0, $v0, $v1 -/* C49A8 8012FB18 90430001 */ lbu $v1, 0x1($v0) -/* C49AC 8012FB1C 2C62000F */ sltiu $v0, $v1, 0xF -/* C49B0 8012FB20 10400071 */ beqz $v0, .LJP_8012FCE8 -/* C49B4 8012FB24 00031080 */ sll $v0, $v1, 2 -/* C49B8 8012FB28 3C018015 */ lui $at, %hi(jtbl_JP_80155918) -/* C49BC 8012FB2C 00220821 */ addu $at, $at, $v0 -/* C49C0 8012FB30 8C225918 */ lw $v0, %lo(jtbl_JP_80155918)($at) -/* C49C4 8012FB34 00400008 */ jr $v0 -/* C49C8 8012FB38 00000000 */ nop -.LJP_8012FB3C: -/* C49CC 8012FB3C 3C028016 */ lui $v0, %hi(msg_drawState) -/* C49D0 8012FB40 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) -/* C49D4 8012FB44 8C430038 */ lw $v1, 0x38($v0) -/* C49D8 8012FB48 0804BF14 */ j .LJP_8012FC50 -/* C49DC 8012FB4C 2404FFFE */ addiu $a0, $zero, -0x2 -.LJP_8012FB50: -/* C49E0 8012FB50 3C028016 */ lui $v0, %hi(msg_drawState) -/* C49E4 8012FB54 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) -/* C49E8 8012FB58 8C430038 */ lw $v1, 0x38($v0) -/* C49EC 8012FB5C 0804BF14 */ j .LJP_8012FC50 -/* C49F0 8012FB60 2404FFFD */ addiu $a0, $zero, -0x3 -.LJP_8012FB64: -/* C49F4 8012FB64 3C028016 */ lui $v0, %hi(msg_drawState) -/* C49F8 8012FB68 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) -/* C49FC 8012FB6C 8C430038 */ lw $v1, 0x38($v0) -/* C4A00 8012FB70 0804BF14 */ j .LJP_8012FC50 -/* C4A04 8012FB74 2404FFFB */ addiu $a0, $zero, -0x5 -.LJP_8012FB78: -/* C4A08 8012FB78 3C048016 */ lui $a0, %hi(msg_drawState) -/* C4A0C 8012FB7C 8C84ACF4 */ lw $a0, %lo(msg_drawState)($a0) -/* C4A10 8012FB80 3C03FFFE */ lui $v1, (0xFFFEFFFF >> 16) -/* C4A14 8012FB84 8C820038 */ lw $v0, 0x38($a0) -/* C4A18 8012FB88 0804BF1C */ j .LJP_8012FC70 -/* C4A1C 8012FB8C 3463FFFF */ ori $v1, $v1, (0xFFFEFFFF & 0xFFFF) -.LJP_8012FB90: -/* C4A20 8012FB90 3C028016 */ lui $v0, %hi(msg_drawState) -/* C4A24 8012FB94 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) -/* C4A28 8012FB98 8C430038 */ lw $v1, 0x38($v0) -/* C4A2C 8012FB9C 0804BF14 */ j .LJP_8012FC50 -/* C4A30 8012FBA0 2404FFDF */ addiu $a0, $zero, -0x21 -.LJP_8012FBA4: -/* C4A34 8012FBA4 3C048016 */ lui $a0, %hi(msg_drawState) -/* C4A38 8012FBA8 8C84ACF4 */ lw $a0, %lo(msg_drawState)($a0) -/* C4A3C 8012FBAC 0804BEFA */ j .LJP_8012FBE8 -/* C4A40 8012FBB0 2405FFBF */ addiu $a1, $zero, -0x41 -.LJP_8012FBB4: -/* C4A44 8012FBB4 3C028016 */ lui $v0, %hi(msg_drawState) -/* C4A48 8012FBB8 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) -/* C4A4C 8012FBBC 8C430038 */ lw $v1, 0x38($v0) -/* C4A50 8012FBC0 0804BF14 */ j .LJP_8012FC50 -/* C4A54 8012FBC4 2404FF7F */ addiu $a0, $zero, -0x81 -.LJP_8012FBC8: -/* C4A58 8012FBC8 3C028016 */ lui $v0, %hi(msg_drawState) -/* C4A5C 8012FBCC 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) -/* C4A60 8012FBD0 8C430038 */ lw $v1, 0x38($v0) -/* C4A64 8012FBD4 0804BF14 */ j .LJP_8012FC50 -/* C4A68 8012FBD8 2404FDFF */ addiu $a0, $zero, -0x201 -.LJP_8012FBDC: -/* C4A6C 8012FBDC 3C048016 */ lui $a0, %hi(msg_drawState) -/* C4A70 8012FBE0 8C84ACF4 */ lw $a0, %lo(msg_drawState)($a0) -/* C4A74 8012FBE4 2405FBFF */ addiu $a1, $zero, -0x401 -.LJP_8012FBE8: -/* C4A78 8012FBE8 8C820038 */ lw $v0, 0x38($a0) -/* C4A7C 8012FBEC 94830034 */ lhu $v1, 0x34($a0) -/* C4A80 8012FBF0 00451024 */ and $v0, $v0, $a1 -/* C4A84 8012FBF4 34630010 */ ori $v1, $v1, 0x10 -/* C4A88 8012FBF8 AC820038 */ sw $v0, 0x38($a0) -/* C4A8C 8012FBFC 0804BF3A */ j .LJP_8012FCE8 -/* C4A90 8012FC00 A4830034 */ sh $v1, 0x34($a0) -.LJP_8012FC04: -/* C4A94 8012FC04 3C028016 */ lui $v0, %hi(msg_drawState) -/* C4A98 8012FC08 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) -/* C4A9C 8012FC0C 8C430038 */ lw $v1, 0x38($v0) -/* C4AA0 8012FC10 0804BF14 */ j .LJP_8012FC50 -/* C4AA4 8012FC14 2404F7FF */ addiu $a0, $zero, -0x801 -.LJP_8012FC18: -/* C4AA8 8012FC18 3C028016 */ lui $v0, %hi(msg_drawState) -/* C4AAC 8012FC1C 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) -/* C4AB0 8012FC20 8C430038 */ lw $v1, 0x38($v0) -/* C4AB4 8012FC24 0804BF14 */ j .LJP_8012FC50 -/* C4AB8 8012FC28 2404EFFF */ addiu $a0, $zero, -0x1001 -.LJP_8012FC2C: -/* C4ABC 8012FC2C 3C028016 */ lui $v0, %hi(msg_drawState) -/* C4AC0 8012FC30 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) -/* C4AC4 8012FC34 8C430038 */ lw $v1, 0x38($v0) -/* C4AC8 8012FC38 0804BF14 */ j .LJP_8012FC50 -/* C4ACC 8012FC3C 2404DFFF */ addiu $a0, $zero, -0x2001 -.LJP_8012FC40: -/* C4AD0 8012FC40 3C028016 */ lui $v0, %hi(msg_drawState) -/* C4AD4 8012FC44 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) -/* C4AD8 8012FC48 8C430038 */ lw $v1, 0x38($v0) -/* C4ADC 8012FC4C 2404BFFF */ addiu $a0, $zero, -0x4001 -.LJP_8012FC50: -/* C4AE0 8012FC50 00641824 */ and $v1, $v1, $a0 -/* C4AE4 8012FC54 0804BF3A */ j .LJP_8012FCE8 -/* C4AE8 8012FC58 AC430038 */ sw $v1, 0x38($v0) -.LJP_8012FC5C: -/* C4AEC 8012FC5C 3C048016 */ lui $a0, %hi(msg_drawState) -/* C4AF0 8012FC60 8C84ACF4 */ lw $a0, %lo(msg_drawState)($a0) -/* C4AF4 8012FC64 3C03FFFF */ lui $v1, (0xFFFF7FFF >> 16) -/* C4AF8 8012FC68 8C820038 */ lw $v0, 0x38($a0) -/* C4AFC 8012FC6C 34637FFF */ ori $v1, $v1, (0xFFFF7FFF & 0xFFFF) -.LJP_8012FC70: -/* C4B00 8012FC70 00431024 */ and $v0, $v0, $v1 -/* C4B04 8012FC74 0804BF3A */ j .LJP_8012FCE8 -/* C4B08 8012FC78 AC820038 */ sw $v0, 0x38($a0) -.LJP_8012FC7C: -/* C4B0C 8012FC7C 3C048016 */ lui $a0, %hi(msg_drawState) -/* C4B10 8012FC80 8C84ACF4 */ lw $a0, %lo(msg_drawState)($a0) -/* C4B14 8012FC84 8C820020 */ lw $v0, 0x20($a0) -/* C4B18 8012FC88 8C83004C */ lw $v1, 0x4C($a0) -/* C4B1C 8012FC8C 00431021 */ addu $v0, $v0, $v1 -/* C4B20 8012FC90 90420001 */ lbu $v0, 0x1($v0) -/* C4B24 8012FC94 10400010 */ beqz $v0, .LJP_8012FCD8 -/* C4B28 8012FC98 241900FF */ addiu $t9, $zero, 0xFF -/* C4B2C 8012FC9C A082002E */ sb $v0, 0x2E($a0) -/* C4B30 8012FCA0 3C038016 */ lui $v1, %hi(msg_drawState) -/* C4B34 8012FCA4 8C63ACF4 */ lw $v1, %lo(msg_drawState)($v1) -/* C4B38 8012FCA8 9062002E */ lbu $v0, 0x2E($v1) -/* C4B3C 8012FCAC 14590006 */ bne $v0, $t9, .LJP_8012FCC8 -/* C4B40 8012FCB0 00000000 */ nop -/* C4B44 8012FCB4 97C204D4 */ lhu $v0, 0x4D4($fp) -/* C4B48 8012FCB8 00021042 */ srl $v0, $v0, 1 -/* C4B4C 8012FCBC A062002E */ sb $v0, 0x2E($v1) -/* C4B50 8012FCC0 3C038016 */ lui $v1, %hi(msg_drawState) -/* C4B54 8012FCC4 8C63ACF4 */ lw $v1, %lo(msg_drawState)($v1) -.LJP_8012FCC8: -/* C4B58 8012FCC8 94620034 */ lhu $v0, 0x34($v1) -/* C4B5C 8012FCCC 344200C0 */ ori $v0, $v0, 0xC0 -/* C4B60 8012FCD0 0804BF3A */ j .LJP_8012FCE8 -/* C4B64 8012FCD4 A4620034 */ sh $v0, 0x34($v1) -.LJP_8012FCD8: -/* C4B68 8012FCD8 94820034 */ lhu $v0, 0x34($a0) -/* C4B6C 8012FCDC A4800042 */ sh $zero, 0x42($a0) -/* C4B70 8012FCE0 3042FF3F */ andi $v0, $v0, 0xFF3F -.LJP_8012FCE4: -/* C4B74 8012FCE4 A4820034 */ sh $v0, 0x34($a0) -.LJP_8012FCE8: -/* C4B78 8012FCE8 3C038016 */ lui $v1, %hi(msg_drawState) -/* C4B7C 8012FCEC 8C63ACF4 */ lw $v1, %lo(msg_drawState)($v1) -/* C4B80 8012FCF0 8C620020 */ lw $v0, 0x20($v1) -.LJP_8012FCF4: -/* C4B84 8012FCF4 24420002 */ addiu $v0, $v0, 0x2 -/* C4B88 8012FCF8 0804C43A */ j .LJP_801310E8 -/* C4B8C 8012FCFC AC620020 */ sw $v0, 0x20($v1) -.LJP_8012FD00: -/* C4B90 8012FD00 3C028016 */ lui $v0, %hi(msg_drawState) -/* C4B94 8012FD04 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) -/* C4B98 8012FD08 94420034 */ lhu $v0, 0x34($v0) -/* C4B9C 8012FD0C 30420002 */ andi $v0, $v0, 0x2 -/* C4BA0 8012FD10 10400010 */ beqz $v0, .LJP_8012FD54 -/* C4BA4 8012FD14 241800FF */ addiu $t8, $zero, 0xFF -/* C4BA8 8012FD18 8EE30000 */ lw $v1, 0x0($s7) -/* C4BAC 8012FD1C A7B80096 */ sh $t8, 0x96($sp) -/* C4BB0 8012FD20 0060102D */ daddu $v0, $v1, $zero -/* C4BB4 8012FD24 24630008 */ addiu $v1, $v1, 0x8 -/* C4BB8 8012FD28 3C19E700 */ lui $t9, (0xE7000000 >> 16) -/* C4BBC 8012FD2C AEE30000 */ sw $v1, 0x0($s7) -/* C4BC0 8012FD30 AC590000 */ sw $t9, 0x0($v0) -/* C4BC4 8012FD34 AC400004 */ sw $zero, 0x4($v0) -/* C4BC8 8012FD38 24620008 */ addiu $v0, $v1, 0x8 -/* C4BCC 8012FD3C AEE20000 */ sw $v0, 0x0($s7) -/* C4BD0 8012FD40 3C02DE00 */ lui $v0, (0xDE000000 >> 16) -/* C4BD4 8012FD44 AC620000 */ sw $v0, 0x0($v1) -/* C4BD8 8012FD48 3C028015 */ lui $v0, %hi(D_8014C500) -/* C4BDC 8012FD4C 244215B0 */ addiu $v0, $v0, %lo(D_8014C500) -/* C4BE0 8012FD50 AC620004 */ sw $v0, 0x4($v1) -.LJP_8012FD54: -/* C4BE4 8012FD54 3C058016 */ lui $a1, %hi(msg_drawState) -/* C4BE8 8012FD58 8CA5ACF4 */ lw $a1, %lo(msg_drawState)($a1) -/* C4BEC 8012FD5C C4A00010 */ lwc1 $f0, 0x10($a1) -/* C4BF0 8012FD60 94A20034 */ lhu $v0, 0x34($a1) -/* C4BF4 8012FD64 C4A20014 */ lwc1 $f2, 0x14($a1) -/* C4BF8 8012FD68 30420080 */ andi $v0, $v0, 0x80 -/* C4BFC 8012FD6C E4A00018 */ swc1 $f0, 0x18($a1) -/* C4C00 8012FD70 1040000B */ beqz $v0, .LJP_8012FDA0 -/* C4C04 8012FD74 E4A2001C */ swc1 $f2, 0x1C($a1) -/* C4C08 8012FD78 97C204F8 */ lhu $v0, 0x4F8($fp) -/* C4C0C 8012FD7C 90A4002E */ lbu $a0, 0x2E($a1) -/* C4C10 8012FD80 94A30034 */ lhu $v1, 0x34($a1) -/* C4C14 8012FD84 00021042 */ srl $v0, $v0, 1 -/* C4C18 8012FD88 00822023 */ subu $a0, $a0, $v0 -/* C4C1C 8012FD8C 94A20042 */ lhu $v0, 0x42($a1) -/* C4C20 8012FD90 3063FF7F */ andi $v1, $v1, 0xFF7F -/* C4C24 8012FD94 A4A30034 */ sh $v1, 0x34($a1) -/* C4C28 8012FD98 00441021 */ addu $v0, $v0, $a0 -/* C4C2C 8012FD9C A4A20042 */ sh $v0, 0x42($a1) -.LJP_8012FDA0: -/* C4C30 8012FDA0 3C048016 */ lui $a0, %hi(msg_drawState) -/* C4C34 8012FDA4 8C84ACF4 */ lw $a0, %lo(msg_drawState)($a0) -/* C4C38 8012FDA8 94820034 */ lhu $v0, 0x34($a0) -/* C4C3C 8012FDAC 30420040 */ andi $v0, $v0, 0x40 -/* C4C40 8012FDB0 10400007 */ beqz $v0, .LJP_8012FDD0 -/* C4C44 8012FDB4 00000000 */ nop -/* C4C48 8012FDB8 97C2041A */ lhu $v0, 0x41A($fp) -/* C4C4C 8012FDBC 97B80066 */ lhu $t8, 0x66($sp) -/* C4C50 8012FDC0 94830042 */ lhu $v1, 0x42($a0) -/* C4C54 8012FDC4 00581021 */ addu $v0, $v0, $t8 -/* C4C58 8012FDC8 0804BF7B */ j .LJP_8012FDEC -/* C4C5C 8012FDCC 00628821 */ addu $s1, $v1, $v0 -.LJP_8012FDD0: -/* C4C60 8012FDD0 97C2041A */ lhu $v0, 0x41A($fp) -/* C4C64 8012FDD4 97B90066 */ lhu $t9, 0x66($sp) -/* C4C68 8012FDD8 94830046 */ lhu $v1, 0x46($a0) -/* C4C6C 8012FDDC 94840042 */ lhu $a0, 0x42($a0) -/* C4C70 8012FDE0 00591021 */ addu $v0, $v0, $t9 -/* C4C74 8012FDE4 00621821 */ addu $v1, $v1, $v0 -/* C4C78 8012FDE8 00838821 */ addu $s1, $a0, $v1 -.LJP_8012FDEC: -/* C4C7C 8012FDEC 97C3041C */ lhu $v1, 0x41C($fp) -/* C4C80 8012FDF0 3C068016 */ lui $a2, %hi(msg_drawState) -/* C4C84 8012FDF4 8CC6ACF4 */ lw $a2, %lo(msg_drawState)($a2) -/* C4C88 8012FDF8 97B8006E */ lhu $t8, 0x6E($sp) -/* C4C8C 8012FDFC 97B9007E */ lhu $t9, 0x7E($sp) -/* C4C90 8012FE00 00781821 */ addu $v1, $v1, $t8 -/* C4C94 8012FE04 94C20048 */ lhu $v0, 0x48($a2) -/* C4C98 8012FE08 94C50044 */ lhu $a1, 0x44($a2) -/* C4C9C 8012FE0C 94C4003E */ lhu $a0, 0x3E($a2) -/* C4CA0 8012FE10 97B8008E */ lhu $t8, 0x8E($sp) -/* C4CA4 8012FE14 00431021 */ addu $v0, $v0, $v1 -/* C4CA8 8012FE18 00A22821 */ addu $a1, $a1, $v0 -/* C4CAC 8012FE1C 94C3003C */ lhu $v1, 0x3C($a2) -/* C4CB0 8012FE20 00041040 */ sll $v0, $a0, 1 -/* C4CB4 8012FE24 00031880 */ sll $v1, $v1, 2 -/* C4CB8 8012FE28 3C08802E */ lui $t0, %hi(D_802E66F4) -/* C4CBC 8012FE2C 01034021 */ addu $t0, $t0, $v1 -/* C4CC0 8012FE30 8D0866F4 */ lw $t0, %lo(D_802E66F4)($t0) -/* C4CC4 8012FE34 00441021 */ addu $v0, $v0, $a0 -/* C4CC8 8012FE38 8D030008 */ lw $v1, 0x8($t0) -/* C4CCC 8012FE3C 00021080 */ sll $v0, $v0, 2 -/* C4CD0 8012FE40 00433821 */ addu $a3, $v0, $v1 -/* C4CD4 8012FE44 90E20009 */ lbu $v0, 0x9($a3) -/* C4CD8 8012FE48 00B92823 */ subu $a1, $a1, $t9 -/* C4CDC 8012FE4C 00452021 */ addu $a0, $v0, $a1 -/* C4CE0 8012FE50 00181400 */ sll $v0, $t8, 16 -/* C4CE4 8012FE54 00024C03 */ sra $t1, $v0, 16 -/* C4CE8 8012FE58 11200482 */ beqz $t1, .LJP_80131064 -/* C4CEC 8012FE5C 0080982D */ daddu $s3, $a0, $zero -/* C4CF0 8012FE60 00111C00 */ sll $v1, $s1, 16 -/* C4CF4 8012FE64 8CC20004 */ lw $v0, 0x4($a2) -/* C4CF8 8012FE68 00032C03 */ sra $a1, $v1, 16 -/* C4CFC 8012FE6C 00A2102A */ slt $v0, $a1, $v0 -/* C4D00 8012FE70 1040047C */ beqz $v0, .LJP_80131064 -/* C4D04 8012FE74 00041C00 */ sll $v1, $a0, 16 -/* C4D08 8012FE78 8CC2000C */ lw $v0, 0xC($a2) -/* C4D0C 8012FE7C 00032403 */ sra $a0, $v1, 16 -/* C4D10 8012FE80 0082102A */ slt $v0, $a0, $v0 -/* C4D14 8012FE84 10400477 */ beqz $v0, .LJP_80131064 -/* C4D18 8012FE88 00000000 */ nop -/* C4D1C 8012FE8C 90E20008 */ lbu $v0, 0x8($a3) -/* C4D20 8012FE90 C4C00010 */ lwc1 $f0, 0x10($a2) -/* C4D24 8012FE94 44821000 */ mtc1 $v0, $f2 -/* C4D28 8012FE98 00000000 */ nop -/* C4D2C 8012FE9C 468010A0 */ cvt.s.w $f2, $f2 -/* C4D30 8012FEA0 46020002 */ mul.s $f0, $f0, $f2 -/* C4D34 8012FEA4 00000000 */ nop -/* C4D38 8012FEA8 8CC30000 */ lw $v1, 0x0($a2) -/* C4D3C 8012FEAC 4600030D */ trunc.w.s $f12, $f0 -/* C4D40 8012FEB0 44026000 */ mfc1 $v0, $f12 -/* C4D44 8012FEB4 00000000 */ nop -/* C4D48 8012FEB8 00A21021 */ addu $v0, $a1, $v0 -/* C4D4C 8012FEBC 0062182A */ slt $v1, $v1, $v0 -/* C4D50 8012FEC0 10600468 */ beqz $v1, .LJP_80131064 -/* C4D54 8012FEC4 00000000 */ nop -/* C4D58 8012FEC8 91020003 */ lbu $v0, 0x3($t0) -/* C4D5C 8012FECC C4C00014 */ lwc1 $f0, 0x14($a2) -/* C4D60 8012FED0 44821000 */ mtc1 $v0, $f2 -/* C4D64 8012FED4 00000000 */ nop -/* C4D68 8012FED8 468010A0 */ cvt.s.w $f2, $f2 -/* C4D6C 8012FEDC 46020002 */ mul.s $f0, $f0, $f2 -/* C4D70 8012FEE0 00000000 */ nop -/* C4D74 8012FEE4 8CC30008 */ lw $v1, 0x8($a2) -/* C4D78 8012FEE8 4600030D */ trunc.w.s $f12, $f0 -/* C4D7C 8012FEEC 44026000 */ mfc1 $v0, $f12 -/* C4D80 8012FEF0 00000000 */ nop -/* C4D84 8012FEF4 00821021 */ addu $v0, $a0, $v0 -/* C4D88 8012FEF8 0062182A */ slt $v1, $v1, $v0 -/* C4D8C 8012FEFC 10600459 */ beqz $v1, .LJP_80131064 -/* C4D90 8012FF00 00000000 */ nop -/* C4D94 8012FF04 97B2008E */ lhu $s2, 0x8E($sp) -/* C4D98 8012FF08 8CC50038 */ lw $a1, 0x38($a2) -/* C4D9C 8012FF0C 94D9004A */ lhu $t9, 0x4A($a2) -/* C4DA0 8012FF10 30A20020 */ andi $v0, $a1, 0x20 -/* C4DA4 8012FF14 1040000B */ beqz $v0, .LJP_8012FF44 -/* C4DA8 8012FF18 A7B900A6 */ sh $t9, 0xA6($sp) -/* C4DAC 8012FF1C 44890000 */ mtc1 $t1, $f0 -/* C4DB0 8012FF20 00000000 */ nop -/* C4DB4 8012FF24 46800020 */ cvt.s.w $f0, $f0 -/* C4DB8 8012FF28 3C018015 */ lui $at, %hi(D_JP_80155958) -/* C4DBC 8012FF2C D4225958 */ ldc1 $f2, %lo(D_JP_80155958)($at) -/* C4DC0 8012FF30 46000021 */ cvt.d.s $f0, $f0 -/* C4DC4 8012FF34 46220002 */ mul.d $f0, $f0, $f2 -/* C4DC8 8012FF38 00000000 */ nop -/* C4DCC 8012FF3C 4620030D */ trunc.w.d $f12, $f0 -/* C4DD0 8012FF40 44126000 */ mfc1 $s2, $f12 -.LJP_8012FF44: -/* C4DD4 8012FF44 93C204B8 */ lbu $v0, 0x4B8($fp) -/* C4DD8 8012FF48 24190007 */ addiu $t9, $zero, 0x7 -/* C4DDC 8012FF4C 14590018 */ bne $v0, $t9, .LJP_8012FFB0 -/* C4DE0 8012FF50 00000000 */ nop -/* C4DE4 8012FF54 94C20034 */ lhu $v0, 0x34($a2) -/* C4DE8 8012FF58 30420020 */ andi $v0, $v0, 0x20 -/* C4DEC 8012FF5C 10400014 */ beqz $v0, .LJP_8012FFB0 -/* C4DF0 8012FF60 00000000 */ nop -/* C4DF4 8012FF64 90C3002D */ lbu $v1, 0x2D($a2) -/* C4DF8 8012FF68 93C204A8 */ lbu $v0, 0x4A8($fp) -/* C4DFC 8012FF6C 14620004 */ bne $v1, $v0, .LJP_8012FF80 -/* C4E00 8012FF70 3C04FFFF */ lui $a0, (0xFFFF7FFF >> 16) -/* C4E04 8012FF74 34A28600 */ ori $v0, $a1, 0x8600 -/* C4E08 8012FF78 0804BFEC */ j .LJP_8012FFB0 -/* C4E0C 8012FF7C ACC20038 */ sw $v0, 0x38($a2) -.LJP_8012FF80: -/* C4E10 8012FF80 34847FFF */ ori $a0, $a0, (0xFFFF7FFF & 0xFFFF) -/* C4E14 8012FF84 2402FBFF */ addiu $v0, $zero, -0x401 -/* C4E18 8012FF88 00A21024 */ and $v0, $a1, $v0 -/* C4E1C 8012FF8C 2403FDFF */ addiu $v1, $zero, -0x201 -/* C4E20 8012FF90 94D8004A */ lhu $t8, 0x4A($a2) -/* C4E24 8012FF94 00431024 */ and $v0, $v0, $v1 -/* C4E28 8012FF98 A7B800A6 */ sh $t8, 0xA6($sp) -/* C4E2C 8012FF9C 94C30034 */ lhu $v1, 0x34($a2) -/* C4E30 8012FFA0 00441024 */ and $v0, $v0, $a0 -/* C4E34 8012FFA4 ACC20038 */ sw $v0, 0x38($a2) -/* C4E38 8012FFA8 34630010 */ ori $v1, $v1, 0x10 -/* C4E3C 8012FFAC A4C30034 */ sh $v1, 0x34($a2) -.LJP_8012FFB0: -/* C4E40 8012FFB0 3C028016 */ lui $v0, %hi(msg_drawState) -/* C4E44 8012FFB4 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) -/* C4E48 8012FFB8 8C420038 */ lw $v0, 0x38($v0) -/* C4E4C 8012FFBC 30420001 */ andi $v0, $v0, 0x1 -/* C4E50 8012FFC0 10400011 */ beqz $v0, .LJP_80130008 -/* C4E54 8012FFC4 00000000 */ nop -/* C4E58 8012FFC8 0C00A66F */ jal rand_int -/* C4E5C 8012FFCC 24042710 */ addiu $a0, $zero, 0x2710 -/* C4E60 8012FFD0 00021FC2 */ srl $v1, $v0, 31 -/* C4E64 8012FFD4 00431821 */ addu $v1, $v0, $v1 -/* C4E68 8012FFD8 00031843 */ sra $v1, $v1, 1 -/* C4E6C 8012FFDC 00031840 */ sll $v1, $v1, 1 -/* C4E70 8012FFE0 00431023 */ subu $v0, $v0, $v1 -/* C4E74 8012FFE4 02228821 */ addu $s1, $s1, $v0 -/* C4E78 8012FFE8 0C00A66F */ jal rand_int -/* C4E7C 8012FFEC 24042710 */ addiu $a0, $zero, 0x2710 -/* C4E80 8012FFF0 00021FC2 */ srl $v1, $v0, 31 -/* C4E84 8012FFF4 00431821 */ addu $v1, $v0, $v1 -/* C4E88 8012FFF8 00031843 */ sra $v1, $v1, 1 -/* C4E8C 8012FFFC 00031840 */ sll $v1, $v1, 1 -/* C4E90 80130000 00431023 */ subu $v0, $v0, $v1 -/* C4E94 80130004 02629821 */ addu $s3, $s3, $v0 -.LJP_80130008: -/* C4E98 80130008 3C048016 */ lui $a0, %hi(msg_drawState) -/* C4E9C 8013000C 8C84ACF4 */ lw $a0, %lo(msg_drawState)($a0) -/* C4EA0 80130010 8C820038 */ lw $v0, 0x38($a0) -/* C4EA4 80130014 30420002 */ andi $v0, $v0, 0x2 -/* C4EA8 80130018 10400063 */ beqz $v0, .LJP_801301A8 -/* C4EAC 8013001C 00000000 */ nop -/* C4EB0 80130020 C4820010 */ lwc1 $f2, 0x10($a0) -/* C4EB4 80130024 3C013FF0 */ lui $at, (0x3FF00000 >> 16) -/* C4EB8 80130028 44816800 */ mtc1 $at, $f13 -/* C4EBC 8013002C 44806000 */ mtc1 $zero, $f12 -/* C4EC0 80130030 460010A1 */ cvt.d.s $f2, $f2 -/* C4EC4 80130034 462C1081 */ sub.d $f2, $f2, $f12 -/* C4EC8 80130038 3C014014 */ lui $at, (0x40140000 >> 16) -/* C4ECC 8013003C 44812800 */ mtc1 $at, $f5 -/* C4ED0 80130040 44802000 */ mtc1 $zero, $f4 -/* C4ED4 80130044 00000000 */ nop -/* C4ED8 80130048 46241102 */ mul.d $f4, $f2, $f4 -/* C4EDC 8013004C 00000000 */ nop -/* C4EE0 80130050 3C01402E */ lui $at, (0x402E0000 >> 16) -/* C4EE4 80130054 44810800 */ mtc1 $at, $f1 -/* C4EE8 80130058 44800000 */ mtc1 $zero, $f0 -/* C4EEC 8013005C 00000000 */ nop -/* C4EF0 80130060 46201082 */ mul.d $f2, $f2, $f0 -/* C4EF4 80130064 00000000 */ nop -/* C4EF8 80130068 3C014034 */ lui $at, (0x40340000 >> 16) -/* C4EFC 8013006C 44810800 */ mtc1 $at, $f1 -/* C4F00 80130070 44800000 */ mtc1 $zero, $f0 -/* C4F04 80130074 00000000 */ nop -/* C4F08 80130078 46240001 */ sub.d $f0, $f0, $f4 -/* C4F0C 8013007C 97C30412 */ lhu $v1, 0x412($fp) -/* C4F10 80130080 4620030D */ trunc.w.d $f12, $f0 -/* C4F14 80130084 44026000 */ mfc1 $v0, $f12 -/* C4F18 80130088 00000000 */ nop -/* C4F1C 8013008C 00620018 */ mult $v1, $v0 -/* C4F20 80130090 3C018015 */ lui $at, %hi(D_JP_80155960) -/* C4F24 80130094 D4205960 */ ldc1 $f0, %lo(D_JP_80155960)($at) -/* C4F28 80130098 46220001 */ sub.d $f0, $f0, $f2 -/* C4F2C 8013009C 00002812 */ mflo $a1 -/* C4F30 801300A0 8C830030 */ lw $v1, 0x30($a0) -/* C4F34 801300A4 4620030D */ trunc.w.d $f12, $f0 -/* C4F38 801300A8 44026000 */ mfc1 $v0, $f12 -/* C4F3C 801300AC 00000000 */ nop -/* C4F40 801300B0 00620018 */ mult $v1, $v0 -/* C4F44 801300B4 00001812 */ mflo $v1 -/* C4F48 801300B8 00A38023 */ subu $s0, $a1, $v1 -/* C4F4C 801300BC 00102400 */ sll $a0, $s0, 16 -/* C4F50 801300C0 0C00A4E5 */ jal cosine -/* C4F54 801300C4 00042403 */ sra $a0, $a0, 16 -/* C4F58 801300C8 3C028016 */ lui $v0, %hi(msg_drawState) -/* C4F5C 801300CC 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) -/* C4F60 801300D0 C4420010 */ lwc1 $f2, 0x10($v0) -/* C4F64 801300D4 3C013FF0 */ lui $at, (0x3FF00000 >> 16) -/* C4F68 801300D8 44816800 */ mtc1 $at, $f13 -/* C4F6C 801300DC 44806000 */ mtc1 $zero, $f12 -/* C4F70 801300E0 460010A1 */ cvt.d.s $f2, $f2 -/* C4F74 801300E4 462C1081 */ sub.d $f2, $f2, $f12 -/* C4F78 801300E8 3C018015 */ lui $at, %hi(D_JP_80155968) -/* C4F7C 801300EC D4345968 */ ldc1 $f20, %lo(D_JP_80155968)($at) -/* C4F80 801300F0 46341080 */ add.d $f2, $f2, $f20 -/* C4F84 801300F4 46000021 */ cvt.d.s $f0, $f0 -/* C4F88 801300F8 46220002 */ mul.d $f0, $f0, $f2 -/* C4F8C 801300FC 00000000 */ nop -/* C4F90 80130100 3C018015 */ lui $at, %hi(D_JP_80155970) -/* C4F94 80130104 D4245970 */ ldc1 $f4, %lo(D_JP_80155970)($at) -/* C4F98 80130108 44901000 */ mtc1 $s0, $f2 -/* C4F9C 8013010C 00000000 */ nop -/* C4FA0 80130110 468010A1 */ cvt.d.w $f2, $f2 -/* C4FA4 80130114 46241080 */ add.d $f2, $f2, $f4 -/* C4FA8 80130118 3C018015 */ lui $at, %hi(D_JP_80155978) -/* C4FAC 8013011C D4245978 */ ldc1 $f4, %lo(D_JP_80155978)($at) -/* C4FB0 80130120 00111400 */ sll $v0, $s1, 16 -/* C4FB4 80130124 46241080 */ add.d $f2, $f2, $f4 -/* C4FB8 80130128 00021403 */ sra $v0, $v0, 16 -/* C4FBC 8013012C 44822000 */ mtc1 $v0, $f4 -/* C4FC0 80130130 00000000 */ nop -/* C4FC4 80130134 46802121 */ cvt.d.w $f4, $f4 -/* C4FC8 80130138 4620130D */ trunc.w.d $f12, $f2 -/* C4FCC 8013013C 44046000 */ mfc1 $a0, $f12 -/* C4FD0 80130140 46202100 */ add.d $f4, $f4, $f0 -/* C4FD4 80130144 00042400 */ sll $a0, $a0, 16 -/* C4FD8 80130148 4620230D */ trunc.w.d $f12, $f4 -/* C4FDC 8013014C 44116000 */ mfc1 $s1, $f12 -/* C4FE0 80130150 0C00A4E5 */ jal cosine -/* C4FE4 80130154 00042403 */ sra $a0, $a0, 16 -/* C4FE8 80130158 3C028016 */ lui $v0, %hi(msg_drawState) -/* C4FEC 8013015C 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) -/* C4FF0 80130160 C4420014 */ lwc1 $f2, 0x14($v0) -/* C4FF4 80130164 3C013FF0 */ lui $at, (0x3FF00000 >> 16) -/* C4FF8 80130168 44816800 */ mtc1 $at, $f13 -/* C4FFC 8013016C 44806000 */ mtc1 $zero, $f12 -/* C5000 80130170 460010A1 */ cvt.d.s $f2, $f2 -/* C5004 80130174 462C1081 */ sub.d $f2, $f2, $f12 -/* C5008 80130178 46341080 */ add.d $f2, $f2, $f20 -/* C500C 8013017C 46000021 */ cvt.d.s $f0, $f0 -/* C5010 80130180 46220002 */ mul.d $f0, $f0, $f2 -/* C5014 80130184 00000000 */ nop -/* C5018 80130188 00131400 */ sll $v0, $s3, 16 -/* C501C 8013018C 00021403 */ sra $v0, $v0, 16 -/* C5020 80130190 44821000 */ mtc1 $v0, $f2 -/* C5024 80130194 00000000 */ nop -/* C5028 80130198 468010A1 */ cvt.d.w $f2, $f2 -/* C502C 8013019C 46201080 */ add.d $f2, $f2, $f0 -/* C5030 801301A0 4620130D */ trunc.w.d $f12, $f2 -/* C5034 801301A4 44136000 */ mfc1 $s3, $f12 -.LJP_801301A8: -/* C5038 801301A8 3C038016 */ lui $v1, %hi(msg_drawState) -/* C503C 801301AC 8C63ACF4 */ lw $v1, %lo(msg_drawState)($v1) -/* C5040 801301B0 8C620038 */ lw $v0, 0x38($v1) -/* C5044 801301B4 30420200 */ andi $v0, $v0, 0x200 -/* C5048 801301B8 1040005A */ beqz $v0, .LJP_80130324 -/* C504C 801301BC 00000000 */ nop -/* C5050 801301C0 C4620010 */ lwc1 $f2, 0x10($v1) -/* C5054 801301C4 3C013FF0 */ lui $at, (0x3FF00000 >> 16) -/* C5058 801301C8 44816800 */ mtc1 $at, $f13 -/* C505C 801301CC 44806000 */ mtc1 $zero, $f12 -/* C5060 801301D0 460010A1 */ cvt.d.s $f2, $f2 -/* C5064 801301D4 462C1081 */ sub.d $f2, $f2, $f12 -/* C5068 801301D8 3C014014 */ lui $at, (0x40140000 >> 16) -/* C506C 801301DC 44810800 */ mtc1 $at, $f1 -/* C5070 801301E0 44800000 */ mtc1 $zero, $f0 -/* C5074 801301E4 00000000 */ nop -/* C5078 801301E8 46201082 */ mul.d $f2, $f2, $f0 -/* C507C 801301EC 00000000 */ nop -/* C5080 801301F0 3C014034 */ lui $at, (0x40340000 >> 16) -/* C5084 801301F4 44810800 */ mtc1 $at, $f1 -/* C5088 801301F8 44800000 */ mtc1 $zero, $f0 -/* C508C 801301FC 00000000 */ nop -/* C5090 80130200 46220001 */ sub.d $f0, $f0, $f2 -/* C5094 80130204 3C028015 */ lui $v0, %hi(gMsgGlobalWaveCounter) -/* C5098 80130208 94426344 */ lhu $v0, %lo(gMsgGlobalWaveCounter)($v0) -/* C509C 8013020C 8C630030 */ lw $v1, 0x30($v1) -/* C50A0 80130210 4620030D */ trunc.w.d $f12, $f0 -/* C50A4 80130214 44046000 */ mfc1 $a0, $f12 -/* C50A8 80130218 00000000 */ nop -/* C50AC 8013021C 00440018 */ mult $v0, $a0 -/* C50B0 80130220 00031040 */ sll $v0, $v1, 1 -/* C50B4 80130224 00431021 */ addu $v0, $v0, $v1 -/* C50B8 80130228 00028100 */ sll $s0, $v0, 4 -/* C50BC 8013022C 02028023 */ subu $s0, $s0, $v0 -/* C50C0 80130230 0000C012 */ mflo $t8 -/* C50C4 80130234 03108023 */ subu $s0, $t8, $s0 -/* C50C8 80130238 00102400 */ sll $a0, $s0, 16 -/* C50CC 8013023C 0C00A4E5 */ jal cosine -/* C50D0 80130240 00042403 */ sra $a0, $a0, 16 -/* C50D4 80130244 3C028016 */ lui $v0, %hi(msg_drawState) -/* C50D8 80130248 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) -/* C50DC 8013024C C4420010 */ lwc1 $f2, 0x10($v0) -/* C50E0 80130250 3C013FF0 */ lui $at, (0x3FF00000 >> 16) -/* C50E4 80130254 44816800 */ mtc1 $at, $f13 -/* C50E8 80130258 44806000 */ mtc1 $zero, $f12 -/* C50EC 8013025C 460010A1 */ cvt.d.s $f2, $f2 -/* C50F0 80130260 462C1081 */ sub.d $f2, $f2, $f12 -/* C50F4 80130264 3C018015 */ lui $at, %hi(D_JP_80155980) -/* C50F8 80130268 D4345980 */ ldc1 $f20, %lo(D_JP_80155980)($at) -/* C50FC 8013026C 46341080 */ add.d $f2, $f2, $f20 -/* C5100 80130270 46000021 */ cvt.d.s $f0, $f0 -/* C5104 80130274 46220002 */ mul.d $f0, $f0, $f2 -/* C5108 80130278 00000000 */ nop -/* C510C 8013027C 3C018015 */ lui $at, %hi(D_JP_80155988) -/* C5110 80130280 D4245988 */ ldc1 $f4, %lo(D_JP_80155988)($at) -/* C5114 80130284 44901000 */ mtc1 $s0, $f2 -/* C5118 80130288 00000000 */ nop -/* C511C 8013028C 468010A1 */ cvt.d.w $f2, $f2 -/* C5120 80130290 46241080 */ add.d $f2, $f2, $f4 -/* C5124 80130294 3C018015 */ lui $at, %hi(D_JP_80155990) -/* C5128 80130298 D4245990 */ ldc1 $f4, %lo(D_JP_80155990)($at) -/* C512C 8013029C 00111400 */ sll $v0, $s1, 16 -/* C5130 801302A0 46241080 */ add.d $f2, $f2, $f4 -/* C5134 801302A4 00021403 */ sra $v0, $v0, 16 -/* C5138 801302A8 44822000 */ mtc1 $v0, $f4 -/* C513C 801302AC 00000000 */ nop -/* C5140 801302B0 46802121 */ cvt.d.w $f4, $f4 -/* C5144 801302B4 4620130D */ trunc.w.d $f12, $f2 -/* C5148 801302B8 44046000 */ mfc1 $a0, $f12 -/* C514C 801302BC 46202100 */ add.d $f4, $f4, $f0 -/* C5150 801302C0 00042400 */ sll $a0, $a0, 16 -/* C5154 801302C4 4620230D */ trunc.w.d $f12, $f4 -/* C5158 801302C8 44116000 */ mfc1 $s1, $f12 -/* C515C 801302CC 0C00A4E5 */ jal cosine -/* C5160 801302D0 00042403 */ sra $a0, $a0, 16 -/* C5164 801302D4 3C028016 */ lui $v0, %hi(msg_drawState) -/* C5168 801302D8 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) -/* C516C 801302DC C4420014 */ lwc1 $f2, 0x14($v0) -/* C5170 801302E0 3C013FF0 */ lui $at, (0x3FF00000 >> 16) -/* C5174 801302E4 44816800 */ mtc1 $at, $f13 -/* C5178 801302E8 44806000 */ mtc1 $zero, $f12 -/* C517C 801302EC 460010A1 */ cvt.d.s $f2, $f2 -/* C5180 801302F0 462C1081 */ sub.d $f2, $f2, $f12 -/* C5184 801302F4 46341080 */ add.d $f2, $f2, $f20 -/* C5188 801302F8 46000021 */ cvt.d.s $f0, $f0 -/* C518C 801302FC 46220002 */ mul.d $f0, $f0, $f2 -/* C5190 80130300 00000000 */ nop -/* C5194 80130304 00131400 */ sll $v0, $s3, 16 -/* C5198 80130308 00021403 */ sra $v0, $v0, 16 -/* C519C 8013030C 44821000 */ mtc1 $v0, $f2 -/* C51A0 80130310 00000000 */ nop -/* C51A4 80130314 468010A1 */ cvt.d.w $f2, $f2 -/* C51A8 80130318 46201080 */ add.d $f2, $f2, $f0 -/* C51AC 8013031C 4620130D */ trunc.w.d $f12, $f2 -/* C51B0 80130320 44136000 */ mfc1 $s3, $f12 -.LJP_80130324: -/* C51B4 80130324 3C058016 */ lui $a1, %hi(msg_drawState) -/* C51B8 80130328 8CA5ACF4 */ lw $a1, %lo(msg_drawState)($a1) -/* C51BC 8013032C 8CA60038 */ lw $a2, 0x38($a1) -/* C51C0 80130330 30C20040 */ andi $v0, $a2, 0x40 -/* C51C4 80130334 10400019 */ beqz $v0, .LJP_8013039C -/* C51C8 80130338 30C20400 */ andi $v0, $a2, 0x400 -/* C51CC 8013033C 97C30412 */ lhu $v1, 0x412($fp) -/* C51D0 80130340 3C02AAAA */ lui $v0, (0xAAAAAAAB >> 16) -/* C51D4 80130344 3442AAAB */ ori $v0, $v0, (0xAAAAAAAB & 0xFFFF) -/* C51D8 80130348 00620019 */ multu $v1, $v0 -/* C51DC 8013034C 8CA40030 */ lw $a0, 0x30($a1) -/* C51E0 80130350 3C036666 */ lui $v1, (0x66666667 >> 16) -/* C51E4 80130354 34636667 */ ori $v1, $v1, (0x66666667 & 0xFFFF) -/* C51E8 80130358 0000C010 */ mfhi $t8 -/* C51EC 8013035C 00181042 */ srl $v0, $t8, 1 -/* C51F0 80130360 3042FFFF */ andi $v0, $v0, 0xFFFF -/* C51F4 80130364 00822023 */ subu $a0, $a0, $v0 -/* C51F8 80130368 04820001 */ bltzl $a0, .LJP_80130370 -/* C51FC 8013036C 00042023 */ negu $a0, $a0 -.LJP_80130370: -/* C5200 80130370 00830018 */ mult $a0, $v1 -/* C5204 80130374 000417C3 */ sra $v0, $a0, 31 -/* C5208 80130378 0000C010 */ mfhi $t8 -/* C520C 8013037C 00181883 */ sra $v1, $t8, 2 -/* C5210 80130380 00621823 */ subu $v1, $v1, $v0 -/* C5214 80130384 00031080 */ sll $v0, $v1, 2 -/* C5218 80130388 00431021 */ addu $v0, $v0, $v1 -/* C521C 8013038C 00021040 */ sll $v0, $v0, 1 -/* C5220 80130390 00822023 */ subu $a0, $a0, $v0 -/* C5224 80130394 A7A400A6 */ sh $a0, 0xA6($sp) -/* C5228 80130398 30C20400 */ andi $v0, $a2, 0x400 -.LJP_8013039C: -/* C522C 8013039C 1040001B */ beqz $v0, .LJP_8013040C -/* C5230 801303A0 30C20080 */ andi $v0, $a2, 0x80 -/* C5234 801303A4 3C028007 */ lui $v0, %hi(gGameStatusPtr) -/* C5238 801303A8 8C42417C */ lw $v0, %lo(gGameStatusPtr)($v0) -/* C523C 801303AC 94430134 */ lhu $v1, 0x134($v0) -/* C5240 801303B0 3C02AAAA */ lui $v0, (0xAAAAAAAB >> 16) -/* C5244 801303B4 3442AAAB */ ori $v0, $v0, (0xAAAAAAAB & 0xFFFF) -/* C5248 801303B8 00620019 */ multu $v1, $v0 -/* C524C 801303BC 8CA40030 */ lw $a0, 0x30($a1) -/* C5250 801303C0 3C036666 */ lui $v1, (0x66666667 >> 16) -/* C5254 801303C4 34636667 */ ori $v1, $v1, (0x66666667 & 0xFFFF) -/* C5258 801303C8 0000C010 */ mfhi $t8 -/* C525C 801303CC 00181042 */ srl $v0, $t8, 1 -/* C5260 801303D0 3042FFFF */ andi $v0, $v0, 0xFFFF -/* C5264 801303D4 00822023 */ subu $a0, $a0, $v0 -/* C5268 801303D8 04820001 */ bltzl $a0, .LJP_801303E0 -/* C526C 801303DC 00042023 */ negu $a0, $a0 -.LJP_801303E0: -/* C5270 801303E0 00830018 */ mult $a0, $v1 -/* C5274 801303E4 000417C3 */ sra $v0, $a0, 31 -/* C5278 801303E8 0000C010 */ mfhi $t8 -/* C527C 801303EC 00181883 */ sra $v1, $t8, 2 -/* C5280 801303F0 00621823 */ subu $v1, $v1, $v0 -/* C5284 801303F4 00031080 */ sll $v0, $v1, 2 -/* C5288 801303F8 00431021 */ addu $v0, $v0, $v1 -/* C528C 801303FC 00021040 */ sll $v0, $v0, 1 -/* C5290 80130400 00822023 */ subu $a0, $a0, $v0 -/* C5294 80130404 A7A400A6 */ sh $a0, 0xA6($sp) -/* C5298 80130408 30C20080 */ andi $v0, $a2, 0x80 -.LJP_8013040C: -/* C529C 8013040C 10400020 */ beqz $v0, .LJP_80130490 -/* C52A0 80130410 3C02E300 */ lui $v0, (0xE3001A01 >> 16) -/* C52A4 80130414 34421A01 */ ori $v0, $v0, (0xE3001A01 & 0xFFFF) -/* C52A8 80130418 3C05E200 */ lui $a1, (0xE2001E01 >> 16) -/* C52AC 8013041C 34A51E01 */ ori $a1, $a1, (0xE2001E01 & 0xFFFF) -/* C52B0 80130420 8EE30000 */ lw $v1, 0x0($s7) -/* C52B4 80130424 3C018015 */ lui $at, %hi(D_JP_80155998) -/* C52B8 80130428 D4225998 */ ldc1 $f2, %lo(D_JP_80155998)($at) -/* C52BC 8013042C 0060202D */ daddu $a0, $v1, $zero -/* C52C0 80130430 24630008 */ addiu $v1, $v1, 0x8 -/* C52C4 80130434 AEE30000 */ sw $v1, 0x0($s7) -/* C52C8 80130438 AC820000 */ sw $v0, 0x0($a0) -/* C52CC 8013043C 00121400 */ sll $v0, $s2, 16 -/* C52D0 80130440 00021403 */ sra $v0, $v0, 16 -/* C52D4 80130444 44820000 */ mtc1 $v0, $f0 -/* C52D8 80130448 00000000 */ nop -/* C52DC 8013044C 46800021 */ cvt.d.w $f0, $f0 -/* C52E0 80130450 97B900B6 */ lhu $t9, 0xB6($sp) -/* C52E4 80130454 46220003 */ div.d $f0, $f0, $f2 -/* C52E8 80130458 44992000 */ mtc1 $t9, $f4 -/* C52EC 8013045C 00000000 */ nop -/* C52F0 80130460 46802121 */ cvt.d.w $f4, $f4 -/* C52F4 80130464 46202102 */ mul.d $f4, $f4, $f0 -/* C52F8 80130468 00000000 */ nop -/* C52FC 8013046C 24020020 */ addiu $v0, $zero, 0x20 -/* C5300 80130470 AC820004 */ sw $v0, 0x4($a0) -/* C5304 80130474 24620008 */ addiu $v0, $v1, 0x8 -/* C5308 80130478 AEE20000 */ sw $v0, 0x0($s7) -/* C530C 8013047C 24020003 */ addiu $v0, $zero, 0x3 -/* C5310 80130480 AC650000 */ sw $a1, 0x0($v1) -/* C5314 80130484 AC620004 */ sw $v0, 0x4($v1) -/* C5318 80130488 4620230D */ trunc.w.d $f12, $f4 -/* C531C 8013048C 44126000 */ mfc1 $s2, $f12 -.LJP_80130490: -/* C5320 80130490 3C028016 */ lui $v0, %hi(msg_drawState) -/* C5324 80130494 8C42ACF4 */ lw $v0, %lo(msg_drawState)($v0) -/* C5328 80130498 94420034 */ lhu $v0, 0x34($v0) -/* C532C 8013049C 30420002 */ andi $v0, $v0, 0x2 -/* C5330 801304A0 14400005 */ bnez $v0, .LJP_801304B8 -/* C5334 801304A4 00121C00 */ sll $v1, $s2, 16 -/* C5338 801304A8 97B90096 */ lhu $t9, 0x96($sp) -/* C533C 801304AC 00191400 */ sll $v0, $t9, 16 -/* C5340 801304B0 10620063 */ beq $v1, $v0, .LJP_80130640 -/* C5344 801304B4 00121400 */ sll $v0, $s2, 16 -.LJP_801304B8: -/* C5348 801304B8 97B80096 */ lhu $t8, 0x96($sp) -/* C534C 801304BC 00181400 */ sll $v0, $t8, 16 -/* C5350 801304C0 00021403 */ sra $v0, $v0, 16 -/* C5354 801304C4 284200FF */ slti $v0, $v0, 0xFF -/* C5358 801304C8 10400009 */ beqz $v0, .LJP_801304F0 -/* C535C 801304CC 00121400 */ sll $v0, $s2, 16 -/* C5360 801304D0 00021403 */ sra $v0, $v0, 16 -/* C5364 801304D4 284200FF */ slti $v0, $v0, 0xFF -/* C5368 801304D8 10400005 */ beqz $v0, .LJP_801304F0 -/* C536C 801304DC 00000000 */ nop -/* C5370 801304E0 8EE20000 */ lw $v0, 0x0($s7) -/* C5374 801304E4 0040182D */ daddu $v1, $v0, $zero -/* C5378 801304E8 0804C167 */ j .LJP_8013059C -/* C537C 801304EC 24420008 */ addiu $v0, $v0, 0x8 -.LJP_801304F0: -/* C5380 801304F0 97B90096 */ lhu $t9, 0x96($sp) -/* C5384 801304F4 241800FF */ addiu $t8, $zero, 0xFF -/* C5388 801304F8 00191400 */ sll $v0, $t9, 16 -/* C538C 801304FC 00021403 */ sra $v0, $v0, 16 -/* C5390 80130500 1458002C */ bne $v0, $t8, .LJP_801305B4 -/* C5394 80130504 00121400 */ sll $v0, $s2, 16 -/* C5398 80130508 00021403 */ sra $v0, $v0, 16 -/* C539C 8013050C 0058102A */ slt $v0, $v0, $t8 -/* C53A0 80130510 10400028 */ beqz $v0, .LJP_801305B4 -/* C53A4 80130514 3C19E700 */ lui $t9, (0xE7000000 >> 16) -/* C53A8 80130518 8EE50000 */ lw $a1, 0x0($s7) -/* C53AC 8013051C 00A0102D */ daddu $v0, $a1, $zero -/* C53B0 80130520 AC590000 */ sw $t9, 0x0($v0) -/* C53B4 80130524 AC400004 */ sw $zero, 0x4($v0) -/* C53B8 80130528 8FC204BC */ lw $v0, 0x4BC($fp) -/* C53BC 8013052C 24A50008 */ addiu $a1, $a1, 0x8 -/* C53C0 80130530 30424000 */ andi $v0, $v0, 0x4000 -/* C53C4 80130534 10400006 */ beqz $v0, .LJP_80130550 -/* C53C8 80130538 AEE50000 */ sw $a1, 0x0($s7) -/* C53CC 8013053C 3C04E200 */ lui $a0, (0xE200001C >> 16) -/* C53D0 80130540 3484001C */ ori $a0, $a0, (0xE200001C & 0xFFFF) -/* C53D4 80130544 3C030050 */ lui $v1, (0x504840 >> 16) -/* C53D8 80130548 0804C158 */ j .LJP_80130560 -/* C53DC 8013054C 34634840 */ ori $v1, $v1, (0x504840 & 0xFFFF) -.LJP_80130550: -/* C53E0 80130550 3C04E200 */ lui $a0, (0xE200001C >> 16) -/* C53E4 80130554 3484001C */ ori $a0, $a0, (0xE200001C & 0xFFFF) -/* C53E8 80130558 3C030050 */ lui $v1, (0x504B40 >> 16) -/* C53EC 8013055C 34634B40 */ ori $v1, $v1, (0x504B40 & 0xFFFF) -.LJP_80130560: -/* C53F0 80130560 24A20008 */ addiu $v0, $a1, 0x8 -/* C53F4 80130564 AEE20000 */ sw $v0, 0x0($s7) -/* C53F8 80130568 ACA40000 */ sw $a0, 0x0($a1) -/* C53FC 8013056C ACA30004 */ sw $v1, 0x4($a1) -/* C5400 80130570 3C05FCFF */ lui $a1, (0xFCFF97FF >> 16) -/* C5404 80130574 34A597FF */ ori $a1, $a1, (0xFCFF97FF & 0xFFFF) -/* C5408 80130578 3C04FF2C */ lui $a0, (0xFF2CFE7F >> 16) -/* C540C 8013057C 8EE30000 */ lw $v1, 0x0($s7) -/* C5410 80130580 3484FE7F */ ori $a0, $a0, (0xFF2CFE7F & 0xFFFF) -/* C5414 80130584 0060102D */ daddu $v0, $v1, $zero -/* C5418 80130588 24630008 */ addiu $v1, $v1, 0x8 -/* C541C 8013058C AEE30000 */ sw $v1, 0x0($s7) -/* C5420 80130590 AC450000 */ sw $a1, 0x0($v0) -/* C5424 80130594 AC440004 */ sw $a0, 0x4($v0) -/* C5428 80130598 24620008 */ addiu $v0, $v1, 0x8 -.LJP_8013059C: -/* C542C 8013059C AEE20000 */ sw $v0, 0x0($s7) -/* C5430 801305A0 3C02FA00 */ lui $v0, (0xFA000000 >> 16) -/* C5434 801305A4 AC620000 */ sw $v0, 0x0($v1) -/* C5438 801305A8 324200FF */ andi $v0, $s2, 0xFF -/* C543C 801305AC 0804C18E */ j .LJP_80130638 -/* C5440 801305B0 AC620004 */ sw $v0, 0x4($v1) -.LJP_801305B4: -/* C5444 801305B4 97B80096 */ lhu $t8, 0x96($sp) -/* C5448 801305B8 00181400 */ sll $v0, $t8, 16 -/* C544C 801305BC 00021403 */ sra $v0, $v0, 16 -/* C5450 801305C0 284200FF */ slti $v0, $v0, 0xFF -/* C5454 801305C4 1040001C */ beqz $v0, .LJP_80130638 -/* C5458 801305C8 00121400 */ sll $v0, $s2, 16 -/* C545C 801305CC 00021403 */ sra $v0, $v0, 16 -/* C5460 801305D0 241900FF */ addiu $t9, $zero, 0xFF -/* C5464 801305D4 54590019 */ bnel $v0, $t9, .LJP_8013063C -/* C5468 801305D8 A7B20096 */ sh $s2, 0x96($sp) -/* C546C 801305DC 3C06E200 */ lui $a2, (0xE200001C >> 16) -/* C5470 801305E0 34C6001C */ ori $a2, $a2, (0xE200001C & 0xFFFF) -/* C5474 801305E4 3C040F0A */ lui $a0, (0xF0A7008 >> 16) -/* C5478 801305E8 34847008 */ ori $a0, $a0, (0xF0A7008 & 0xFFFF) -/* C547C 801305EC 3C07FCFF */ lui $a3, (0xFCFFFFFF >> 16) -/* C5480 801305F0 34E7FFFF */ ori $a3, $a3, (0xFCFFFFFF & 0xFFFF) -/* C5484 801305F4 3C05FFFC */ lui $a1, (0xFFFCF279 >> 16) -/* C5488 801305F8 8EE30000 */ lw $v1, 0x0($s7) -/* C548C 801305FC 34A5F279 */ ori $a1, $a1, (0xFFFCF279 & 0xFFFF) -/* C5490 80130600 0060102D */ daddu $v0, $v1, $zero -/* C5494 80130604 24630008 */ addiu $v1, $v1, 0x8 -/* C5498 80130608 3C18E700 */ lui $t8, (0xE7000000 >> 16) -/* C549C 8013060C AEE30000 */ sw $v1, 0x0($s7) -/* C54A0 80130610 AC580000 */ sw $t8, 0x0($v0) -/* C54A4 80130614 AC400004 */ sw $zero, 0x4($v0) -/* C54A8 80130618 24620008 */ addiu $v0, $v1, 0x8 -/* C54AC 8013061C AEE20000 */ sw $v0, 0x0($s7) -/* C54B0 80130620 24620010 */ addiu $v0, $v1, 0x10 -/* C54B4 80130624 AC660000 */ sw $a2, 0x0($v1) -/* C54B8 80130628 AC640004 */ sw $a0, 0x4($v1) -/* C54BC 8013062C AEE20000 */ sw $v0, 0x0($s7) -/* C54C0 80130630 AC670008 */ sw $a3, 0x8($v1) -/* C54C4 80130634 AC65000C */ sw $a1, 0xC($v1) -.LJP_80130638: -/* C54C8 80130638 A7B20096 */ sh $s2, 0x96($sp) -.LJP_8013063C: -/* C54CC 8013063C 00121400 */ sll $v0, $s2, 16 -.LJP_80130640: -/* C54D0 80130640 18400288 */ blez $v0, .LJP_80131064 -/* C54D4 80130644 00000000 */ nop -/* C54D8 80130648 3C068016 */ lui $a2, %hi(msg_drawState) -/* C54DC 8013064C 8CC6ACF4 */ lw $a2, %lo(msg_drawState)($a2) -/* C54E0 80130650 8CC30038 */ lw $v1, 0x38($a2) -/* C54E4 80130654 30620800 */ andi $v0, $v1, 0x800 -/* C54E8 80130658 10400092 */ beqz $v0, .LJP_801308A4 -/* C54EC 8013065C 240400F0 */ addiu $a0, $zero, 0xF0 -/* C54F0 80130660 8CC30020 */ lw $v1, 0x20($a2) -/* C54F4 80130664 8CC2004C */ lw $v0, 0x4C($a2) -/* C54F8 80130668 00621821 */ addu $v1, $v1, $v0 -/* C54FC 8013066C 90650001 */ lbu $a1, 0x1($v1) -/* C5500 80130670 10A401B8 */ beq $a1, $a0, .LJP_80130D54 -/* C5504 80130674 00000000 */ nop -/* C5508 80130678 90620002 */ lbu $v0, 0x2($v1) -/* C550C 8013067C 104401B5 */ beq $v0, $a0, .LJP_80130D54 -/* C5510 80130680 00000000 */ nop -/* C5514 80130684 90620003 */ lbu $v0, 0x3($v1) -/* C5518 80130688 104401B2 */ beq $v0, $a0, .LJP_80130D54 -/* C551C 8013068C 00000000 */ nop -/* C5520 80130690 90620004 */ lbu $v0, 0x4($v1) -/* C5524 80130694 104401AF */ beq $v0, $a0, .LJP_80130D54 -/* C5528 80130698 240200FB */ addiu $v0, $zero, 0xFB -/* C552C 8013069C 14A20026 */ bne $a1, $v0, .LJP_80130738 -/* C5530 801306A0 24020004 */ addiu $v0, $zero, 0x4 -/* C5534 801306A4 93C304B8 */ lbu $v1, 0x4B8($fp) -/* C5538 801306A8 14620023 */ bne $v1, $v0, .LJP_80130738 -/* C553C 801306AC 00111400 */ sll $v0, $s1, 16 -/* C5540 801306B0 C4C60014 */ lwc1 $f6, 0x14($a2) -/* C5544 801306B4 3C018015 */ lui $at, %hi(D_JP_801559A0) -/* C5548 801306B8 D42859A0 */ ldc1 $f8, %lo(D_JP_801559A0)($at) -/* C554C 801306BC 460031A1 */ cvt.d.s $f6, $f6 -/* C5550 801306C0 46283182 */ mul.d $f6, $f6, $f8 -/* C5554 801306C4 00000000 */ nop -/* C5558 801306C8 C4C00010 */ lwc1 $f0, 0x10($a2) -/* C555C 801306CC 46000021 */ cvt.d.s $f0, $f0 -/* C5560 801306D0 46280002 */ mul.d $f0, $f0, $f8 -/* C5564 801306D4 00000000 */ nop -/* C5568 801306D8 3C014018 */ lui $at, (0x40180000 >> 16) -/* C556C 801306DC 44812800 */ mtc1 $at, $f5 -/* C5570 801306E0 44802000 */ mtc1 $zero, $f4 -/* C5574 801306E4 462031A0 */ cvt.s.d $f6, $f6 -/* C5578 801306E8 460030A1 */ cvt.d.s $f2, $f6 -/* C557C 801306EC 46281083 */ div.d $f2, $f2, $f8 -/* C5580 801306F0 46241082 */ mul.d $f2, $f2, $f4 -/* C5584 801306F4 00000000 */ nop -/* C5588 801306F8 00021403 */ sra $v0, $v0, 16 -/* C558C 801306FC 46200020 */ cvt.s.d $f0, $f0 -/* C5590 80130700 E4C00018 */ swc1 $f0, 0x18($a2) -/* C5594 80130704 46201220 */ cvt.s.d $f8, $f2 -/* C5598 80130708 44821000 */ mtc1 $v0, $f2 -/* C559C 8013070C 00000000 */ nop -/* C55A0 80130710 468010A0 */ cvt.s.w $f2, $f2 -/* C55A4 80130714 00131400 */ sll $v0, $s3, 16 -/* C55A8 80130718 46081081 */ sub.s $f2, $f2, $f8 -/* C55AC 8013071C 00021403 */ sra $v0, $v0, 16 -/* C55B0 80130720 44820000 */ mtc1 $v0, $f0 -/* C55B4 80130724 00000000 */ nop -/* C55B8 80130728 46800020 */ cvt.s.w $f0, $f0 -/* C55BC 8013072C 46080001 */ sub.s $f0, $f0, $f8 -/* C55C0 80130730 0804C223 */ j .LJP_8013088C -/* C55C4 80130734 E4C6001C */ swc1 $f6, 0x1C($a2) -.LJP_80130738: -/* C55C8 80130738 3C048016 */ lui $a0, %hi(msg_drawState) -/* C55CC 8013073C 8C84ACF4 */ lw $a0, %lo(msg_drawState)($a0) -/* C55D0 80130740 8C820020 */ lw $v0, 0x20($a0) -/* C55D4 80130744 8C83004C */ lw $v1, 0x4C($a0) -/* C55D8 80130748 00431021 */ addu $v0, $v0, $v1 -/* C55DC 8013074C 90430002 */ lbu $v1, 0x2($v0) -/* C55E0 80130750 240200FB */ addiu $v0, $zero, 0xFB -/* C55E4 80130754 14620026 */ bne $v1, $v0, .LJP_801307F0 -/* C55E8 80130758 24020004 */ addiu $v0, $zero, 0x4 -/* C55EC 8013075C 93C304B8 */ lbu $v1, 0x4B8($fp) -/* C55F0 80130760 14620023 */ bne $v1, $v0, .LJP_801307F0 -/* C55F4 80130764 00111400 */ sll $v0, $s1, 16 -/* C55F8 80130768 C4860014 */ lwc1 $f6, 0x14($a0) -/* C55FC 8013076C 3C018015 */ lui $at, %hi(D_JP_801559A8) -/* C5600 80130770 D42859A8 */ ldc1 $f8, %lo(D_JP_801559A8)($at) -/* C5604 80130774 460031A1 */ cvt.d.s $f6, $f6 -/* C5608 80130778 46283182 */ mul.d $f6, $f6, $f8 -/* C560C 8013077C 00000000 */ nop -/* C5610 80130780 C4800010 */ lwc1 $f0, 0x10($a0) -/* C5614 80130784 46000021 */ cvt.d.s $f0, $f0 -/* C5618 80130788 46280002 */ mul.d $f0, $f0, $f8 -/* C561C 8013078C 00000000 */ nop -/* C5620 80130790 3C014008 */ lui $at, (0x40080000 >> 16) -/* C5624 80130794 44812800 */ mtc1 $at, $f5 -/* C5628 80130798 44802000 */ mtc1 $zero, $f4 -/* C562C 8013079C 462031A0 */ cvt.s.d $f6, $f6 -/* C5630 801307A0 460030A1 */ cvt.d.s $f2, $f6 -/* C5634 801307A4 46281083 */ div.d $f2, $f2, $f8 -/* C5638 801307A8 46241082 */ mul.d $f2, $f2, $f4 -/* C563C 801307AC 00000000 */ nop -/* C5640 801307B0 00021403 */ sra $v0, $v0, 16 -/* C5644 801307B4 46200020 */ cvt.s.d $f0, $f0 -/* C5648 801307B8 E4800018 */ swc1 $f0, 0x18($a0) -/* C564C 801307BC 46201220 */ cvt.s.d $f8, $f2 -/* C5650 801307C0 44821000 */ mtc1 $v0, $f2 -/* C5654 801307C4 00000000 */ nop -/* C5658 801307C8 468010A0 */ cvt.s.w $f2, $f2 -/* C565C 801307CC 00131400 */ sll $v0, $s3, 16 -/* C5660 801307D0 46081081 */ sub.s $f2, $f2, $f8 -/* C5664 801307D4 00021403 */ sra $v0, $v0, 16 -/* C5668 801307D8 44820000 */ mtc1 $v0, $f0 -/* C566C 801307DC 00000000 */ nop -/* C5670 801307E0 46800020 */ cvt.s.w $f0, $f0 -/* C5674 801307E4 46080001 */ sub.s $f0, $f0, $f8 -/* C5678 801307E8 0804C223 */ j .LJP_8013088C -/* C567C 801307EC E486001C */ swc1 $f6, 0x1C($a0) -.LJP_801307F0: -/* C5680 801307F0 8C820020 */ lw $v0, 0x20($a0) -/* C5684 801307F4 8C83004C */ lw $v1, 0x4C($a0) -/* C5688 801307F8 00431021 */ addu $v0, $v0, $v1 -/* C568C 801307FC 90430003 */ lbu $v1, 0x3($v0) -/* C5690 80130800 240200FB */ addiu $v0, $zero, 0xFB -/* C5694 80130804 14620153 */ bne $v1, $v0, .LJP_80130D54 -/* C5698 80130808 24020004 */ addiu $v0, $zero, 0x4 -/* C569C 8013080C 93C304B8 */ lbu $v1, 0x4B8($fp) -/* C56A0 80130810 14620150 */ bne $v1, $v0, .LJP_80130D54 -/* C56A4 80130814 00111400 */ sll $v0, $s1, 16 -/* C56A8 80130818 C4840014 */ lwc1 $f4, 0x14($a0) -/* C56AC 8013081C 3C018015 */ lui $at, %hi(D_JP_801559B0) -/* C56B0 80130820 D42659B0 */ ldc1 $f6, %lo(D_JP_801559B0)($at) -/* C56B4 80130824 46002121 */ cvt.d.s $f4, $f4 -/* C56B8 80130828 46262102 */ mul.d $f4, $f4, $f6 -/* C56BC 8013082C 00000000 */ nop -/* C56C0 80130830 C4820010 */ lwc1 $f2, 0x10($a0) -/* C56C4 80130834 460010A1 */ cvt.d.s $f2, $f2 -/* C56C8 80130838 46261082 */ mul.d $f2, $f2, $f6 -/* C56CC 8013083C 00000000 */ nop -/* C56D0 80130840 00021403 */ sra $v0, $v0, 16 -/* C56D4 80130844 46202120 */ cvt.s.d $f4, $f4 -/* C56D8 80130848 46002021 */ cvt.d.s $f0, $f4 -/* C56DC 8013084C 46260003 */ div.d $f0, $f0, $f6 -/* C56E0 80130850 462010A0 */ cvt.s.d $f2, $f2 -/* C56E4 80130854 E4820018 */ swc1 $f2, 0x18($a0) -/* C56E8 80130858 46200000 */ add.d $f0, $f0, $f0 -/* C56EC 8013085C 44821000 */ mtc1 $v0, $f2 -/* C56F0 80130860 00000000 */ nop -/* C56F4 80130864 468010A0 */ cvt.s.w $f2, $f2 -/* C56F8 80130868 00131400 */ sll $v0, $s3, 16 -/* C56FC 8013086C 46200220 */ cvt.s.d $f8, $f0 -/* C5700 80130870 46081081 */ sub.s $f2, $f2, $f8 -/* C5704 80130874 00021403 */ sra $v0, $v0, 16 -/* C5708 80130878 44820000 */ mtc1 $v0, $f0 -/* C570C 8013087C 00000000 */ nop -/* C5710 80130880 46800020 */ cvt.s.w $f0, $f0 -/* C5714 80130884 46080001 */ sub.s $f0, $f0, $f8 -/* C5718 80130888 E484001C */ swc1 $f4, 0x1C($a0) -.LJP_8013088C: -/* C571C 8013088C 4600130D */ trunc.w.s $f12, $f2 -/* C5720 80130890 44116000 */ mfc1 $s1, $f12 -/* C5724 80130894 4600030D */ trunc.w.s $f12, $f0 -/* C5728 80130898 44136000 */ mfc1 $s3, $f12 -/* C572C 8013089C 0804C355 */ j .LJP_80130D54 -/* C5730 801308A0 00000000 */ nop -.LJP_801308A4: -/* C5734 801308A4 30621000 */ andi $v0, $v1, 0x1000 -/* C5738 801308A8 10400060 */ beqz $v0, .LJP_80130A2C -/* C573C 801308AC 30622000 */ andi $v0, $v1, 0x2000 -/* C5740 801308B0 8CC30020 */ lw $v1, 0x20($a2) -/* C5744 801308B4 8CC2004C */ lw $v0, 0x4C($a2) -/* C5748 801308B8 00621821 */ addu $v1, $v1, $v0 -/* C574C 801308BC 90650001 */ lbu $a1, 0x1($v1) -/* C5750 801308C0 10A40124 */ beq $a1, $a0, .LJP_80130D54 -/* C5754 801308C4 00000000 */ nop -/* C5758 801308C8 90620002 */ lbu $v0, 0x2($v1) -/* C575C 801308CC 10440121 */ beq $v0, $a0, .LJP_80130D54 -/* C5760 801308D0 00000000 */ nop -/* C5764 801308D4 90620003 */ lbu $v0, 0x3($v1) -/* C5768 801308D8 1044011E */ beq $v0, $a0, .LJP_80130D54 -/* C576C 801308DC 00000000 */ nop -/* C5770 801308E0 90620004 */ lbu $v0, 0x4($v1) -/* C5774 801308E4 1044011B */ beq $v0, $a0, .LJP_80130D54 -/* C5778 801308E8 240200FB */ addiu $v0, $zero, 0xFB -/* C577C 801308EC 14A20015 */ bne $a1, $v0, .LJP_80130944 -/* C5780 801308F0 24020004 */ addiu $v0, $zero, 0x4 -/* C5784 801308F4 93C304B8 */ lbu $v1, 0x4B8($fp) -/* C5788 801308F8 14620012 */ bne $v1, $v0, .LJP_80130944 -/* C578C 801308FC 00000000 */ nop -/* C5790 80130900 C4C00010 */ lwc1 $f0, 0x10($a2) -/* C5794 80130904 3C018015 */ lui $at, %hi(D_JP_801559B8) -/* C5798 80130908 D42459B8 */ ldc1 $f4, %lo(D_JP_801559B8)($at) -/* C579C 8013090C 46000021 */ cvt.d.s $f0, $f0 -/* C57A0 80130910 46240002 */ mul.d $f0, $f0, $f4 -/* C57A4 80130914 00000000 */ nop -/* C57A8 80130918 C4C20014 */ lwc1 $f2, 0x14($a2) -/* C57AC 8013091C 460010A1 */ cvt.d.s $f2, $f2 -/* C57B0 80130920 46241082 */ mul.d $f2, $f2, $f4 -/* C57B4 80130924 00000000 */ nop -/* C57B8 80130928 26310005 */ addiu $s1, $s1, 0x5 -/* C57BC 8013092C 26730005 */ addiu $s3, $s3, 0x5 -/* C57C0 80130930 46200020 */ cvt.s.d $f0, $f0 -/* C57C4 80130934 462010A0 */ cvt.s.d $f2, $f2 -/* C57C8 80130938 E4C00018 */ swc1 $f0, 0x18($a2) -/* C57CC 8013093C 0804C355 */ j .LJP_80130D54 -/* C57D0 80130940 E4C2001C */ swc1 $f2, 0x1C($a2) -.LJP_80130944: -/* C57D4 80130944 3C048016 */ lui $a0, %hi(msg_drawState) -/* C57D8 80130948 8C84ACF4 */ lw $a0, %lo(msg_drawState)($a0) -/* C57DC 8013094C 8C820020 */ lw $v0, 0x20($a0) -/* C57E0 80130950 8C83004C */ lw $v1, 0x4C($a0) -/* C57E4 80130954 00431021 */ addu $v0, $v0, $v1 -/* C57E8 80130958 90430002 */ lbu $v1, 0x2($v0) -/* C57EC 8013095C 240200FB */ addiu $v0, $zero, 0xFB -/* C57F0 80130960 14620016 */ bne $v1, $v0, .LJP_801309BC -/* C57F4 80130964 24020004 */ addiu $v0, $zero, 0x4 -/* C57F8 80130968 93C304B8 */ lbu $v1, 0x4B8($fp) -/* C57FC 8013096C 14620013 */ bne $v1, $v0, .LJP_801309BC -/* C5800 80130970 00000000 */ nop -/* C5804 80130974 C4820010 */ lwc1 $f2, 0x10($a0) -/* C5808 80130978 3C013FE0 */ lui $at, (0x3FE00000 >> 16) -/* C580C 8013097C 44816800 */ mtc1 $at, $f13 -/* C5810 80130980 44806000 */ mtc1 $zero, $f12 -/* C5814 80130984 460010A1 */ cvt.d.s $f2, $f2 -/* C5818 80130988 462C1082 */ mul.d $f2, $f2, $f12 -/* C581C 8013098C 00000000 */ nop -/* C5820 80130990 C4800014 */ lwc1 $f0, 0x14($a0) -/* C5824 80130994 46000021 */ cvt.d.s $f0, $f0 -/* C5828 80130998 462C0002 */ mul.d $f0, $f0, $f12 -/* C582C 8013099C 00000000 */ nop -/* C5830 801309A0 26310003 */ addiu $s1, $s1, 0x3 -/* C5834 801309A4 26730003 */ addiu $s3, $s3, 0x3 -/* C5838 801309A8 462010A0 */ cvt.s.d $f2, $f2 -/* C583C 801309AC 46200020 */ cvt.s.d $f0, $f0 -/* C5840 801309B0 E4820018 */ swc1 $f2, 0x18($a0) -/* C5844 801309B4 0804C355 */ j .LJP_80130D54 -/* C5848 801309B8 E480001C */ swc1 $f0, 0x1C($a0) -.LJP_801309BC: -/* C584C 801309BC 8C820020 */ lw $v0, 0x20($a0) -/* C5850 801309C0 8C83004C */ lw $v1, 0x4C($a0) -/* C5854 801309C4 00431021 */ addu $v0, $v0, $v1 -/* C5858 801309C8 90430003 */ lbu $v1, 0x3($v0) -/* C585C 801309CC 240200FB */ addiu $v0, $zero, 0xFB -/* C5860 801309D0 146200E0 */ bne $v1, $v0, .LJP_80130D54 -/* C5864 801309D4 24020004 */ addiu $v0, $zero, 0x4 -/* C5868 801309D8 93C304B8 */ lbu $v1, 0x4B8($fp) -/* C586C 801309DC 146200DD */ bne $v1, $v0, .LJP_80130D54 -/* C5870 801309E0 00000000 */ nop -/* C5874 801309E4 C4800010 */ lwc1 $f0, 0x10($a0) -/* C5878 801309E8 3C013FE8 */ lui $at, (0x3FE80000 >> 16) -/* C587C 801309EC 44812800 */ mtc1 $at, $f5 -/* C5880 801309F0 44802000 */ mtc1 $zero, $f4 -/* C5884 801309F4 46000021 */ cvt.d.s $f0, $f0 -/* C5888 801309F8 46240002 */ mul.d $f0, $f0, $f4 -/* C588C 801309FC 00000000 */ nop -/* C5890 80130A00 C4820014 */ lwc1 $f2, 0x14($a0) -/* C5894 80130A04 460010A1 */ cvt.d.s $f2, $f2 -/* C5898 80130A08 46241082 */ mul.d $f2, $f2, $f4 -/* C589C 80130A0C 00000000 */ nop -/* C58A0 80130A10 26310002 */ addiu $s1, $s1, 0x2 -/* C58A4 80130A14 26730002 */ addiu $s3, $s3, 0x2 -/* C58A8 80130A18 46200020 */ cvt.s.d $f0, $f0 -/* C58AC 80130A1C 462010A0 */ cvt.s.d $f2, $f2 -/* C58B0 80130A20 E4800018 */ swc1 $f0, 0x18($a0) -/* C58B4 80130A24 0804C355 */ j .LJP_80130D54 -/* C58B8 80130A28 E482001C */ swc1 $f2, 0x1C($a0) -.LJP_80130A2C: -/* C58BC 80130A2C 10400052 */ beqz $v0, .LJP_80130B78 -/* C58C0 80130A30 30624000 */ andi $v0, $v1, 0x4000 -/* C58C4 80130A34 0C00A66F */ jal rand_int -/* C58C8 80130A38 24042710 */ addiu $a0, $zero, 0x2710 -/* C58CC 80130A3C 3C03288D */ lui $v1, (0x288DF0CB >> 16) -/* C58D0 80130A40 3463F0CB */ ori $v1, $v1, (0x288DF0CB & 0xFFFF) -/* C58D4 80130A44 00430018 */ mult $v0, $v1 -/* C58D8 80130A48 00021FC3 */ sra $v1, $v0, 31 -/* C58DC 80130A4C 3C014059 */ lui $at, (0x40590000 >> 16) -/* C58E0 80130A50 44811800 */ mtc1 $at, $f3 -/* C58E4 80130A54 44801000 */ mtc1 $zero, $f2 -/* C58E8 80130A58 3C013FE0 */ lui $at, (0x3FE00000 >> 16) -/* C58EC 80130A5C 44816800 */ mtc1 $at, $f13 -/* C58F0 80130A60 44806000 */ mtc1 $zero, $f12 -/* C58F4 80130A64 0000C010 */ mfhi $t8 -/* C58F8 80130A68 00182103 */ sra $a0, $t8, 4 -/* C58FC 80130A6C 00832023 */ subu $a0, $a0, $v1 -/* C5900 80130A70 00041840 */ sll $v1, $a0, 1 -/* C5904 80130A74 00641821 */ addu $v1, $v1, $a0 -/* C5908 80130A78 000318C0 */ sll $v1, $v1, 3 -/* C590C 80130A7C 00641821 */ addu $v1, $v1, $a0 -/* C5910 80130A80 00031880 */ sll $v1, $v1, 2 -/* C5914 80130A84 00641821 */ addu $v1, $v1, $a0 -/* C5918 80130A88 00431023 */ subu $v0, $v0, $v1 -/* C591C 80130A8C 44824000 */ mtc1 $v0, $f8 -/* C5920 80130A90 00000000 */ nop -/* C5924 80130A94 46804220 */ cvt.s.w $f8, $f8 -/* C5928 80130A98 46004021 */ cvt.d.s $f0, $f8 -/* C592C 80130A9C 46220003 */ div.d $f0, $f0, $f2 -/* C5930 80130AA0 46200220 */ cvt.s.d $f8, $f0 -/* C5934 80130AA4 46004021 */ cvt.d.s $f0, $f8 -/* C5938 80130AA8 462C0002 */ mul.d $f0, $f0, $f12 -/* C593C 80130AAC 00000000 */ nop -/* C5940 80130AB0 3C013FF0 */ lui $at, (0x3FF00000 >> 16) -/* C5944 80130AB4 44816800 */ mtc1 $at, $f13 -/* C5948 80130AB8 44806000 */ mtc1 $zero, $f12 -/* C594C 80130ABC 00000000 */ nop -/* C5950 80130AC0 462C0000 */ add.d $f0, $f0, $f12 -/* C5954 80130AC4 3C013FD0 */ lui $at, (0x3FD00000 >> 16) -/* C5958 80130AC8 44811800 */ mtc1 $at, $f3 -/* C595C 80130ACC 44801000 */ mtc1 $zero, $f2 -/* C5960 80130AD0 00000000 */ nop -/* C5964 80130AD4 46220001 */ sub.d $f0, $f0, $f2 -/* C5968 80130AD8 46200220 */ cvt.s.d $f8, $f0 -/* C596C 80130ADC 460040A1 */ cvt.d.s $f2, $f8 -/* C5970 80130AE0 4622603C */ c.lt.d $f12, $f2 -/* C5974 80130AE4 00000000 */ nop -/* C5978 80130AE8 4500006D */ bc1f .LJP_80130CA0 -/* C597C 80130AEC 00111400 */ sll $v0, $s1, 16 -/* C5980 80130AF0 3C014020 */ lui $at, (0x40200000 >> 16) -/* C5984 80130AF4 44812800 */ mtc1 $at, $f5 -/* C5988 80130AF8 44802000 */ mtc1 $zero, $f4 -/* C598C 80130AFC 00000000 */ nop -/* C5990 80130B00 46241102 */ mul.d $f4, $f2, $f4 -/* C5994 80130B04 00000000 */ nop -/* C5998 80130B08 3C038016 */ lui $v1, %hi(msg_drawState) -/* C599C 80130B0C 8C63ACF4 */ lw $v1, %lo(msg_drawState)($v1) -/* C59A0 80130B10 C4600010 */ lwc1 $f0, 0x10($v1) -/* C59A4 80130B14 46080002 */ mul.s $f0, $f0, $f8 -/* C59A8 80130B18 00000000 */ nop -/* C59AC 80130B1C C4660014 */ lwc1 $f6, 0x14($v1) -/* C59B0 80130B20 46083182 */ mul.s $f6, $f6, $f8 -/* C59B4 80130B24 00000000 */ nop -/* C59B8 80130B28 E4600018 */ swc1 $f0, 0x18($v1) -/* C59BC 80130B2C 3C014021 */ lui $at, (0x40210000 >> 16) -/* C59C0 80130B30 44810800 */ mtc1 $at, $f1 -/* C59C4 80130B34 44800000 */ mtc1 $zero, $f0 -/* C59C8 80130B38 00021403 */ sra $v0, $v0, 16 -/* C59CC 80130B3C 46202101 */ sub.d $f4, $f4, $f0 -/* C59D0 80130B40 44821000 */ mtc1 $v0, $f2 -/* C59D4 80130B44 00000000 */ nop -/* C59D8 80130B48 468010A1 */ cvt.d.w $f2, $f2 -/* C59DC 80130B4C 00131400 */ sll $v0, $s3, 16 -/* C59E0 80130B50 46241081 */ sub.d $f2, $f2, $f4 -/* C59E4 80130B54 00021403 */ sra $v0, $v0, 16 -/* C59E8 80130B58 44820000 */ mtc1 $v0, $f0 -/* C59EC 80130B5C 00000000 */ nop -/* C59F0 80130B60 46800021 */ cvt.d.w $f0, $f0 -/* C59F4 80130B64 46240001 */ sub.d $f0, $f0, $f4 -/* C59F8 80130B68 4620130D */ trunc.w.d $f12, $f2 -/* C59FC 80130B6C 44116000 */ mfc1 $s1, $f12 -/* C5A00 80130B70 0804C353 */ j .LJP_80130D4C -/* C5A04 80130B74 E466001C */ swc1 $f6, 0x1C($v1) -.LJP_80130B78: -/* C5A08 80130B78 10400076 */ beqz $v0, .LJP_80130D54 -/* C5A0C 80130B7C 3C0516C1 */ lui $a1, (0x16C16C17 >> 16) -/* C5A10 80130B80 34A56C17 */ ori $a1, $a1, (0x16C16C17 & 0xFFFF) -/* C5A14 80130B84 97C20412 */ lhu $v0, 0x412($fp) -/* C5A18 80130B88 8CC30030 */ lw $v1, 0x30($a2) -/* C5A1C 80130B8C 00022100 */ sll $a0, $v0, 4 -/* C5A20 80130B90 00822023 */ subu $a0, $a0, $v0 -/* C5A24 80130B94 00031100 */ sll $v0, $v1, 4 -/* C5A28 80130B98 00431023 */ subu $v0, $v0, $v1 -/* C5A2C 80130B9C 00822023 */ subu $a0, $a0, $v0 -/* C5A30 80130BA0 000410C2 */ srl $v0, $a0, 3 -/* C5A34 80130BA4 00450019 */ multu $v0, $a1 -/* C5A38 80130BA8 0000C010 */ mfhi $t8 -/* C5A3C 80130BAC 00181082 */ srl $v0, $t8, 2 -/* C5A40 80130BB0 00021840 */ sll $v1, $v0, 1 -/* C5A44 80130BB4 00621821 */ addu $v1, $v1, $v0 -/* C5A48 80130BB8 00031100 */ sll $v0, $v1, 4 -/* C5A4C 80130BBC 00431023 */ subu $v0, $v0, $v1 -/* C5A50 80130BC0 000210C0 */ sll $v0, $v0, 3 -/* C5A54 80130BC4 00821023 */ subu $v0, $a0, $v0 -/* C5A58 80130BC8 00022400 */ sll $a0, $v0, 16 -/* C5A5C 80130BCC 0C00A4E5 */ jal cosine -/* C5A60 80130BD0 00042403 */ sra $a0, $a0, 16 -/* C5A64 80130BD4 3C013FD0 */ lui $at, (0x3FD00000 >> 16) -/* C5A68 80130BD8 44811800 */ mtc1 $at, $f3 -/* C5A6C 80130BDC 44801000 */ mtc1 $zero, $f2 -/* C5A70 80130BE0 46000021 */ cvt.d.s $f0, $f0 -/* C5A74 80130BE4 46220002 */ mul.d $f0, $f0, $f2 -/* C5A78 80130BE8 00000000 */ nop -/* C5A7C 80130BEC 3C013FF0 */ lui $at, (0x3FF00000 >> 16) -/* C5A80 80130BF0 44816800 */ mtc1 $at, $f13 -/* C5A84 80130BF4 44806000 */ mtc1 $zero, $f12 -/* C5A88 80130BF8 00000000 */ nop -/* C5A8C 80130BFC 462C0000 */ add.d $f0, $f0, $f12 -/* C5A90 80130C00 46200220 */ cvt.s.d $f8, $f0 -/* C5A94 80130C04 460040A1 */ cvt.d.s $f2, $f8 -/* C5A98 80130C08 4622603C */ c.lt.d $f12, $f2 -/* C5A9C 80130C0C 00000000 */ nop -/* C5AA0 80130C10 45000023 */ bc1f .LJP_80130CA0 -/* C5AA4 80130C14 00111400 */ sll $v0, $s1, 16 -/* C5AA8 80130C18 3C014020 */ lui $at, (0x40200000 >> 16) -/* C5AAC 80130C1C 44812800 */ mtc1 $at, $f5 -/* C5AB0 80130C20 44802000 */ mtc1 $zero, $f4 -/* C5AB4 80130C24 00000000 */ nop -/* C5AB8 80130C28 46241102 */ mul.d $f4, $f2, $f4 -/* C5ABC 80130C2C 00000000 */ nop -/* C5AC0 80130C30 3C038016 */ lui $v1, %hi(msg_drawState) -/* C5AC4 80130C34 8C63ACF4 */ lw $v1, %lo(msg_drawState)($v1) -/* C5AC8 80130C38 C4600010 */ lwc1 $f0, 0x10($v1) -/* C5ACC 80130C3C 46080002 */ mul.s $f0, $f0, $f8 -/* C5AD0 80130C40 00000000 */ nop -/* C5AD4 80130C44 C4660014 */ lwc1 $f6, 0x14($v1) -/* C5AD8 80130C48 46083182 */ mul.s $f6, $f6, $f8 -/* C5ADC 80130C4C 00000000 */ nop -/* C5AE0 80130C50 E4600018 */ swc1 $f0, 0x18($v1) -/* C5AE4 80130C54 3C014021 */ lui $at, (0x40210000 >> 16) -/* C5AE8 80130C58 44810800 */ mtc1 $at, $f1 -/* C5AEC 80130C5C 44800000 */ mtc1 $zero, $f0 -/* C5AF0 80130C60 00021403 */ sra $v0, $v0, 16 -/* C5AF4 80130C64 46202101 */ sub.d $f4, $f4, $f0 -/* C5AF8 80130C68 44821000 */ mtc1 $v0, $f2 -/* C5AFC 80130C6C 00000000 */ nop -/* C5B00 80130C70 468010A1 */ cvt.d.w $f2, $f2 -/* C5B04 80130C74 00131400 */ sll $v0, $s3, 16 -/* C5B08 80130C78 46241081 */ sub.d $f2, $f2, $f4 -/* C5B0C 80130C7C 00021403 */ sra $v0, $v0, 16 -/* C5B10 80130C80 44820000 */ mtc1 $v0, $f0 -/* C5B14 80130C84 00000000 */ nop -/* C5B18 80130C88 46800021 */ cvt.d.w $f0, $f0 -/* C5B1C 80130C8C 46240001 */ sub.d $f0, $f0, $f4 -/* C5B20 80130C90 4620130D */ trunc.w.d $f12, $f2 -/* C5B24 80130C94 44116000 */ mfc1 $s1, $f12 -/* C5B28 80130C98 0804C353 */ j .LJP_80130D4C -/* C5B2C 80130C9C E466001C */ swc1 $f6, 0x1C($v1) -.LJP_80130CA0: -/* C5B30 80130CA0 462C103C */ c.lt.d $f2, $f12 -/* C5B34 80130CA4 00000000 */ nop -/* C5B38 80130CA8 4500002A */ bc1f .LJP_80130D54 -/* C5B3C 80130CAC 00111400 */ sll $v0, $s1, 16 -/* C5B40 80130CB0 3C014030 */ lui $at, (0x40300000 >> 16) -/* C5B44 80130CB4 44810800 */ mtc1 $at, $f1 -/* C5B48 80130CB8 44800000 */ mtc1 $zero, $f0 -/* C5B4C 80130CBC 00000000 */ nop -/* C5B50 80130CC0 46201002 */ mul.d $f0, $f2, $f0 -/* C5B54 80130CC4 00000000 */ nop -/* C5B58 80130CC8 3C013FE0 */ lui $at, (0x3FE00000 >> 16) -/* C5B5C 80130CCC 44816800 */ mtc1 $at, $f13 -/* C5B60 80130CD0 44806000 */ mtc1 $zero, $f12 -/* C5B64 80130CD4 00000000 */ nop -/* C5B68 80130CD8 462C0002 */ mul.d $f0, $f0, $f12 -/* C5B6C 80130CDC 00000000 */ nop -/* C5B70 80130CE0 3C038016 */ lui $v1, %hi(msg_drawState) -/* C5B74 80130CE4 8C63ACF4 */ lw $v1, %lo(msg_drawState)($v1) -/* C5B78 80130CE8 C4620010 */ lwc1 $f2, 0x10($v1) -/* C5B7C 80130CEC 46081082 */ mul.s $f2, $f2, $f8 -/* C5B80 80130CF0 00000000 */ nop -/* C5B84 80130CF4 C4660014 */ lwc1 $f6, 0x14($v1) -/* C5B88 80130CF8 46083182 */ mul.s $f6, $f6, $f8 -/* C5B8C 80130CFC 00000000 */ nop -/* C5B90 80130D00 E4620018 */ swc1 $f2, 0x18($v1) -/* C5B94 80130D04 3C014020 */ lui $at, (0x40200000 >> 16) -/* C5B98 80130D08 44811800 */ mtc1 $at, $f3 -/* C5B9C 80130D0C 44801000 */ mtc1 $zero, $f2 -/* C5BA0 80130D10 00021403 */ sra $v0, $v0, 16 -/* C5BA4 80130D14 46201081 */ sub.d $f2, $f2, $f0 -/* C5BA8 80130D18 44822000 */ mtc1 $v0, $f4 -/* C5BAC 80130D1C 00000000 */ nop -/* C5BB0 80130D20 46802121 */ cvt.d.w $f4, $f4 -/* C5BB4 80130D24 00131400 */ sll $v0, $s3, 16 -/* C5BB8 80130D28 46222100 */ add.d $f4, $f4, $f2 -/* C5BBC 80130D2C 00021403 */ sra $v0, $v0, 16 -/* C5BC0 80130D30 44820000 */ mtc1 $v0, $f0 -/* C5BC4 80130D34 00000000 */ nop -/* C5BC8 80130D38 46800021 */ cvt.d.w $f0, $f0 -/* C5BCC 80130D3C 46220000 */ add.d $f0, $f0, $f2 -/* C5BD0 80130D40 E466001C */ swc1 $f6, 0x1C($v1) -/* C5BD4 80130D44 4620230D */ trunc.w.d $f12, $f4 -/* C5BD8 80130D48 44116000 */ mfc1 $s1, $f12 -.LJP_80130D4C: -/* C5BDC 80130D4C 4620030D */ trunc.w.d $f12, $f0 -/* C5BE0 80130D50 44136000 */ mfc1 $s3, $f12 -.LJP_80130D54: -/* C5BE4 80130D54 93C204B8 */ lbu $v0, 0x4B8($fp) -/* C5BE8 80130D58 2442FFF5 */ addiu $v0, $v0, -0xB -/* C5BEC 80130D5C 2C420002 */ sltiu $v0, $v0, 0x2 -/* C5BF0 80130D60 10400020 */ beqz $v0, .LJP_80130DE4 -/* C5BF4 80130D64 00000000 */ nop -/* C5BF8 80130D68 93C204C8 */ lbu $v0, 0x4C8($fp) -/* C5BFC 80130D6C 2442FFFF */ addiu $v0, $v0, -0x1 -/* C5C00 80130D70 2C420004 */ sltiu $v0, $v0, 0x4 -/* C5C04 80130D74 1040001B */ beqz $v0, .LJP_80130DE4 -/* C5C08 80130D78 00000000 */ nop -/* C5C0C 80130D7C 97B900A6 */ lhu $t9, 0xA6($sp) -/* C5C10 80130D80 00191400 */ sll $v0, $t9, 16 -/* C5C14 80130D84 00021C03 */ sra $v1, $v0, 16 -/* C5C18 80130D88 2C620026 */ sltiu $v0, $v1, 0x26 -/* C5C1C 80130D8C 10400013 */ beqz $v0, .LJP_80130DDC -/* C5C20 80130D90 00031080 */ sll $v0, $v1, 2 -/* C5C24 80130D94 3C018015 */ lui $at, %hi(jtbl_JP_801559C0) -/* C5C28 80130D98 00220821 */ addu $at, $at, $v0 -/* C5C2C 80130D9C 8C2259C0 */ lw $v0, %lo(jtbl_JP_801559C0)($at) -/* C5C30 80130DA0 00400008 */ jr $v0 -/* C5C34 80130DA4 00000000 */ nop -.LJP_80130DA8: -/* C5C38 80130DA8 24180040 */ addiu $t8, $zero, 0x40 -/* C5C3C 80130DAC 0804C379 */ j .LJP_80130DE4 -/* C5C40 80130DB0 A7B800A6 */ sh $t8, 0xA6($sp) -.LJP_80130DB4: -/* C5C44 80130DB4 0804C378 */ j .LJP_80130DE0 -/* C5C48 80130DB8 24190041 */ addiu $t9, $zero, 0x41 -.LJP_80130DBC: -/* C5C4C 80130DBC 24180042 */ addiu $t8, $zero, 0x42 -/* C5C50 80130DC0 0804C379 */ j .LJP_80130DE4 -/* C5C54 80130DC4 A7B800A6 */ sh $t8, 0xA6($sp) -.LJP_80130DC8: -/* C5C58 80130DC8 0804C378 */ j .LJP_80130DE0 -/* C5C5C 80130DCC 24190043 */ addiu $t9, $zero, 0x43 -.LJP_80130DD0: -/* C5C60 80130DD0 24180044 */ addiu $t8, $zero, 0x44 -/* C5C64 80130DD4 0804C379 */ j .LJP_80130DE4 -/* C5C68 80130DD8 A7B800A6 */ sh $t8, 0xA6($sp) -.LJP_80130DDC: -/* C5C6C 80130DDC 24190040 */ addiu $t9, $zero, 0x40 -.LJP_80130DE0: -/* C5C70 80130DE0 A7B900A6 */ sh $t9, 0xA6($sp) -.LJP_80130DE4: -/* C5C74 80130DE4 97B800A6 */ lhu $t8, 0xA6($sp) -/* C5C78 80130DE8 97B9009E */ lhu $t9, 0x9E($sp) -/* C5C7C 80130DEC 00181C00 */ sll $v1, $t8, 16 -/* C5C80 80130DF0 00191400 */ sll $v0, $t9, 16 -/* C5C84 80130DF4 10620007 */ beq $v1, $v0, .LJP_80130E14 -/* C5C88 80130DF8 00033C03 */ sra $a3, $v1, 16 -/* C5C8C 80130DFC 3C038016 */ lui $v1, %hi(msg_drawState) -/* C5C90 80130E00 8C63ACF4 */ lw $v1, %lo(msg_drawState)($v1) -/* C5C94 80130E04 94620034 */ lhu $v0, 0x34($v1) -/* C5C98 80130E08 A7B8009E */ sh $t8, 0x9E($sp) -/* C5C9C 80130E0C 34420010 */ ori $v0, $v0, 0x10 -/* C5CA0 80130E10 A4620034 */ sh $v0, 0x34($v1) -.LJP_80130E14: -/* C5CA4 80130E14 3C058016 */ lui $a1, %hi(msg_drawState) -/* C5CA8 80130E18 8CA5ACF4 */ lw $a1, %lo(msg_drawState)($a1) -/* C5CAC 80130E1C 8CA20038 */ lw $v0, 0x38($a1) -/* C5CB0 80130E20 30428000 */ andi $v0, $v0, 0x8000 -/* C5CB4 80130E24 10400047 */ beqz $v0, .LJP_80130F44 -/* C5CB8 80130E28 00121400 */ sll $v0, $s2, 16 -/* C5CBC 80130E2C 00021403 */ sra $v0, $v0, 16 -/* C5CC0 80130E30 241900FF */ addiu $t9, $zero, 0xFF -/* C5CC4 80130E34 14590043 */ bne $v0, $t9, .LJP_80130F44 -/* C5CC8 80130E38 3C10E200 */ lui $s0, (0xE200001C >> 16) -/* C5CCC 80130E3C 3610001C */ ori $s0, $s0, (0xE200001C & 0xFFFF) -/* C5CD0 80130E40 3C060050 */ lui $a2, (0x504240 >> 16) -/* C5CD4 80130E44 34C64240 */ ori $a2, $a2, (0x504240 & 0xFFFF) -/* C5CD8 80130E48 3C09FCFF */ lui $t1, (0xFCFF97FF >> 16) -/* C5CDC 80130E4C 352997FF */ ori $t1, $t1, (0xFCFF97FF & 0xFFFF) -/* C5CE0 80130E50 3C08FF2D */ lui $t0, (0xFF2DFEFF >> 16) -/* C5CE4 80130E54 3508FEFF */ ori $t0, $t0, (0xFF2DFEFF & 0xFFFF) -/* C5CE8 80130E58 3C0A2828 */ lui $t2, (0x28282848 >> 16) -/* C5CEC 80130E5C 354A2848 */ ori $t2, $t2, (0x28282848 & 0xFFFF) -/* C5CF0 80130E60 8EE30000 */ lw $v1, 0x0($s7) -/* C5CF4 80130E64 03C0202D */ daddu $a0, $fp, $zero -/* C5CF8 80130E68 0060102D */ daddu $v0, $v1, $zero -/* C5CFC 80130E6C 24630008 */ addiu $v1, $v1, 0x8 -/* C5D00 80130E70 3C18E700 */ lui $t8, (0xE7000000 >> 16) -/* C5D04 80130E74 AEE30000 */ sw $v1, 0x0($s7) -/* C5D08 80130E78 AC580000 */ sw $t8, 0x0($v0) -/* C5D0C 80130E7C AC400004 */ sw $zero, 0x4($v0) -/* C5D10 80130E80 24620008 */ addiu $v0, $v1, 0x8 -/* C5D14 80130E84 AEE20000 */ sw $v0, 0x0($s7) -/* C5D18 80130E88 24620010 */ addiu $v0, $v1, 0x10 -/* C5D1C 80130E8C AC700000 */ sw $s0, 0x0($v1) -/* C5D20 80130E90 AC660004 */ sw $a2, 0x4($v1) -/* C5D24 80130E94 AEE20000 */ sw $v0, 0x0($s7) -/* C5D28 80130E98 3C02FA00 */ lui $v0, (0xFA000000 >> 16) -/* C5D2C 80130E9C AC690008 */ sw $t1, 0x8($v1) -/* C5D30 80130EA0 AC68000C */ sw $t0, 0xC($v1) -/* C5D34 80130EA4 AC620010 */ sw $v0, 0x10($v1) -/* C5D38 80130EA8 AC6A0014 */ sw $t2, 0x14($v1) -/* C5D3C 80130EAC 8CA6004C */ lw $a2, 0x4C($a1) -/* C5D40 80130EB0 8CA20020 */ lw $v0, 0x20($a1) -/* C5D44 80130EB4 24630018 */ addiu $v1, $v1, 0x18 -/* C5D48 80130EB8 AEE30000 */ sw $v1, 0x0($s7) -/* C5D4C 80130EBC 00C23021 */ addu $a2, $a2, $v0 -/* C5D50 80130EC0 00111400 */ sll $v0, $s1, 16 -/* C5D54 80130EC4 00021403 */ sra $v0, $v0, 16 -/* C5D58 80130EC8 90C60000 */ lbu $a2, 0x0($a2) -/* C5D5C 80130ECC 24420002 */ addiu $v0, $v0, 0x2 -/* C5D60 80130ED0 AFA20010 */ sw $v0, 0x10($sp) -/* C5D64 80130ED4 00131400 */ sll $v0, $s3, 16 -/* C5D68 80130ED8 00021403 */ sra $v0, $v0, 16 -/* C5D6C 80130EDC 24420002 */ addiu $v0, $v0, 0x2 -/* C5D70 80130EE0 0C04C527 */ jal msg_draw_char -/* C5D74 80130EE4 AFA20014 */ sw $v0, 0x14($sp) -/* C5D78 80130EE8 3C040F0A */ lui $a0, (0xF0A7008 >> 16) -/* C5D7C 80130EEC 34847008 */ ori $a0, $a0, (0xF0A7008 & 0xFFFF) -/* C5D80 80130EF0 3C06FCFF */ lui $a2, (0xFCFFFFFF >> 16) -/* C5D84 80130EF4 34C6FFFF */ ori $a2, $a2, (0xFCFFFFFF & 0xFFFF) -/* C5D88 80130EF8 3C05FFFC */ lui $a1, (0xFFFCF279 >> 16) -/* C5D8C 80130EFC 8EE30000 */ lw $v1, 0x0($s7) -/* C5D90 80130F00 34A5F279 */ ori $a1, $a1, (0xFFFCF279 & 0xFFFF) -/* C5D94 80130F04 0060102D */ daddu $v0, $v1, $zero -/* C5D98 80130F08 24630008 */ addiu $v1, $v1, 0x8 -/* C5D9C 80130F0C 3C19E700 */ lui $t9, (0xE7000000 >> 16) -/* C5DA0 80130F10 AEE30000 */ sw $v1, 0x0($s7) -/* C5DA4 80130F14 AC590000 */ sw $t9, 0x0($v0) -/* C5DA8 80130F18 AC400004 */ sw $zero, 0x4($v0) -/* C5DAC 80130F1C 24620008 */ addiu $v0, $v1, 0x8 -/* C5DB0 80130F20 AEE20000 */ sw $v0, 0x0($s7) -/* C5DB4 80130F24 24620010 */ addiu $v0, $v1, 0x10 -/* C5DB8 80130F28 AC700000 */ sw $s0, 0x0($v1) -/* C5DBC 80130F2C AC640004 */ sw $a0, 0x4($v1) -/* C5DC0 80130F30 AEE20000 */ sw $v0, 0x0($s7) -/* C5DC4 80130F34 AC660008 */ sw $a2, 0x8($v1) -/* C5DC8 80130F38 AC65000C */ sw $a1, 0xC($v1) -/* C5DCC 80130F3C 3C058016 */ lui $a1, %hi(msg_drawState) -/* C5DD0 80130F40 8CA5ACF4 */ lw $a1, %lo(msg_drawState)($a1) -.LJP_80130F44: -/* C5DD4 80130F44 8CA20038 */ lw $v0, 0x38($a1) -/* C5DD8 80130F48 30420020 */ andi $v0, $v0, 0x20 -/* C5DDC 80130F4C 10400036 */ beqz $v0, .LJP_80131028 -/* C5DE0 80130F50 0000902D */ daddu $s2, $zero, $zero -/* C5DE4 80130F54 0011B400 */ sll $s6, $s1, 16 -/* C5DE8 80130F58 0013AC00 */ sll $s5, $s3, 16 -/* C5DEC 80130F5C 93B400B8 */ lbu $s4, 0xB8($sp) -/* C5DF0 80130F60 3C135555 */ lui $s3, (0x55555556 >> 16) -/* C5DF4 80130F64 36735556 */ ori $s3, $s3, (0x55555556 & 0xFFFF) -/* C5DF8 80130F68 00168403 */ sra $s0, $s6, 16 -.LJP_80130F6C: -/* C5DFC 80130F6C 24180002 */ addiu $t8, $zero, 0x2 -/* C5E00 80130F70 1298000C */ beq $s4, $t8, .LJP_80130FA4 -/* C5E04 80130F74 00158C03 */ sra $s1, $s5, 16 -/* C5E08 80130F78 0C00A66F */ jal rand_int -/* C5E0C 80130F7C 24042710 */ addiu $a0, $zero, 0x2710 -/* C5E10 80130F80 00530018 */ mult $v0, $s3 -/* C5E14 80130F84 2605FFFF */ addiu $a1, $s0, -0x1 -/* C5E18 80130F88 000227C3 */ sra $a0, $v0, 31 -/* C5E1C 80130F8C 0000C010 */ mfhi $t8 -/* C5E20 80130F90 03042023 */ subu $a0, $t8, $a0 -/* C5E24 80130F94 00041840 */ sll $v1, $a0, 1 -/* C5E28 80130F98 00641821 */ addu $v1, $v1, $a0 -/* C5E2C 80130F9C 00431023 */ subu $v0, $v0, $v1 -/* C5E30 80130FA0 00A28021 */ addu $s0, $a1, $v0 -.LJP_80130FA4: -/* C5E34 80130FA4 24190001 */ addiu $t9, $zero, 0x1 -/* C5E38 80130FA8 1299000D */ beq $s4, $t9, .LJP_80130FE0 -/* C5E3C 80130FAC 03C0202D */ daddu $a0, $fp, $zero -/* C5E40 80130FB0 0C00A66F */ jal rand_int -/* C5E44 80130FB4 24042710 */ addiu $a0, $zero, 0x2710 -/* C5E48 80130FB8 00530018 */ mult $v0, $s3 -/* C5E4C 80130FBC 2625FFFF */ addiu $a1, $s1, -0x1 -/* C5E50 80130FC0 000227C3 */ sra $a0, $v0, 31 -/* C5E54 80130FC4 0000C010 */ mfhi $t8 -/* C5E58 80130FC8 03042023 */ subu $a0, $t8, $a0 -/* C5E5C 80130FCC 00041840 */ sll $v1, $a0, 1 -/* C5E60 80130FD0 00641821 */ addu $v1, $v1, $a0 -/* C5E64 80130FD4 00431023 */ subu $v0, $v0, $v1 -/* C5E68 80130FD8 00A28821 */ addu $s1, $a1, $v0 -/* C5E6C 80130FDC 03C0202D */ daddu $a0, $fp, $zero -.LJP_80130FE0: -/* C5E70 80130FE0 26520001 */ addiu $s2, $s2, 0x1 -/* C5E74 80130FE4 3C058016 */ lui $a1, %hi(msg_drawState) -/* C5E78 80130FE8 8CA5ACF4 */ lw $a1, %lo(msg_drawState)($a1) -/* C5E7C 80130FEC 97B900A6 */ lhu $t9, 0xA6($sp) -/* C5E80 80130FF0 8CA2004C */ lw $v0, 0x4C($a1) -/* C5E84 80130FF4 8CA30020 */ lw $v1, 0x20($a1) -/* C5E88 80130FF8 00193C00 */ sll $a3, $t9, 16 -/* C5E8C 80130FFC 00431021 */ addu $v0, $v0, $v1 -/* C5E90 80131000 90460000 */ lbu $a2, 0x0($v0) -/* C5E94 80131004 00073C03 */ sra $a3, $a3, 16 -/* C5E98 80131008 AFB00010 */ sw $s0, 0x10($sp) -/* C5E9C 8013100C 0C04C527 */ jal msg_draw_char -/* C5EA0 80131010 AFB10014 */ sw $s1, 0x14($sp) -/* C5EA4 80131014 2A420005 */ slti $v0, $s2, 0x5 -/* C5EA8 80131018 1440FFD4 */ bnez $v0, .LJP_80130F6C -/* C5EAC 8013101C 00168403 */ sra $s0, $s6, 16 -/* C5EB0 80131020 0804C419 */ j .LJP_80131064 -/* C5EB4 80131024 00000000 */ nop -.LJP_80131028: -/* C5EB8 80131028 03C0202D */ daddu $a0, $fp, $zero -/* C5EBC 8013102C 97B800A6 */ lhu $t8, 0xA6($sp) -/* C5EC0 80131030 8CA3004C */ lw $v1, 0x4C($a1) -/* C5EC4 80131034 8CA20020 */ lw $v0, 0x20($a1) -/* C5EC8 80131038 00183C00 */ sll $a3, $t8, 16 -/* C5ECC 8013103C 00073C03 */ sra $a3, $a3, 16 -/* C5ED0 80131040 00621821 */ addu $v1, $v1, $v0 -/* C5ED4 80131044 00111400 */ sll $v0, $s1, 16 -/* C5ED8 80131048 90660000 */ lbu $a2, 0x0($v1) -/* C5EDC 8013104C 00021403 */ sra $v0, $v0, 16 -/* C5EE0 80131050 AFA20010 */ sw $v0, 0x10($sp) -/* C5EE4 80131054 00131400 */ sll $v0, $s3, 16 -/* C5EE8 80131058 00021403 */ sra $v0, $v0, 16 -/* C5EEC 8013105C 0C04C527 */ jal msg_draw_char -/* C5EF0 80131060 AFA20014 */ sw $v0, 0x14($sp) -.LJP_80131064: -/* C5EF4 80131064 3C048016 */ lui $a0, %hi(msg_drawState) -/* C5EF8 80131068 8C84ACF4 */ lw $a0, %lo(msg_drawState)($a0) -/* C5EFC 8013106C 94830034 */ lhu $v1, 0x34($a0) -/* C5F00 80131070 30620002 */ andi $v0, $v1, 0x2 -/* C5F04 80131074 10400002 */ beqz $v0, .LJP_80131080 -/* C5F08 80131078 3062FFFD */ andi $v0, $v1, 0xFFFD -/* C5F0C 8013107C A4820034 */ sh $v0, 0x34($a0) -.LJP_80131080: -/* C5F10 80131080 3C038016 */ lui $v1, %hi(msg_drawState) -/* C5F14 80131084 8C63ACF4 */ lw $v1, %lo(msg_drawState)($v1) -/* C5F18 80131088 8C620030 */ lw $v0, 0x30($v1) -/* C5F1C 8013108C 8C64004C */ lw $a0, 0x4C($v1) -/* C5F20 80131090 8C650020 */ lw $a1, 0x20($v1) -/* C5F24 80131094 9466003E */ lhu $a2, 0x3E($v1) -/* C5F28 80131098 24420001 */ addiu $v0, $v0, 0x1 -/* C5F2C 8013109C 00852021 */ addu $a0, $a0, $a1 -/* C5F30 801310A0 AC620030 */ sw $v0, 0x30($v1) -/* C5F34 801310A4 90620040 */ lbu $v0, 0x40($v1) -/* C5F38 801310A8 90840000 */ lbu $a0, 0x0($a0) -/* C5F3C 801310AC 9465003C */ lhu $a1, 0x3C($v1) -/* C5F40 801310B0 AFA20010 */ sw $v0, 0x10($sp) -/* C5F44 801310B4 94620034 */ lhu $v0, 0x34($v1) -/* C5F48 801310B8 AFA20014 */ sw $v0, 0x14($sp) -/* C5F4C 801310BC 8C670010 */ lw $a3, 0x10($v1) -.LJP_801310C0: -/* C5F50 801310C0 0C04AC15 */ jal msg_get_draw_char_width -/* C5F54 801310C4 00000000 */ nop -/* C5F58 801310C8 3C058016 */ lui $a1, %hi(msg_drawState) -/* C5F5C 801310CC 8CA5ACF4 */ lw $a1, %lo(msg_drawState)($a1) -/* C5F60 801310D0 94A30042 */ lhu $v1, 0x42($a1) -/* C5F64 801310D4 8CA40020 */ lw $a0, 0x20($a1) -/* C5F68 801310D8 00621821 */ addu $v1, $v1, $v0 -/* C5F6C 801310DC 24840001 */ addiu $a0, $a0, 0x1 -/* C5F70 801310E0 A4A30042 */ sh $v1, 0x42($a1) -.LJP_801310E4: -/* C5F74 801310E4 ACA40020 */ sw $a0, 0x20($a1) -.LJP_801310E8: -/* C5F78 801310E8 97A20080 */ lhu $v0, 0x80($sp) -/* C5F7C 801310EC 1040F028 */ beqz $v0, .LJP_8012D190 -/* C5F80 801310F0 00000000 */ nop -/* C5F84 801310F4 97C204EC */ lhu $v0, 0x4EC($fp) -/* C5F88 801310F8 104000BA */ beqz $v0, .LJP_801313E4 -/* C5F8C 801310FC 0000302D */ daddu $a2, $zero, $zero -/* C5F90 80131100 93C204EB */ lbu $v0, 0x4EB($fp) -/* C5F94 80131104 93D004F1 */ lbu $s0, 0x4F1($fp) -/* C5F98 80131108 93C404F0 */ lbu $a0, 0x4F0($fp) -/* C5F9C 8013110C 00021880 */ sll $v1, $v0, 2 -/* C5FA0 80131110 00621821 */ addu $v1, $v1, $v0 -/* C5FA4 80131114 3C028015 */ lui $v0, %hi(gMsgVarImages) -/* C5FA8 80131118 8C426354 */ lw $v0, %lo(gMsgVarImages)($v0) -/* C5FAC 8013111C 00031880 */ sll $v1, $v1, 2 -/* C5FB0 80131120 04800078 */ bltz $a0, .LJP_80131304 -/* C5FB4 80131124 00438821 */ addu $s1, $v0, $v1 -/* C5FB8 80131128 28820002 */ slti $v0, $a0, 0x2 -/* C5FBC 8013112C 14400005 */ bnez $v0, .LJP_80131144 -/* C5FC0 80131130 24020002 */ addiu $v0, $zero, 0x2 -/* C5FC4 80131134 10820050 */ beq $a0, $v0, .LJP_80131278 -/* C5FC8 80131138 00101400 */ sll $v0, $s0, 16 -/* C5FCC 8013113C 0804C4C2 */ j .LJP_80131308 -/* C5FD0 80131140 00000000 */ nop -.LJP_80131144: -/* C5FD4 80131144 54800001 */ bnel $a0, $zero, .LJP_8013114C -/* C5FD8 80131148 24060001 */ addiu $a2, $zero, 0x1 -.LJP_8013114C: -/* C5FDC 8013114C 93C304F3 */ lbu $v1, 0x4F3($fp) -/* C5FE0 80131150 24050001 */ addiu $a1, $zero, 0x1 -/* C5FE4 80131154 1065001E */ beq $v1, $a1, .LJP_801311D0 -/* C5FE8 80131158 28620002 */ slti $v0, $v1, 0x2 -/* C5FEC 8013115C 10400005 */ beqz $v0, .LJP_80131174 -/* C5FF0 80131160 24020002 */ addiu $v0, $zero, 0x2 -/* C5FF4 80131164 10600007 */ beqz $v1, .LJP_80131184 -/* C5FF8 80131168 00101400 */ sll $v0, $s0, 16 -/* C5FFC 8013116C 0804C4C2 */ j .LJP_80131308 -/* C6000 80131170 00000000 */ nop -.LJP_80131174: -/* C6004 80131174 10620031 */ beq $v1, $v0, .LJP_8013123C -/* C6008 80131178 00101400 */ sll $v0, $s0, 16 -/* C600C 8013117C 0804C4C2 */ j .LJP_80131308 -/* C6010 80131180 00000000 */ nop -.LJP_80131184: -/* C6014 80131184 97C304F4 */ lhu $v1, 0x4F4($fp) -/* C6018 80131188 93C404F2 */ lbu $a0, 0x4F2($fp) -/* C601C 8013118C 24630001 */ addiu $v1, $v1, 0x1 -/* C6020 80131190 00031400 */ sll $v0, $v1, 16 -/* C6024 80131194 00021403 */ sra $v0, $v0, 16 -/* C6028 80131198 00440018 */ mult $v0, $a0 -/* C602C 8013119C A7C304F4 */ sh $v1, 0x4F4($fp) -/* C6030 801311A0 93C304F1 */ lbu $v1, 0x4F1($fp) -/* C6034 801311A4 00001012 */ mflo $v0 -/* C6038 801311A8 0040802D */ daddu $s0, $v0, $zero -/* C603C 801311AC 00021400 */ sll $v0, $v0, 16 -/* C6040 801311B0 00021403 */ sra $v0, $v0, 16 -/* C6044 801311B4 0043102A */ slt $v0, $v0, $v1 -/* C6048 801311B8 14400053 */ bnez $v0, .LJP_80131308 -/* C604C 801311BC 00101400 */ sll $v0, $s0, 16 -/* C6050 801311C0 93D004F1 */ lbu $s0, 0x4F1($fp) -/* C6054 801311C4 A7C004F4 */ sh $zero, 0x4F4($fp) -/* C6058 801311C8 0804C4C1 */ j .LJP_80131304 -/* C605C 801311CC A3C504F3 */ sb $a1, 0x4F3($fp) -.LJP_801311D0: -/* C6060 801311D0 97B800AE */ lhu $t8, 0xAE($sp) -/* C6064 801311D4 3C018015 */ lui $at, %hi(D_JP_80155A58) -/* C6068 801311D8 D4205A58 */ ldc1 $f0, %lo(D_JP_80155A58)($at) -/* C606C 801311DC 00181400 */ sll $v0, $t8, 16 -/* C6070 801311E0 00021403 */ sra $v0, $v0, 16 -/* C6074 801311E4 44821000 */ mtc1 $v0, $f2 -/* C6078 801311E8 00000000 */ nop -/* C607C 801311EC 468010A0 */ cvt.s.w $f2, $f2 -/* C6080 801311F0 460010A1 */ cvt.d.s $f2, $f2 -/* C6084 801311F4 93C204F1 */ lbu $v0, 0x4F1($fp) -/* C6088 801311F8 46201083 */ div.d $f2, $f2, $f0 -/* C608C 801311FC 44820000 */ mtc1 $v0, $f0 -/* C6090 80131200 00000000 */ nop -/* C6094 80131204 46800020 */ cvt.s.w $f0, $f0 -/* C6098 80131208 46000021 */ cvt.d.s $f0, $f0 -/* C609C 8013120C 46201002 */ mul.d $f0, $f2, $f0 -/* C60A0 80131210 00000000 */ nop -/* C60A4 80131214 3C0141E0 */ lui $at, (0x41E00000 >> 16) -/* C60A8 80131218 44811800 */ mtc1 $at, $f3 -/* C60AC 8013121C 44801000 */ mtc1 $zero, $f2 -/* C60B0 80131220 00000000 */ nop -/* C60B4 80131224 4620103E */ c.le.d $f2, $f0 -/* C60B8 80131228 00000000 */ nop -/* C60BC 8013122C 4500002B */ bc1f .LJP_801312DC -/* C60C0 80131230 00000000 */ nop -/* C60C4 80131234 0804C4BB */ j .LJP_801312EC -/* C60C8 80131238 46220001 */ sub.d $f0, $f0, $f2 -.LJP_8013123C: -/* C60CC 8013123C 97C304F4 */ lhu $v1, 0x4F4($fp) -/* C60D0 80131240 93C404F2 */ lbu $a0, 0x4F2($fp) -/* C60D4 80131244 24630001 */ addiu $v1, $v1, 0x1 -/* C60D8 80131248 00031400 */ sll $v0, $v1, 16 -/* C60DC 8013124C 00021403 */ sra $v0, $v0, 16 -/* C60E0 80131250 00820018 */ mult $a0, $v0 -/* C60E4 80131254 93C204F1 */ lbu $v0, 0x4F1($fp) -/* C60E8 80131258 0000C012 */ mflo $t8 -/* C60EC 8013125C 00581023 */ subu $v0, $v0, $t8 -/* C60F0 80131260 0040802D */ daddu $s0, $v0, $zero -/* C60F4 80131264 00021400 */ sll $v0, $v0, 16 -/* C60F8 80131268 1C400029 */ bgtz $v0, .LJP_80131310 -/* C60FC 8013126C A7C304F4 */ sh $v1, 0x4F4($fp) -/* C6100 80131270 0804C4C1 */ j .LJP_80131304 -/* C6104 80131274 A7C004EC */ sh $zero, 0x4EC($fp) -.LJP_80131278: -/* C6108 80131278 97B900AE */ lhu $t9, 0xAE($sp) -/* C610C 8013127C 3C018015 */ lui $at, %hi(D_JP_80155A60) -/* C6110 80131280 D4205A60 */ ldc1 $f0, %lo(D_JP_80155A60)($at) -/* C6114 80131284 00191400 */ sll $v0, $t9, 16 -/* C6118 80131288 00021403 */ sra $v0, $v0, 16 -/* C611C 8013128C 44821000 */ mtc1 $v0, $f2 -/* C6120 80131290 00000000 */ nop -/* C6124 80131294 468010A0 */ cvt.s.w $f2, $f2 -/* C6128 80131298 460010A1 */ cvt.d.s $f2, $f2 -/* C612C 8013129C 93C204F1 */ lbu $v0, 0x4F1($fp) -/* C6130 801312A0 46201083 */ div.d $f2, $f2, $f0 -/* C6134 801312A4 44820000 */ mtc1 $v0, $f0 -/* C6138 801312A8 00000000 */ nop -/* C613C 801312AC 46800020 */ cvt.s.w $f0, $f0 -/* C6140 801312B0 46000021 */ cvt.d.s $f0, $f0 -/* C6144 801312B4 46201002 */ mul.d $f0, $f2, $f0 -/* C6148 801312B8 00000000 */ nop -/* C614C 801312BC 3C0141E0 */ lui $at, (0x41E00000 >> 16) -/* C6150 801312C0 44811800 */ mtc1 $at, $f3 -/* C6154 801312C4 44801000 */ mtc1 $zero, $f2 -/* C6158 801312C8 00000000 */ nop -/* C615C 801312CC 4620103E */ c.le.d $f2, $f0 -/* C6160 801312D0 00000000 */ nop -/* C6164 801312D4 45030005 */ bc1tl .LJP_801312EC -/* C6168 801312D8 46220001 */ sub.d $f0, $f0, $f2 -.LJP_801312DC: -/* C616C 801312DC 4620030D */ trunc.w.d $f12, $f0 -/* C6170 801312E0 44036000 */ mfc1 $v1, $f12 -/* C6174 801312E4 0804C4C1 */ j .LJP_80131304 -/* C6178 801312E8 307000FF */ andi $s0, $v1, 0xFF -.LJP_801312EC: -/* C617C 801312EC 3C028000 */ lui $v0, (0x80000000 >> 16) -/* C6180 801312F0 4620030D */ trunc.w.d $f12, $f0 -/* C6184 801312F4 44036000 */ mfc1 $v1, $f12 -/* C6188 801312F8 00000000 */ nop -/* C618C 801312FC 00621825 */ or $v1, $v1, $v0 -/* C6190 80131300 307000FF */ andi $s0, $v1, 0xFF -.LJP_80131304: -/* C6194 80131304 00101400 */ sll $v0, $s0, 16 -.LJP_80131308: -/* C6198 80131308 18400036 */ blez $v0, .LJP_801313E4 -/* C619C 8013130C 00000000 */ nop -.LJP_80131310: -/* C61A0 80131310 00C0102D */ daddu $v0, $a2, $zero -/* C61A4 80131314 1040001E */ beqz $v0, .LJP_80131390 -/* C61A8 80131318 0000202D */ daddu $a0, $zero, $zero -/* C61AC 8013131C 97C604EC */ lhu $a2, 0x4EC($fp) -/* C61B0 80131320 97C704EE */ lhu $a3, 0x4EE($fp) -/* C61B4 80131324 2405000F */ addiu $a1, $zero, 0xF -/* C61B8 80131328 AFA00010 */ sw $zero, 0x10($sp) -/* C61BC 8013132C 96220008 */ lhu $v0, 0x8($s1) -/* C61C0 80131330 24C6FFF9 */ addiu $a2, $a2, -0x7 -/* C61C4 80131334 24E7FFF9 */ addiu $a3, $a3, -0x7 -/* C61C8 80131338 00451021 */ addu $v0, $v0, $a1 -/* C61CC 8013133C AFA20014 */ sw $v0, 0x14($sp) -/* C61D0 80131340 9623000A */ lhu $v1, 0xA($s1) -/* C61D4 80131344 320200FF */ andi $v0, $s0, 0xFF -/* C61D8 80131348 AFA2001C */ sw $v0, 0x1C($sp) -/* C61DC 8013134C 24020140 */ addiu $v0, $zero, 0x140 -/* C61E0 80131350 AFA20044 */ sw $v0, 0x44($sp) -/* C61E4 80131354 240200F0 */ addiu $v0, $zero, 0xF0 -/* C61E8 80131358 AFA00020 */ sw $zero, 0x20($sp) -/* C61EC 8013135C AFA00024 */ sw $zero, 0x24($sp) -/* C61F0 80131360 AFA00028 */ sw $zero, 0x28($sp) -/* C61F4 80131364 AFA0002C */ sw $zero, 0x2C($sp) -/* C61F8 80131368 AFA00030 */ sw $zero, 0x30($sp) -/* C61FC 8013136C AFA00034 */ sw $zero, 0x34($sp) -/* C6200 80131370 AFA00038 */ sw $zero, 0x38($sp) -/* C6204 80131374 AFA0003C */ sw $zero, 0x3C($sp) -/* C6208 80131378 AFA00040 */ sw $zero, 0x40($sp) -/* C620C 8013137C AFA20048 */ sw $v0, 0x48($sp) -/* C6210 80131380 AFA0004C */ sw $zero, 0x4C($sp) -/* C6214 80131384 2463000E */ addiu $v1, $v1, 0xE -/* C6218 80131388 0C03D51C */ jal draw_box -/* C621C 8013138C AFA30018 */ sw $v1, 0x18($sp) -.LJP_80131390: -/* C6220 80131390 8E220010 */ lw $v0, 0x10($s1) -/* C6224 80131394 96250008 */ lhu $a1, 0x8($s1) -/* C6228 80131398 9626000A */ lhu $a2, 0xA($s1) -/* C622C 8013139C AFA20010 */ sw $v0, 0x10($sp) -/* C6230 801313A0 8E220004 */ lw $v0, 0x4($s1) -/* C6234 801313A4 AFA20014 */ sw $v0, 0x14($sp) -/* C6238 801313A8 87C204EC */ lh $v0, 0x4EC($fp) -/* C623C 801313AC AFA20018 */ sw $v0, 0x18($sp) -/* C6240 801313B0 87C304EE */ lh $v1, 0x4EE($fp) -/* C6244 801313B4 2402013F */ addiu $v0, $zero, 0x13F -/* C6248 801313B8 AFA20028 */ sw $v0, 0x28($sp) -/* C624C 801313BC 240200EF */ addiu $v0, $zero, 0xEF -/* C6250 801313C0 AFA2002C */ sw $v0, 0x2C($sp) -/* C6254 801313C4 320200FF */ andi $v0, $s0, 0xFF -/* C6258 801313C8 AFA00020 */ sw $zero, 0x20($sp) -/* C625C 801313CC AFA00024 */ sw $zero, 0x24($sp) -/* C6260 801313D0 AFA20030 */ sw $v0, 0x30($sp) -/* C6264 801313D4 AFA3001C */ sw $v1, 0x1C($sp) -/* C6268 801313D8 8E240000 */ lw $a0, 0x0($s1) -/* C626C 801313DC 0C04CEC8 */ jal draw_ci_image_with_clipping -/* C6270 801313E0 8E27000C */ lw $a3, 0xC($s1) -.LJP_801313E4: -/* C6274 801313E4 3C02800A */ lui $v0, %hi(gMainGfxPos) -/* C6278 801313E8 2442A64C */ addiu $v0, $v0, %lo(gMainGfxPos) -/* C627C 801313EC 8C430000 */ lw $v1, 0x0($v0) -/* C6280 801313F0 0060202D */ daddu $a0, $v1, $zero -/* C6284 801313F4 24630008 */ addiu $v1, $v1, 0x8 -/* C6288 801313F8 AC430000 */ sw $v1, 0x0($v0) -/* C628C 801313FC 3C02E700 */ lui $v0, (0xE7000000 >> 16) -/* C6290 80131400 AC820000 */ sw $v0, 0x0($a0) -/* C6294 80131404 AC800004 */ sw $zero, 0x4($a0) -/* C6298 80131408 8FBF010C */ lw $ra, 0x10C($sp) -/* C629C 8013140C 8FBE0108 */ lw $fp, 0x108($sp) -/* C62A0 80131410 8FB70104 */ lw $s7, 0x104($sp) -/* C62A4 80131414 8FB60100 */ lw $s6, 0x100($sp) -/* C62A8 80131418 8FB500FC */ lw $s5, 0xFC($sp) -/* C62AC 8013141C 8FB400F8 */ lw $s4, 0xF8($sp) -/* C62B0 80131420 8FB300F4 */ lw $s3, 0xF4($sp) -/* C62B4 80131424 8FB200F0 */ lw $s2, 0xF0($sp) -/* C62B8 80131428 8FB100EC */ lw $s1, 0xEC($sp) -/* C62BC 8013142C 8FB000E8 */ lw $s0, 0xE8($sp) -/* C62C0 80131430 D7BE0138 */ ldc1 $f30, 0x138($sp) -/* C62C4 80131434 D7BC0130 */ ldc1 $f28, 0x130($sp) -/* C62C8 80131438 D7BA0128 */ ldc1 $f26, 0x128($sp) -/* C62CC 8013143C D7B80120 */ ldc1 $f24, 0x120($sp) -/* C62D0 80131440 D7B60118 */ ldc1 $f22, 0x118($sp) -/* C62D4 80131444 D7B40110 */ ldc1 $f20, 0x110($sp) -/* C62D8 80131448 3C018015 */ lui $at, %hi(D_80151338) -/* C62DC 8013144C AC236398 */ sw $v1, %lo(D_80151338)($at) -/* C62E0 80131450 03E00008 */ jr $ra -/* C62E4 80131454 27BD0140 */ addiu $sp, $sp, 0x140 -.size appendGfx_message, . - appendGfx_message From 6dd572885c4887258d6252a72d1a2dc413029954 Mon Sep 17 00:00:00 2001 From: AltoXorg <56553686+Alto1772@users.noreply.github.com> Date: Mon, 15 Jan 2024 21:20:02 +0800 Subject: [PATCH 16/18] cleanup --- src/item_entity.c | 6 +----- ver/jp/undefined_syms.txt | 21 --------------------- 2 files changed, 1 insertion(+), 26 deletions(-) diff --git a/src/item_entity.c b/src/item_entity.c index 83c8cb98e76..56d5a620f87 100644 --- a/src/item_entity.c +++ b/src/item_entity.c @@ -49,10 +49,6 @@ SHIFT_BSS EffectInstance* ItemPickupGotOutline; SHIFT_BSS MessagePrintState* GotItemTutorialPrinter; SHIFT_BSS b32 GotItemTutorialClosed; -#if VERSION_JP -extern s32 D_8015B864; -#endif - void item_entity_update(ItemEntity*); void appendGfx_item_entity(void*); void draw_item_entities(void); @@ -2599,7 +2595,7 @@ void func_801363A0(ItemEntity* item) { case ITEM_PICKUP_STATE_AWAIT_THROW_AWAY: set_message_text_var(itemData->nameMsg, 0); #if VERSION_JP - width = get_msg_width(gItemTable[D_8015B864].nameMsg, 0) + 104; + width = get_msg_width(gItemTable[ThrowAwayItemID].nameMsg, 0) + 104; #else width = get_msg_width(MSG_Menus_005F, 0) + 54; #endif diff --git a/ver/jp/undefined_syms.txt b/ver/jp/undefined_syms.txt index b9195e2064b..13aab97e48d 100644 --- a/ver/jp/undefined_syms.txt +++ b/ver/jp/undefined_syms.txt @@ -1120,27 +1120,6 @@ Entity_WoodenCrate_FragmentsRender = 0x0A004350; entity_model_ShatteringHammer2Block_ROM_START = 0x00E3E4F0; entity_model_SaveBlock_ROM_START = 0x00E54160; -D_802E7790 = 0x802E7790; -D_802E7E50 = 0x802E7E50; -D_802E7990 = 0x802E7990; -D_802E7D10 = 0x802E7D10; -D_802E7910 = 0x802E7910; -D_802E7E30 = 0x802E7E30; -D_8015B864 = 0x8015B864; -D_13B98 = 0x00013B98; -D_802E673C = 0x802E673C; -D_802E7E10 = 0x802E7E10; -D_802E7810 = 0x802E7810; -D_802E7BD0 = 0x802E7BD0; -D_802E7A90 = 0x802E7A90; -D_15A60 = 0x00015A60; -D_802E670C = 0x802E670C; -D_802E676C = 0x802E676C; -D_8015ACA0 = 0x8015ACA0; -D_802E66F4 = 0x802E66F4; -D_802E7890 = 0x802E7890; -D_802E7710 = 0x802E7710; -D_1D4720 = 0x1D4720; entity_default_ROM_START = 0x00E343B0; BattleEntityHeapBottom = 0x801A7000; entity_jan_iwa_ROM_START = 0x00E365B0; From fb5328d16ac23f044358d699ece4f9ae0787bef8 Mon Sep 17 00:00:00 2001 From: AltoXorg <56553686+Alto1772@users.noreply.github.com> Date: Mon, 15 Jan 2024 22:59:09 +0800 Subject: [PATCH 17/18] building fixed --- ver/jp/splat.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/ver/jp/splat.yaml b/ver/jp/splat.yaml index eb7bd17c333..44827476f07 100644 --- a/ver/jp/splat.yaml +++ b/ver/jp/splat.yaml @@ -1130,6 +1130,7 @@ segments: - [0x1381B0, ci8, letter_content_12, 70, 95] - [0x139BB0, linker_offset, letter_content_12_pal] - [0x139BB0, palette, letter_content_12] + - [0x139DB0] - [0x139DB0, bin] - name: battle_code From e19e274f14fea897295841def6edea61a33b29fa Mon Sep 17 00:00:00 2001 From: Ethan Date: Tue, 16 Jan 2024 08:39:20 +0900 Subject: [PATCH 18/18] Change exceptasm symbols to not be global --- ver/ique/asm/os/exceptasm.s | 8 ++++---- ver/jp/asm/os/exceptasm.s | 8 ++++---- ver/us/asm/os/exceptasm.s | 8 ++++---- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/ver/ique/asm/os/exceptasm.s b/ver/ique/asm/os/exceptasm.s index 92c06a6b85a..2eec30a6dbf 100644 --- a/ver/ique/asm/os/exceptasm.s +++ b/ver/ique/asm/os/exceptasm.s @@ -7,7 +7,7 @@ .section .rodata -glabel __osIntOffTable +__osIntOffTable: /* 73CB0 800988B0 */ .byte 0x00 /* 73CB1 800988B1 */ .byte 0x14 /* 73CB2 800988B2 */ .byte 0x18 @@ -42,7 +42,7 @@ glabel __osIntOffTable /* 73CCF 800988CF */ .byte 0x10 .size __osIntOffTable, . - __osIntOffTable -glabel __osIntTable +__osIntTable: /* 73CD0 800988D0 80066894 */ .word .LIQUE_80066894 /* 73CD4 800988D4 80066858 */ .word .LIQUE_80066858 /* 73CD8 800988D8 80066834 */ .word .LIQUE_80066834 @@ -59,7 +59,7 @@ glabel __osIntTable .section .data -glabel __osHwIntTable +__osHwIntTable: /* 6F8F0 800944F0 */ .word 0x00000000 /* 6F8F4 800944F4 */ .word 0x00000000 /* 6F8F8 800944F8 */ .word 0x00000000 @@ -72,7 +72,7 @@ glabel __osHwIntTable /* 6F914 80094514 */ .word 0x00000000 .size __osHwIntTable, . - __osHwIntTable -glabel __osPiIntTable +__osPiIntTable: /* 6F918 80094518 */ .word 0x00000000 /* 6F91C 8009451C */ .word 0x00000000 .size __osPiIntTable, . - __osPiIntTable diff --git a/ver/jp/asm/os/exceptasm.s b/ver/jp/asm/os/exceptasm.s index 41fadbb5728..9db4092f030 100644 --- a/ver/jp/asm/os/exceptasm.s +++ b/ver/jp/asm/os/exceptasm.s @@ -7,7 +7,7 @@ .section .rodata -glabel __osIntOffTable +__osIntOffTable: /* 75160 80099D60 */ .byte 0x00 /* 75161 80099D61 */ .byte 0x14 /* 75162 80099D62 */ .byte 0x18 @@ -42,7 +42,7 @@ glabel __osIntOffTable /* 7517F 80099D7F */ .byte 0x10 .align 3 -glabel __osIntTable +__osIntTable: /* 75180 80099D80 8006AEE0 */ .word .LJP_8006AEE0 /* 75184 80099D84 8006AEA4 */ .word .LJP_8006AEA4 /* 75188 80099D88 8006AE80 */ .word .LJP_8006AE80 @@ -59,7 +59,7 @@ glabel __osIntTable .section .data -glabel __osHwIntTable +__osHwIntTable: .word 0x00000000 .word 0x00000000 .word 0x00000000 @@ -72,7 +72,7 @@ glabel __osHwIntTable .word 0x00000000 .size __osHwIntTable, . - __osHwIntTable -glabel __osPiIntTable +__osPiIntTable: .word 0x00000000 .word 0x00000000 .size __osPiIntTable, . - __osPiIntTable diff --git a/ver/us/asm/os/exceptasm.s b/ver/us/asm/os/exceptasm.s index beae7ec8f96..2ebe0216ffc 100644 --- a/ver/us/asm/os/exceptasm.s +++ b/ver/us/asm/os/exceptasm.s @@ -7,7 +7,7 @@ .section .rodata -glabel __osIntOffTable +__osIntOffTable: .byte 0x00 .byte 0x14 .byte 0x18 @@ -42,7 +42,7 @@ glabel __osIntOffTable .byte 0x10 .size __osIntOffTable, . - __osIntOffTable -glabel __osIntTable +__osIntTable: .word .L8006AF00_46300 .word .L8006AEC4_462C4 .word .L8006AEA0_462A0 @@ -59,7 +59,7 @@ glabel __osIntTable .section .data -glabel __osHwIntTable +__osHwIntTable: .word 0x00000000 .word 0x00000000 .word 0x00000000 @@ -72,7 +72,7 @@ glabel __osHwIntTable .word 0x00000000 .size __osHwIntTable, . - __osHwIntTable -glabel __osPiIntTable +__osPiIntTable: .word 0x00000000 .word 0x00000000 .size __osPiIntTable, . - __osPiIntTable