OVL_36:021B8DB8 ; =============== S U B R O U T I N E ======================================= OVL_36:021B8DB8 OVL_36:021B8DB8 OVL_36:021B8DB8 changeScreenOnEnterBuilding ; DATA XREF: sub_21B8A14+2o OVL_36:021B8DB8 ; OVL_36:off_21B8A40o OVL_36:021B8DB8 OVL_36:021B8DB8 gfx = -0x20 OVL_36:021B8DB8 OVL_36:021B8DB8 38 B5 PUSH {R3-R5,LR} OVL_36:021B8DBA 84 B0 SUB SP, SP, #0x10 OVL_36:021B8DBC 08 68 LDR R0, [R1] OVL_36:021B8DBE 14 1C MOVS R4, R2 OVL_36:021B8DC0 00 28 CMP R0, #0 OVL_36:021B8DC2 36 D1 BNE loc_21B8E32 OVL_36:021B8DC4 10 23 MOVS R3, #0x10 OVL_36:021B8DC6 E0 68 LDR R0, [R4,#0xC] OVL_36:021B8DC8 00 21 MOVS R1, #0 OVL_36:021B8DCA 10 22 MOVS R2, #0x10 OVL_36:021B8DCC 11 3B SUBS R3, #0x11 OVL_36:021B8DCE 95 F6 5D F9 BL sub_204E08C OVL_36:021B8DD2 60 68 LDR R0, [R4,#4] OVL_36:021B8DD4 C8 F7 C0 FA BL sub_2181358 OVL_36:021B8DD8 0F F0 2C FC BL sub_21C8634 OVL_36:021B8DDC 08 20 MOVS R0, #8 ; lcdc OVL_36:021B8DDE BD F6 87 FE BL GX_SetBankForLCDC OVL_36:021B8DE2 15 48 LDR R0, =0x80330010 ; capture_enable | blending_factor_8 | vram D | 256x192_capture OVL_36:021B8DE4 15 4C LDR R4, =0x4000064 OVL_36:021B8DE6 20 60 STR R0, [R4] OVL_36:021B8DE8 C3 F6 14 FA BL OS_WaitVBlankIntr OVL_36:021B8DEC C3 F6 12 FA BL OS_WaitVBlankIntr OVL_36:021B8DF0 13 4D LDR R5, =building_gfx_modes OVL_36:021B8DF2 00 AB ADD R3, SP, #0x20+gfx OVL_36:021B8DF4 1A 1C MOVS R2, R3 OVL_36:021B8DF6 03 CD LDMIA R5!, {R0,R1} OVL_36:021B8DF8 03 C3 STMIA R3!, {R0,R1} OVL_36:021B8DFA 03 CD LDMIA R5!, {R0,R1} OVL_36:021B8DFC 03 C3 STMIA R3!, {R0,R1} OVL_36:021B8DFE 10 1C MOVS R0, R2 ; gfx OVL_36:021B8E00 8B F6 9C FC BL adjustGfxModeOnScreenChange OVL_36:021B8E04 58 3C SUBS R4, #0x58 ; 'X' OVL_36:021B8E06 21 88 LDRH R1, [R4] OVL_36:021B8E08 43 20 MOVS R0, #0x43 ; 'C' OVL_36:021B8E0A 01 40 ANDS R1, R0 OVL_36:021B8E0C 0D 48 LDR R0, =0x4084 OVL_36:021B8E0E 08 43 ORRS R0, R1 OVL_36:021B8E10 20 80 STRH R0, [R4] OVL_36:021B8E12 08 20 MOVS R0, #8 ; bg OVL_36:021B8E14 BD F6 B2 FB BL GX_SetBankForBG ; GX_VRAM_BG_128_B/128 kilobytes are reserved in BG. VRAM-B is allocated. OVL_36:021B8E18 02 20 MOVS R0, #2 ; bg_num OVL_36:021B8E1A 00 21 MOVS R1, #0 ; priority OVL_36:021B8E1C 8B F6 F2 FE BL setBGPriority OVL_36:021B8E20 02 20 MOVS R0, #2 ; bg OVL_36:021B8E22 01 21 MOVS R1, #1 ; bg0 OVL_36:021B8E24 8B F6 4E FF BL modifyScreenDisplay OVL_36:021B8E28 A8 F7 3E F8 BL sub_2160EA8 OVL_36:021B8E2C 04 B0 ADD SP, SP, #0x10 OVL_36:021B8E2E 01 20 MOVS R0, #1 OVL_36:021B8E30 38 BD POP {R3-R5,PC} OVL_36:021B8E32 ; --------------------------------------------------------------------------- OVL_36:021B8E32 OVL_36:021B8E32 loc_21B8E32 ; CODE XREF: changeScreenOnEnterBuilding+Aj OVL_36:021B8E32 00 20 MOVS R0, #0 OVL_36:021B8E34 04 B0 ADD SP, SP, #0x10 OVL_36:021B8E36 38 BD POP {R3-R5,PC} OVL_36:021B8E36 ; End of function changeScreenOnEnterBuilding OVL_36:021B8E36 OVL_36:021B8E36 ; --------------------------------------------------------------------------- OVL_36:021B8E38 10 00 33 80 dword_21B8E38 DCD 0x80330010 ; DATA XREF: changeScreenOnEnterBuilding+2Ar OVL_36:021B8E3C 64 00 00 04 dword_21B8E3C DCD 0x4000064 ; DATA XREF: changeScreenOnEnterBuilding+2Cr OVL_36:021B8E40 58 16 1D 02 off_21B8E40 DCD building_gfx_modes ; DATA XREF: changeScreenOnEnterBuilding+38r OVL_36:021B8E44 84 40 00 00 dword_21B8E44 DCD 0x4084 ; DATA XREF: changeScreenOnEnterBuilding+54r