diff --git a/asm/overlay005/ov5_021DDBE8.inc b/asm/overlay005/ov5_021DDBE8.inc deleted file mode 100644 index 466cdf424a..0000000000 --- a/asm/overlay005/ov5_021DDBE8.inc +++ /dev/null @@ -1,124 +0,0 @@ -.public sub_0200393C -.public sub_0200679C -.public sub_020067D0 -.public sub_02006C24 -.public sub_02006CA8 -.public sub_02006F88 -.public sub_020070E8 -.public sub_02007130 -.public sub_020071D0 -.public sub_0200723C -.public sub_020093B4 -.public sub_020095C4 -.public sub_02009714 -.public sub_02009754 -.public sub_02009AA8 -.public sub_02009B04 -.public sub_02009BC4 -.public sub_02009D4C -.public sub_02009D68 -.public sub_0200A3DC -.public sub_0200A4E4 -.public sub_0200A640 -.public sub_0200A6DC -.public sub_0200D9E8 -.public sub_0200DA3C -.public sub_0200DA58 -.public sub_02014000 -.public sub_02014014 -.public sub_0201411C -.public sub_020141E4 -.public sub_020144CC -.public sub_0201469C -.public sub_020146C0 -.public sub_020146E4 -.public sub_02014710 -.public sub_02014784 -.public sub_02014788 -.public sub_02018144 -.public sub_020181C4 -.public sub_02018238 -.public sub_02018368 -.public sub_020183C4 -.public sub_02019044 -.public sub_02019060 -.public sub_02019690 -.public sub_020198C0 -.public sub_02019E2C -.public sub_02019EBC -.public sub_0201AE78 -.public sub_0201C3C0 -.public sub_0201CED0 -.public sub_0201FE94 -.public sub_0201FF0C -.public sub_020206BC -.public sub_02021964 -.public sub_02021B90 -.public sub_02021F9C -.public GF_AssertFail -.public sub_02054A40 -.public sub_02074470 -.public sub_02076AAC -.public NNS_G2dGetImagePaletteLocation -.public NNS_G3dGlbSetBaseTrans -.public NNS_G3dGlbSetBaseScale -.public MTX_Identity22_ -.public MTX_Identity33_ -.public FX_Div -.public GXx_SetMasterBrightness_ -.public GX_ResetBankForBG -.public G2x_SetBGyAffine_ -.public GX_LoadOBJPltt -.public DC_FlushRange -.public MIi_CpuClearFast -.public MI_Copy36B -.public memset -.public _ull_mul -.public _s32_div_f -.public _u32_div_f -.public ov5_021D1434 -.public ov5_021D143C -.public ov5_021D16F4 -.public ov5_021D1718 -.public ov5_021DDC88 -.public ov5_021DDD7C -.public ov5_021DDD80 -.public ov5_021DDD90 -.public ov5_021DDE14 -.public ov5_021DDE74 -.public ov5_021DDEDC -.public ov5_021DDEFC -.public ov5_021DDF08 -.public ov5_021DDF24 -.public ov5_021DE028 -.public ov5_021DE088 -.public ov5_021DE0F0 -.public ov5_021DE14C -.public ov5_021DE2AC -.public ov5_021DE2DC -.public ov5_021DE344 -.public ov5_021DE374 -.public ov5_021DE67C -.public ov5_021DE784 -.public ov5_021DE79C -.public ov5_021DE7A4 -.public ov5_021DE7FC -.public ov5_021DE89C -.public ov5_021DEA80 -.public ov5_021DEA98 -.public ov5_021DEAA0 -.public ov5_021DEAC8 -.public ov5_021DEB04 -.public ov5_021DEDE8 -.public ov5_021DEE24 -.public ov5_021DEE50 -.public ov5_021DEE84 -.public ov5_021DEF74 -.public ov5_021DF258 -.public ov5_021DF28C -.public ov5_021DF30C -.public ov5_021DF3D4 -.public ov5_021DF3E8 -.public ov5_021DF414 -.public ov5_021EF418 -.public ov5_021EF43C diff --git a/asm/overlay005/ov5_021DDBE8.s b/asm/overlay005/ov5_021DDBE8.s deleted file mode 100644 index eebd4ac490..0000000000 --- a/asm/overlay005/ov5_021DDBE8.s +++ /dev/null @@ -1,3405 +0,0 @@ - .include "macros/function.inc" - .include "overlay005/ov5_021DDBE8.inc" - - - .extern ov5_021E24A8 - .extern ov5_021E2338 - .extern ov5_021E261C - .extern ov5_021E2748 - .extern ov5_021E2944 - .extern ov5_021E2A4C - .extern ov5_021E2B54 - .extern ov5_021E2EB0 - .extern ov5_021E31A4 - .extern ov5_021E3560 - .extern ov5_021E3AD0 - .extern ov5_021E3D8C - .extern ov5_021E5760 - .extern ov5_021E5784 - .extern ov5_021E57A8 - .extern ov5_021E57CC - .extern ov5_021E57F0 - .extern ov5_021E5814 - .extern ov5_021E5838 - .extern ov5_021E585C - .extern ov5_021E6178 - .extern ov5_021E619C - .extern ov5_021E61C0 - .extern ov5_021E61E4 - .extern ov5_021E6208 - .extern ov5_021E4E14 - .extern ov5_021E4F7C - .extern ov5_021E4738 - .extern ov5_021E4B3C - .extern ov5_021E4260 - .extern ov5_021E44C0 - - - .text - - - thumb_func_start ov5_021DDBE8 -ov5_021DDBE8: ; 0x021DDBE8 - push {r4, r5, r6, lr} - add r5, r1, #0 - lsl r1, r0, #2 - ldr r0, _021DDC24 ; =0x021F9A74 - add r6, r2, #0 - ldr r0, [r0, r1] - mov r1, #0x24 - mov r2, #5 - mov r3, #4 - bl sub_0200679C - bl sub_0201CED0 - add r4, r0, #0 - str r5, [r4, #0x10] - str r6, [r4, #0x14] - mov r0, #0x70 - mov r1, #4 - bl sub_02006C24 - str r0, [r4, #0x20] - ldr r1, [r4, #0x14] - cmp r1, #0 - beq _021DDC1C - mov r0, #0 - str r0, [r1, #0] -_021DDC1C: - mov r0, #0 - str r0, [r4, #0x18] - pop {r4, r5, r6, pc} - nop -_021DDC24: .word Unk_ov5_021F9A74 - thumb_func_end ov5_021DDBE8 - - thumb_func_start ov5_021DDC28 -ov5_021DDC28: ; 0x021DDC28 - push {r3, r4, r5, lr} - add r5, r0, #0 - ldr r0, [r5, #0x20] - add r4, r1, #0 - bl sub_02006CA8 - ldr r1, [r5, #0xc] - mov r0, #4 - bl sub_02018238 - add r0, r4, #0 - bl sub_020067D0 - pop {r3, r4, r5, pc} - thumb_func_end ov5_021DDC28 - - thumb_func_start ov5_021DDC44 -ov5_021DDC44: ; 0x021DDC44 - push {r3, r4, r5, r6, r7, lr} - add r6, r0, #0 - add r7, r1, #0 - mov r0, #4 - mov r1, #0x4c - str r2, [sp] - add r5, r3, #0 - bl sub_02018144 - mov r1, #0 - mov r2, #0x4c - add r4, r0, #0 - bl memset - ldr r0, _021DDC84 ; =ov5_021DDC88 - add r1, r4, #0 - mov r2, #5 - bl sub_0200D9E8 - str r5, [r4, #0x48] - cmp r5, #0 - beq _021DDC74 - mov r0, #0 - str r0, [r5, #0] -_021DDC74: - str r6, [r4, #0xc] - ldr r0, [sp] - str r7, [r4, #0x10] - str r0, [r4, #0x14] - ldr r0, [sp, #0x18] - str r0, [r4, #4] - pop {r3, r4, r5, r6, r7, pc} - nop -_021DDC84: .word ov5_021DDC88 - thumb_func_end ov5_021DDC44 - - thumb_func_start ov5_021DDC88 -ov5_021DDC88: ; 0x021DDC88 - push {r3, r4, lr} - sub sp, #4 - add r4, r1, #0 - ldr r1, [r4, #0] - cmp r1, #5 - bhi _021DDD6E - add r1, r1, r1 - add r1, pc - ldrh r1, [r1, #6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_021DDCA0: ; jump table - .short _021DDCAC - _021DDCA0 - 2 ; case 0 - .short _021DDCE4 - _021DDCA0 - 2 ; case 1 - .short _021DDCFE - _021DDCA0 - 2 ; case 2 - .short _021DDD12 - _021DDCA0 - 2 ; case 3 - .short _021DDD2C - _021DDCA0 - 2 ; case 4 - .short _021DDD50 - _021DDCA0 - 2 ; case 5 -_021DDCAC: - ldr r0, [r4, #0xc] - cmp r0, #1 - bne _021DDCC6 - mov r0, #8 - str r0, [sp] - add r0, r4, #0 - ldr r2, [r4, #0x14] - add r0, #0x30 - mov r1, #0 - mov r3, #2 - bl ov5_021DDEFC - b _021DDCDC -_021DDCC6: - cmp r0, #2 - bne _021DDCDC - mov r0, #8 - str r0, [sp] - add r0, r4, #0 - ldr r2, [r4, #0x14] - add r0, #0x30 - mov r1, #0 - mov r3, #1 - bl ov5_021DDEFC -_021DDCDC: - ldr r0, [r4, #0] - add r0, r0, #1 - str r0, [r4, #0] - b _021DDD6E -_021DDCE4: - mov r0, #3 - str r0, [sp] - add r0, r4, #0 - ldr r2, [r4, #0x10] - ldr r3, [r4, #0xc] - add r0, #0x18 - mov r1, #0 - bl ov5_021DDEFC - ldr r0, [r4, #0] - add r0, r0, #1 - str r0, [r4, #0] - b _021DDD6E -_021DDCFE: - add r0, r4, #0 - add r0, #0x18 - bl ov5_021DDF08 - cmp r0, #0 - beq _021DDD6E - ldr r0, [r4, #0] - add r0, r0, #1 - str r0, [r4, #0] - b _021DDD6E -_021DDD12: - mov r0, #3 - str r0, [sp] - add r0, r4, #0 - ldr r1, [r4, #0x10] - ldr r3, [r4, #0xc] - add r0, #0x18 - mov r2, #0 - bl ov5_021DDEFC - ldr r0, [r4, #0] - add r0, r0, #1 - str r0, [r4, #0] - b _021DDD6E -_021DDD2C: - add r0, r4, #0 - add r0, #0x18 - bl ov5_021DDF08 - cmp r0, #0 - beq _021DDD6E - ldr r0, [r4, #8] - add r1, r0, #1 - str r1, [r4, #8] - ldr r0, [r4, #4] - cmp r1, r0 - bne _021DDD4A - mov r0, #5 - str r0, [r4, #0] - b _021DDD6E -_021DDD4A: - mov r0, #1 - str r0, [r4, #0] - b _021DDD6E -_021DDD50: - mov r1, #0 - str r1, [r4, #0] - str r1, [r4, #8] - ldr r2, [r4, #0x48] - cmp r2, #0 - beq _021DDD60 - mov r1, #1 - str r1, [r2, #0] -_021DDD60: - bl sub_0200DA58 - add r0, r4, #0 - bl sub_020181C4 - add sp, #4 - pop {r3, r4, pc} -_021DDD6E: - add r4, #0x30 - add r0, r4, #0 - bl ov5_021DDF08 - add sp, #4 - pop {r3, r4, pc} - ; .align 2, 0 - thumb_func_end ov5_021DDC88 - - thumb_func_start ov5_021DDD7C -ov5_021DDD7C: ; 0x021DDD7C - ldr r0, [r0, #0x18] - bx lr - thumb_func_end ov5_021DDD7C - - thumb_func_start ov5_021DDD80 -ov5_021DDD80: ; 0x021DDD80 - str r1, [r0, #0] - str r1, [r0, #4] - sub r1, r2, r1 - str r1, [r0, #8] - str r3, [r0, #0x10] - mov r1, #0 - str r1, [r0, #0xc] - bx lr - thumb_func_end ov5_021DDD80 - - thumb_func_start ov5_021DDD90 -ov5_021DDD90: ; 0x021DDD90 - push {r4, lr} - add r4, r0, #0 - ldr r1, [r4, #8] - ldr r0, [r4, #0xc] - mul r0, r1 - ldr r1, [r4, #0x10] - bl _s32_div_f - ldr r1, [r4, #4] - add r0, r0, r1 - str r0, [r4, #0] - ldr r0, [r4, #0xc] - ldr r1, [r4, #0x10] - add r0, r0, #1 - cmp r0, r1 - bgt _021DDDB6 - str r0, [r4, #0xc] - mov r0, #0 - pop {r4, pc} -_021DDDB6: - str r1, [r4, #0xc] - mov r0, #1 - pop {r4, pc} - thumb_func_end ov5_021DDD90 - - thumb_func_start ov5_021DDDBC -ov5_021DDDBC: ; 0x021DDDBC - str r1, [r0, #0] - str r1, [r0, #4] - sub r1, r2, r1 - str r1, [r0, #8] - str r3, [r0, #0x10] - mov r1, #0 - str r1, [r0, #0xc] - bx lr - thumb_func_end ov5_021DDDBC - - thumb_func_start ov5_021DDDCC -ov5_021DDDCC: ; 0x021DDDCC - push {r4, lr} - add r4, r0, #0 - ldr r2, [r4, #0xc] - ldr r0, [r4, #8] - lsl r2, r2, #0xc - asr r1, r0, #0x1f - asr r3, r2, #0x1f - bl _ull_mul - mov r2, #2 - mov r3, #0 - lsl r2, r2, #0xa - add r0, r0, r2 - adc r1, r3 - lsl r1, r1, #0x14 - lsr r0, r0, #0xc - orr r0, r1 - ldr r1, [r4, #0x10] - lsl r1, r1, #0xc - bl FX_Div - ldr r1, [r4, #4] - add r0, r0, r1 - str r0, [r4, #0] - ldr r0, [r4, #0xc] - ldr r1, [r4, #0x10] - add r0, r0, #1 - cmp r0, r1 - bgt _021DDE0C - str r0, [r4, #0xc] - mov r0, #0 - pop {r4, pc} -_021DDE0C: - str r1, [r4, #0xc] - mov r0, #1 - pop {r4, pc} - ; .align 2, 0 - thumb_func_end ov5_021DDDCC - - thumb_func_start ov5_021DDE14 -ov5_021DDE14: ; 0x021DDE14 - push {r3, r4, r5, r6, r7, lr} - ldr r4, [sp, #0x18] - add r5, r0, #0 - add r7, r2, #0 - add r0, r3, #0 - add r6, r1, #0 - lsl r2, r4, #0xc - str r3, [sp] - asr r1, r0, #0x1f - asr r3, r2, #0x1f - bl _ull_mul - add r2, r0, #0 - sub r0, r7, r6 - mov r7, #2 - mov r3, #0 - lsl r7, r7, #0xa - add r2, r2, r7 - adc r1, r3 - lsl r1, r1, #0x14 - lsr r2, r2, #0xc - orr r2, r1 - sub r2, r0, r2 - asr r1, r2, #0x1f - lsr r0, r2, #0x13 - lsl r1, r1, #0xd - orr r1, r0 - lsl r0, r2, #0xd - add r0, r0, r7 - adc r1, r3 - lsl r1, r1, #0x14 - lsr r0, r0, #0xc - orr r0, r1 - add r1, r4, #0 - mul r1, r4 - lsl r1, r1, #0xc - bl FX_Div - str r6, [r5, #0] - ldr r1, [sp] - str r6, [r5, #4] - str r1, [r5, #8] - str r0, [r5, #0xc] - mov r0, #0 - str r0, [r5, #0x10] - str r4, [r5, #0x14] - pop {r3, r4, r5, r6, r7, pc} - ; .align 2, 0 - thumb_func_end ov5_021DDE14 - - thumb_func_start ov5_021DDE74 -ov5_021DDE74: ; 0x021DDE74 - push {r4, r5, r6, lr} - add r5, r0, #0 - ldr r6, [r5, #0x10] - ldr r0, [r5, #8] - lsl r2, r6, #0xc - asr r1, r0, #0x1f - asr r3, r2, #0x1f - bl _ull_mul - mov r2, #2 - mov r3, #0 - lsl r2, r2, #0xa - add r2, r0, r2 - adc r1, r3 - lsr r4, r2, #0xc - lsl r0, r1, #0x14 - add r2, r6, #0 - orr r4, r0 - ldr r0, [r5, #0xc] - mul r2, r6 - lsl r2, r2, #0xc - asr r1, r0, #0x1f - asr r3, r2, #0x1f - bl _ull_mul - mov r2, #2 - mov r3, #0 - lsl r2, r2, #0xa - add r0, r0, r2 - adc r1, r3 - lsl r1, r1, #0x14 - lsr r0, r0, #0xc - orr r0, r1 - lsl r1, r2, #2 - bl FX_Div - ldr r1, [r5, #4] - add r0, r4, r0 - add r0, r1, r0 - str r0, [r5, #0] - ldr r0, [r5, #0x10] - ldr r1, [r5, #0x14] - add r0, r0, #1 - cmp r0, r1 - bgt _021DDED4 - str r0, [r5, #0x10] - mov r0, #0 - pop {r4, r5, r6, pc} -_021DDED4: - str r1, [r5, #0x10] - mov r0, #1 - pop {r4, r5, r6, pc} - ; .align 2, 0 - thumb_func_end ov5_021DDE74 - - thumb_func_start ov5_021DDEDC -ov5_021DDEDC: ; 0x021DDEDC - push {r3, lr} - cmp r0, #1 - bne _021DDEEA - ldr r0, _021DDEF4 ; =0x0400006C - bl GXx_SetMasterBrightness_ - pop {r3, pc} -_021DDEEA: - ldr r0, _021DDEF8 ; =0x0400106C - bl GXx_SetMasterBrightness_ - pop {r3, pc} - nop -_021DDEF4: .word 0x0400006C -_021DDEF8: .word 0x0400106C - thumb_func_end ov5_021DDEDC - - thumb_func_start ov5_021DDEFC -ov5_021DDEFC: ; 0x021DDEFC - push {r3, lr} - str r3, [r0, #0x14] - ldr r3, [sp, #8] - bl ov5_021DDD80 - pop {r3, pc} - thumb_func_end ov5_021DDEFC - - thumb_func_start ov5_021DDF08 -ov5_021DDF08: ; 0x021DDF08 - push {r3, r4, r5, lr} - add r5, r0, #0 - bl ov5_021DDD90 - add r4, r0, #0 - ldr r0, _021DDF20 ; =ov5_021DDF24 - add r1, r5, #0 - mov r2, #0xa - bl sub_0200DA3C - add r0, r4, #0 - pop {r3, r4, r5, pc} - ; .align 2, 0 -_021DDF20: .word ov5_021DDF24 - thumb_func_end ov5_021DDF08 - - thumb_func_start ov5_021DDF24 -ov5_021DDF24: ; 0x021DDF24 - push {r4, lr} - add r4, r0, #0 - ldr r0, [r1, #0x14] - ldr r1, [r1, #0] - bl ov5_021DDEDC - add r0, r4, #0 - bl sub_0200DA58 - pop {r4, pc} - thumb_func_end ov5_021DDF24 - - thumb_func_start ov5_021DDF38 -ov5_021DDF38: ; 0x021DDF38 - push {r4, lr} - mov r0, #4 - mov r1, #0x30 - bl sub_02018144 - mov r1, #0 - mov r2, #0x30 - add r4, r0, #0 - bl memset - ldr r0, _021DDF6C ; =0x04000048 - mov r1, #0x3f - ldrh r2, [r0] - bic r2, r1 - mov r1, #0x1f - orr r2, r1 - mov r1, #0x20 - orr r1, r2 - strh r1, [r0] - ldrh r2, [r0] - ldr r1, _021DDF70 ; =0xFFFFC0FF - and r1, r2 - strh r1, [r0] - add r0, r4, #0 - pop {r4, pc} - nop -_021DDF6C: .word 0x04000048 -_021DDF70: .word 0xFFFFC0FF - thumb_func_end ov5_021DDF38 - - thumb_func_start ov5_021DDF74 -ov5_021DDF74: ; 0x021DDF74 - push {r4, lr} - add r4, r0, #0 - ldr r1, [r4, #0x24] - cmp r1, #0 - beq _021DDF82 - bl ov5_021DE0F0 -_021DDF82: - mov r2, #1 - lsl r2, r2, #0x1a - ldr r1, [r2, #0] - ldr r0, _021DDF98 ; =0xFFFF1FFF - and r0, r1 - str r0, [r2, #0] - add r0, r4, #0 - bl sub_020181C4 - pop {r4, pc} - nop -_021DDF98: .word 0xFFFF1FFF - thumb_func_end ov5_021DDF74 - - thumb_func_start ov5_021DDF9C -ov5_021DDF9C: ; 0x021DDF9C - push {r3, r4, r5, r6, r7, lr} - sub sp, #8 - add r5, r1, #0 - add r6, r0, #0 - ldr r0, [r5, #0x24] - add r7, r2, #0 - str r3, [sp, #4] - ldr r4, [sp, #0x20] - cmp r0, #0 - beq _021DDFB4 - bl GF_AssertFail -_021DDFB4: - mov r0, #0 - str r0, [r6, #0x18] - ldr r1, [r6, #0x10] - add r6, #0x18 - ldr r1, [r1, #4] - ldr r2, [sp, #0x24] - ldr r1, [r1, #0x1c] - ldr r3, [sp, #0x28] - str r1, [r5, #0x20] - str r7, [r5, #0x18] - str r0, [r5, #0x1c] - ldr r0, [sp, #4] - str r6, [r5, #0x2c] - str r0, [sp] - add r0, r5, #0 - add r1, r4, #0 - bl ov5_021DDE14 - cmp r4, #0 - blt _021DDFF4 - mov r0, #0xff - ldr r2, _021DE020 ; =0x04000040 - sub r0, r0, r4 - strh r0, [r2] - add r0, r4, #1 - mov r1, #0xc0 - lsl r0, r0, #0x18 - strh r1, [r2, #4] - lsr r0, r0, #0x18 - strh r0, [r2, #2] - strh r1, [r2, #6] - b _021DE010 -_021DDFF4: - add r0, r4, #0 - add r0, #0xff - lsl r0, r0, #0x18 - mov r2, #1 - sub r2, r2, r4 - lsl r2, r2, #0x18 - ldr r1, _021DE020 ; =0x04000040 - lsr r0, r0, #0x18 - strh r0, [r1] - mov r0, #0xc0 - strh r0, [r1, #4] - lsr r2, r2, #0x18 - strh r2, [r1, #2] - strh r0, [r1, #6] -_021DE010: - mov r2, #1 - ldr r0, _021DE024 ; =ov5_021DE028 - add r1, r5, #0 - lsl r2, r2, #0xa - bl sub_0200DA3C - add sp, #8 - pop {r3, r4, r5, r6, r7, pc} - ; .align 2, 0 -_021DE020: .word 0x04000040 -_021DE024: .word ov5_021DE028 - thumb_func_end ov5_021DDF9C - - thumb_func_start ov5_021DE028 -ov5_021DE028: ; 0x021DE028 - push {r3, r4, r5, lr} - add r5, r0, #0 - mov r2, #1 - ldr r0, _021DE050 ; =ov5_021DE088 - add r4, r1, #0 - lsl r2, r2, #0xa - bl sub_0200DA3C - str r0, [r4, #0x28] - ldr r0, [r4, #0x20] - ldr r1, _021DE054 ; =ov5_021DE14C - add r2, r4, #0 - bl ov5_021EF418 - str r0, [r4, #0x24] - add r0, r5, #0 - bl sub_0200DA58 - pop {r3, r4, r5, pc} - nop -_021DE050: .word ov5_021DE088 -_021DE054: .word ov5_021DE14C - thumb_func_end ov5_021DE028 - - thumb_func_start ov5_021DE058 -ov5_021DE058: ; 0x021DE058 - push {r3, r4, r5, r6, lr} - sub sp, #4 - add r5, r1, #0 - add r4, r2, #0 - add r6, r3, #0 - bl ov5_021DDD7C - cmp r0, #0 - beq _021DE06E - bl GF_AssertFail -_021DE06E: - str r4, [r5, #0x18] - mov r0, #0 - str r0, [r5, #0x1c] - ldr r1, [sp, #0x18] - ldr r2, [sp, #0x1c] - ldr r3, [sp, #0x20] - add r0, r5, #0 - str r6, [sp] - bl ov5_021DDE14 - add sp, #4 - pop {r3, r4, r5, r6, pc} - ; .align 2, 0 - thumb_func_end ov5_021DE058 - - thumb_func_start ov5_021DE088 -ov5_021DE088: ; 0x021DE088 - push {r4, lr} - add r4, r1, #0 - ldr r0, [r4, #0x1c] - cmp r0, #0 - beq _021DE098 - cmp r0, #1 - beq _021DE0E4 - pop {r4, pc} -_021DE098: - add r0, r4, #0 - bl ov5_021DDE74 - cmp r0, #0 - beq _021DE0A8 - ldr r0, [r4, #0x1c] - add r0, r0, #1 - str r0, [r4, #0x1c] -_021DE0A8: - ldr r0, [r4, #0] - asr r0, r0, #0xc - bmi _021DE0C6 - mov r1, #0xff - sub r1, r1, r0 - ldr r2, _021DE0EC ; =0x04000040 - add r0, r0, #1 - strh r1, [r2] - mov r1, #0xc0 - lsl r0, r0, #0x18 - strh r1, [r2, #4] - lsr r0, r0, #0x18 - strh r0, [r2, #2] - strh r1, [r2, #6] - pop {r4, pc} -_021DE0C6: - add r1, r0, #0 - add r1, #0xff - lsl r1, r1, #0x18 - ldr r3, _021DE0EC ; =0x04000040 - lsr r1, r1, #0x18 - strh r1, [r3] - mov r1, #1 - sub r0, r1, r0 - mov r2, #0xc0 - lsl r0, r0, #0x18 - strh r2, [r3, #4] - lsr r0, r0, #0x18 - strh r0, [r3, #2] - strh r2, [r3, #6] - pop {r4, pc} -_021DE0E4: - add r0, r4, #0 - bl ov5_021DE0F0 - pop {r4, pc} - ; .align 2, 0 -_021DE0EC: .word 0x04000040 - thumb_func_end ov5_021DE088 - - thumb_func_start ov5_021DE0F0 -ov5_021DE0F0: ; 0x021DE0F0 - push {r4, lr} - add r4, r0, #0 - ldr r0, _021DE144 ; =0x04000048 - mov r2, #0x3f - ldrh r3, [r0] - mov r1, #0x1f - bic r3, r2 - orr r3, r1 - mov r1, #0x20 - orr r3, r1 - strh r3, [r0] - ldrh r3, [r0, #2] - bic r3, r2 - add r2, r0, #0 - strh r3, [r0, #2] - mov r3, #0 - sub r2, #8 - strh r3, [r2] - sub r0, r0, #4 - strh r3, [r0] - lsl r3, r1, #0x15 - ldr r2, [r3, #0] - ldr r0, _021DE148 ; =0xFFFF1FFF - and r2, r0 - lsl r0, r1, #8 - orr r0, r2 - str r0, [r3, #0] - ldr r0, [r4, #0x2c] - mov r1, #1 - str r1, [r0, #0] - ldr r0, [r4, #0x24] - bl ov5_021EF43C - mov r0, #0 - str r0, [r4, #0x24] - ldr r0, [r4, #0x28] - bl sub_0200DA58 - mov r0, #0 - str r0, [r4, #0x28] - pop {r4, pc} - nop -_021DE144: .word 0x04000048 -_021DE148: .word 0xFFFF1FFF - thumb_func_end ov5_021DE0F0 - - thumb_func_start ov5_021DE14C -ov5_021DE14C: ; 0x021DE14C - push {r4, lr} - ldr r0, _021DE1BC ; =0x04000006 - add r4, r1, #0 - ldrh r0, [r0] - ldr r1, [r4, #0x18] - bl _u32_div_f - mov r1, #1 - tst r0, r1 - ldr r0, [r4, #0] - bne _021DE164 - b _021DE166 -_021DE164: - neg r0, r0 -_021DE166: - asr r2, r0, #0xc - ldr r0, _021DE1C0 ; =0x000001FF - add r1, r2, #0 - and r1, r0 - ldr r0, _021DE1C4 ; =0x04000010 - cmp r2, #0 - str r1, [r0, #0] - str r1, [r0, #4] - str r1, [r0, #8] - str r1, [r0, #0xc] - ldr r1, _021DE1C8 ; =0xFFFF1FFF - blt _021DE198 - add r3, r0, #0 - sub r3, #0x10 - ldr r2, [r3, #0] - and r2, r1 - lsl r1, r0, #9 - orr r1, r2 - str r1, [r3, #0] - add r0, #0x3a - ldrh r2, [r0] - mov r1, #0x3f - bic r2, r1 - strh r2, [r0] - pop {r4, pc} -_021DE198: - add r3, r0, #0 - sub r3, #0x10 - ldr r2, [r3, #0] - and r2, r1 - lsl r1, r0, #0xa - orr r1, r2 - str r1, [r3, #0] - add r0, #0x3a - ldrh r2, [r0] - mov r1, #0x3f - bic r2, r1 - mov r1, #0x1f - orr r2, r1 - mov r1, #0x20 - orr r1, r2 - strh r1, [r0] - pop {r4, pc} - nop -_021DE1BC: .word 0x04000006 -_021DE1C0: .word 0x000001FF -_021DE1C4: .word 0x04000010 -_021DE1C8: .word 0xFFFF1FFF - thumb_func_end ov5_021DE14C - - thumb_func_start ov5_021DE1CC -ov5_021DE1CC: ; 0x021DE1CC - push {r4, r5, r6, lr} - mov r0, #4 - mov r1, #0x48 - bl sub_02018144 - mov r1, #0 - mov r2, #0x48 - add r4, r0, #0 - bl memset - ldr r0, _021DE210 ; =0x04000048 - mov r5, #0x3f - ldrh r2, [r0] - mov r1, #0x1f - bic r2, r5 - add r3, r2, #0 - orr r3, r1 - mov r2, #0x20 - orr r3, r2 - strh r3, [r0] - ldrh r6, [r0] - ldr r3, _021DE214 ; =0xFFFFC0FF - lsl r1, r1, #8 - and r3, r6 - orr r3, r1 - lsl r1, r2, #8 - orr r1, r3 - strh r1, [r0] - ldrh r1, [r0, #2] - bic r1, r5 - strh r1, [r0, #2] - add r0, r4, #0 - pop {r4, r5, r6, pc} - nop -_021DE210: .word 0x04000048 -_021DE214: .word 0xFFFFC0FF - thumb_func_end ov5_021DE1CC - - thumb_func_start ov5_021DE218 -ov5_021DE218: ; 0x021DE218 - push {r4, lr} - add r4, r0, #0 - ldr r1, [r4, #0x3c] - cmp r1, #0 - beq _021DE226 - bl ov5_021DE374 -_021DE226: - mov r2, #1 - lsl r2, r2, #0x1a - ldr r1, [r2, #0] - ldr r0, _021DE23C ; =0xFFFF1FFF - and r0, r1 - str r0, [r2, #0] - add r0, r4, #0 - bl sub_020181C4 - pop {r4, pc} - nop -_021DE23C: .word 0xFFFF1FFF - thumb_func_end ov5_021DE218 - - thumb_func_start ov5_021DE240 -ov5_021DE240: ; 0x021DE240 - push {r3, r4, r5, r6, r7, lr} - add r4, r1, #0 - add r5, r0, #0 - ldr r0, [r4, #0x3c] - add r6, r2, #0 - add r7, r3, #0 - cmp r0, #0 - beq _021DE254 - bl GF_AssertFail -_021DE254: - mov r1, #0 - str r1, [r5, #0x18] - ldr r0, [r5, #0x10] - mov r2, #0xff - ldr r0, [r0, #4] - add r5, #0x18 - ldr r0, [r0, #0x1c] - lsl r2, r2, #0xc - str r0, [r4, #0x38] - mov r0, #0x60 - str r0, [r4, #0x30] - str r1, [r4, #0x34] - str r5, [r4, #0x44] - add r0, r4, #0 - add r3, r7, #0 - str r6, [sp] - bl ov5_021DDE14 - add r0, r4, #0 - mov r2, #6 - ldr r3, [sp, #0x18] - add r0, #0x18 - mov r1, #0 - lsl r2, r2, #0x10 - str r6, [sp] - bl ov5_021DDE14 - ldr r2, _021DE2A4 ; =0x04000040 - mov r1, #0xff - strh r1, [r2] - mov r0, #0xc0 - strh r0, [r2, #4] - strh r1, [r2, #2] - strh r0, [r2, #6] - ldr r0, _021DE2A8 ; =ov5_021DE2AC - add r1, r4, #0 - lsr r2, r2, #0x10 - bl sub_0200DA3C - pop {r3, r4, r5, r6, r7, pc} - ; .align 2, 0 -_021DE2A4: .word 0x04000040 -_021DE2A8: .word ov5_021DE2AC - thumb_func_end ov5_021DE240 - - thumb_func_start ov5_021DE2AC -ov5_021DE2AC: ; 0x021DE2AC - push {r3, r4, r5, lr} - add r5, r0, #0 - mov r2, #1 - ldr r0, _021DE2D4 ; =ov5_021DE2DC - add r4, r1, #0 - lsl r2, r2, #0xa - bl sub_0200DA3C - str r0, [r4, #0x40] - ldr r0, [r4, #0x38] - ldr r1, _021DE2D8 ; =ov5_021DE344 - add r2, r4, #0 - bl ov5_021EF418 - str r0, [r4, #0x3c] - add r0, r5, #0 - bl sub_0200DA58 - pop {r3, r4, r5, pc} - nop -_021DE2D4: .word ov5_021DE2DC -_021DE2D8: .word ov5_021DE344 - thumb_func_end ov5_021DE2AC - - thumb_func_start ov5_021DE2DC -ov5_021DE2DC: ; 0x021DE2DC - push {r4, lr} - add r4, r1, #0 - ldr r0, [r4, #0x34] - cmp r0, #0 - beq _021DE2EC - cmp r0, #1 - beq _021DE338 - pop {r4, pc} -_021DE2EC: - add r0, r4, #0 - add r0, #0x18 - bl ov5_021DDE74 - add r0, r4, #0 - bl ov5_021DDE74 - cmp r0, #0 - beq _021DE304 - ldr r0, [r4, #0x34] - add r0, r0, #1 - str r0, [r4, #0x34] -_021DE304: - ldr r0, [r4, #0] - asr r2, r0, #0xc - ldr r0, [r4, #0x18] - mov r4, #0xff - asr r1, r0, #0xc - ldr r0, _021DE340 ; =0x04000040 - sub r3, r4, r2 - strh r3, [r0] - mov r3, #0x60 - sub r3, r3, r1 - lsl r3, r3, #0x18 - lsr r3, r3, #0x18 - strh r3, [r0, #4] - lsl r3, r2, #8 - lsl r2, r4, #8 - and r2, r3 - orr r2, r4 - add r1, #0x60 - strh r2, [r0, #2] - lsl r2, r1, #8 - lsl r1, r4, #8 - and r2, r1 - mov r1, #0xc0 - orr r1, r2 - strh r1, [r0, #6] - pop {r4, pc} -_021DE338: - add r0, r4, #0 - bl ov5_021DE374 - pop {r4, pc} - ; .align 2, 0 -_021DE340: .word 0x04000040 - thumb_func_end ov5_021DE2DC - - thumb_func_start ov5_021DE344 -ov5_021DE344: ; 0x021DE344 - ldr r0, _021DE36C ; =0x04000006 - ldr r1, [r1, #0x30] - ldrh r2, [r0] - cmp r2, r1 - ldr r1, _021DE370 ; =0xFFFF1FFF - bhi _021DE35E - sub r3, r0, #6 - ldr r2, [r3, #0] - lsr r0, r0, #0xd - and r1, r2 - orr r0, r1 - str r0, [r3, #0] - bx lr -_021DE35E: - sub r3, r0, #6 - ldr r2, [r3, #0] - lsr r0, r0, #0xc - and r1, r2 - orr r0, r1 - str r0, [r3, #0] - bx lr - ; .align 2, 0 -_021DE36C: .word 0x04000006 -_021DE370: .word 0xFFFF1FFF - thumb_func_end ov5_021DE344 - - thumb_func_start ov5_021DE374 -ov5_021DE374: ; 0x021DE374 - push {r4, lr} - add r4, r0, #0 - ldr r0, _021DE3C8 ; =0x04000048 - mov r2, #0x3f - ldrh r3, [r0] - mov r1, #0x1f - bic r3, r2 - orr r3, r1 - mov r1, #0x20 - orr r3, r1 - strh r3, [r0] - ldrh r3, [r0, #2] - bic r3, r2 - add r2, r0, #0 - strh r3, [r0, #2] - mov r3, #0 - sub r2, #8 - strh r3, [r2] - sub r0, r0, #4 - strh r3, [r0] - lsl r3, r1, #0x15 - ldr r2, [r3, #0] - ldr r0, _021DE3CC ; =0xFFFF1FFF - and r2, r0 - lsl r0, r1, #8 - orr r0, r2 - str r0, [r3, #0] - ldr r0, [r4, #0x44] - mov r1, #1 - str r1, [r0, #0] - ldr r0, [r4, #0x3c] - bl ov5_021EF43C - mov r0, #0 - str r0, [r4, #0x3c] - ldr r0, [r4, #0x40] - bl sub_0200DA58 - mov r0, #0 - str r0, [r4, #0x40] - pop {r4, pc} - nop -_021DE3C8: .word 0x04000048 -_021DE3CC: .word 0xFFFF1FFF - thumb_func_end ov5_021DE374 - - thumb_func_start ov5_021DE3D0 -ov5_021DE3D0: ; 0x021DE3D0 - push {r3, r4, r5, r6, r7, lr} - sub sp, #0x18 - add r7, r1, #0 - ldr r1, [sp, #0x34] - str r2, [sp, #0x10] - lsl r1, r1, #5 - str r1, [sp] - mov r1, #4 - str r1, [sp, #4] - add r1, r3, #0 - ldr r3, [sp, #0x30] - mov r2, #0 - lsl r3, r3, #5 - add r6, r0, #0 - ldr r5, [sp, #0x38] - ldr r4, [sp, #0x3c] - bl sub_02007130 - mov r0, #0 - str r0, [sp] - str r0, [sp, #4] - str r0, [sp, #8] - mov r0, #4 - str r0, [sp, #0xc] - ldr r1, [sp, #0x10] - add r0, r6, #0 - add r2, r5, #0 - add r3, r4, #0 - bl sub_020070E8 - mov r0, #4 - str r0, [sp] - add r0, r6, #0 - add r1, r7, #0 - mov r2, #0 - add r3, sp, #0x14 - bl sub_020071D0 - lsl r1, r4, #0x18 - ldr r2, [sp, #0x14] - mov r3, #0 - str r3, [sp] - add r6, r0, #0 - ldrh r0, [r2] - lsr r1, r1, #0x18 - lsl r0, r0, #0x15 - lsr r0, r0, #0x18 - str r0, [sp, #4] - ldrh r0, [r2, #2] - add r2, #0xc - lsl r0, r0, #0x15 - lsr r0, r0, #0x18 - str r0, [sp, #8] - add r0, r5, #0 - bl sub_020198C0 - ldr r1, [sp, #0x14] - mov r2, #0 - ldrh r0, [r1] - add r3, r2, #0 - lsl r0, r0, #0x15 - lsr r0, r0, #0x18 - str r0, [sp] - ldrh r0, [r1, #2] - lsl r1, r4, #0x18 - lsr r1, r1, #0x18 - lsl r0, r0, #0x15 - lsr r0, r0, #0x18 - str r0, [sp, #4] - ldr r0, [sp, #0x30] - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp, #8] - add r0, r5, #0 - bl sub_02019E2C - add r0, r6, #0 - bl sub_020181C4 - lsl r1, r4, #0x18 - add r0, r5, #0 - lsr r1, r1, #0x18 - bl sub_0201C3C0 - add sp, #0x18 - pop {r3, r4, r5, r6, r7, pc} - thumb_func_end ov5_021DE3D0 - - thumb_func_start ov5_021DE47C -ov5_021DE47C: ; 0x021DE47C - push {r3, r4, r5, r6, r7, lr} - add r5, r0, #0 - add r6, r2, #0 - add r0, r1, #0 - add r1, r5, #4 - mov r2, #4 - bl sub_020095C4 - mov r7, #0x4b - str r0, [r5, #0] - mov r4, #0 - lsl r7, r7, #2 -_021DE494: - add r0, r6, #0 - add r1, r4, #0 - mov r2, #4 - bl sub_02009714 - str r0, [r5, r7] - add r4, r4, #1 - add r5, r5, #4 - cmp r4, #4 - blt _021DE494 - pop {r3, r4, r5, r6, r7, pc} - ; .align 2, 0 - thumb_func_end ov5_021DE47C - - thumb_func_start ov5_021DE4AC -ov5_021DE4AC: ; 0x021DE4AC - push {r4, r5, r6, lr} - add r5, r0, #0 - ldr r0, [r5, #0] - bl sub_02021964 - mov r6, #0x4b - mov r4, #0 - lsl r6, r6, #2 -_021DE4BC: - ldr r0, [r5, r6] - bl sub_02009754 - add r4, r4, #1 - add r5, r5, #4 - cmp r4, #4 - blt _021DE4BC - pop {r4, r5, r6, pc} - thumb_func_end ov5_021DE4AC - - thumb_func_start ov5_021DE4CC -ov5_021DE4CC: ; 0x021DE4CC - push {r3, r4, r5, r6, r7, lr} - sub sp, #0x30 - ldr r6, [sp, #0x58] - add r5, r1, #0 - str r6, [sp] - mov r1, #1 - add r7, r0, #0 - str r1, [sp, #4] - mov r0, #4 - str r0, [sp, #8] - mov r0, #0x4b - str r1, [sp, #0xc] - lsl r0, r0, #2 - add r4, r2, #0 - str r3, [sp, #0x2c] - ldr r0, [r5, r0] - ldr r2, [sp, #0x4c] - add r1, r7, #0 - mov r3, #0 - bl sub_02009AA8 - str r0, [r4, #0] - str r6, [sp] - mov r0, #1 - str r0, [sp, #4] - ldr r0, [sp, #0x48] - ldr r2, [sp, #0x2c] - str r0, [sp, #8] - mov r0, #4 - str r0, [sp, #0xc] - mov r0, #0x13 - lsl r0, r0, #4 - ldr r0, [r5, r0] - add r1, r7, #0 - mov r3, #0 - bl sub_02009B04 - str r0, [r4, #4] - str r6, [sp] - mov r0, #2 - str r0, [sp, #4] - mov r0, #4 - str r0, [sp, #8] - mov r0, #0x4d - lsl r0, r0, #2 - ldr r0, [r5, r0] - ldr r2, [sp, #0x50] - add r1, r7, #0 - mov r3, #0 - bl sub_02009BC4 - str r0, [r4, #8] - str r6, [sp] - mov r0, #3 - str r0, [sp, #4] - mov r0, #4 - str r0, [sp, #8] - mov r0, #0x4e - lsl r0, r0, #2 - ldr r0, [r5, r0] - ldr r2, [sp, #0x54] - add r1, r7, #0 - mov r3, #0 - bl sub_02009BC4 - str r0, [r4, #0xc] - ldr r0, [r4, #0] - bl sub_0200A3DC - ldr r0, [r4, #0] - bl sub_02009D4C - ldr r0, [r4, #4] - bl sub_0200A640 - mov r0, #0 - mov r2, #0x4b - str r6, [sp] - mvn r0, r0 - str r0, [sp, #4] - str r0, [sp, #8] - mov r0, #0 - str r0, [sp, #0xc] - str r0, [sp, #0x10] - lsl r2, r2, #2 - ldr r1, [r5, r2] - add r4, #0x10 - str r1, [sp, #0x14] - add r1, r2, #4 - ldr r1, [r5, r1] - add r3, r6, #0 - str r1, [sp, #0x18] - add r1, r2, #0 - add r1, #8 - ldr r1, [r5, r1] - add r2, #0xc - str r1, [sp, #0x1c] - ldr r1, [r5, r2] - add r2, r6, #0 - str r1, [sp, #0x20] - str r0, [sp, #0x24] - str r0, [sp, #0x28] - add r0, r4, #0 - add r1, r6, #0 - bl sub_020093B4 - add sp, #0x30 - pop {r3, r4, r5, r6, r7, pc} - thumb_func_end ov5_021DE4CC - - thumb_func_start ov5_021DE5A4 -ov5_021DE5A4: ; 0x021DE5A4 - push {r3, r4, r5, r6, r7, lr} - add r4, r1, #0 - add r5, r0, #0 - ldr r0, [r4, #0] - bl sub_0200A4E4 - ldr r0, [r4, #4] - bl sub_0200A6DC - mov r7, #0x4b - mov r6, #0 - lsl r7, r7, #2 -_021DE5BC: - ldr r0, [r5, r7] - ldr r1, [r4, #0] - bl sub_02009D68 - add r6, r6, #1 - add r4, r4, #4 - add r5, r5, #4 - cmp r6, #4 - blt _021DE5BC - pop {r3, r4, r5, r6, r7, pc} - thumb_func_end ov5_021DE5A4 - - thumb_func_start ov5_021DE5D0 -ov5_021DE5D0: ; 0x021DE5D0 - push {r3, r4, r5, r6, r7, lr} - sub sp, #0x20 - add r6, r0, #0 - add r4, r1, #0 - add r0, r2, #0 - mov r1, #2 - add r2, sp, #8 - add r7, r3, #0 - bl sub_02076AAC - add r0, r4, #0 - mov r1, #0x20 - bl sub_02018144 - add r5, r0, #0 - ldr r0, [sp, #8] - ldr r1, [sp, #0x10] - add r2, sp, #4 - add r3, r4, #0 - bl sub_02006F88 - add r4, r0, #0 - add r0, sp, #0x28 - ldrh r0, [r0, #0x10] - add r1, r5, #0 - mov r2, #0x10 - str r0, [sp] - ldr r0, [sp, #4] - add r3, r7, #0 - ldr r0, [r0, #0xc] - bl sub_0200393C - add r0, r6, #0 - add r1, r5, #0 - mov r2, #0x20 - bl ov5_021DE67C - add r0, r5, #0 - bl sub_020181C4 - add r0, r4, #0 - bl sub_020181C4 - add sp, #0x20 - pop {r3, r4, r5, r6, r7, pc} - ; .align 2, 0 - thumb_func_end ov5_021DE5D0 - - thumb_func_start ov5_021DE62C -ov5_021DE62C: ; 0x021DE62C - push {r4, lr} - sub sp, #0x20 - ldr r0, [r0, #0] - add r1, #0x10 - str r0, [sp] - ldr r0, [sp, #0x28] - str r1, [sp, #4] - str r0, [sp, #0x10] - ldr r0, [sp, #0x2c] - str r2, [sp, #8] - str r0, [sp, #0x14] - mov r0, #1 - str r0, [sp, #0x18] - mov r0, #4 - str r0, [sp, #0x1c] - add r0, sp, #0 - str r3, [sp, #0xc] - bl sub_02021B90 - add r4, r0, #0 - bne _021DE65A - bl GF_AssertFail -_021DE65A: - add r0, r4, #0 - add sp, #0x20 - pop {r4, pc} - thumb_func_end ov5_021DE62C - - thumb_func_start ov5_021DE660 -ov5_021DE660: ; 0x021DE660 - push {r4} - sub sp, #0xc - str r2, [sp, #4] - str r3, [sp, #8] - add r2, sp, #0 - add r4, r0, #0 - str r1, [sp] - ldmia r2!, {r0, r1} - stmia r4!, {r0, r1} - ldr r0, [r2, #0] - str r0, [r4, #0] - add sp, #0xc - pop {r4} - bx lr - thumb_func_end ov5_021DE660 - - thumb_func_start ov5_021DE67C -ov5_021DE67C: ; 0x021DE67C - push {r4, r5, r6, lr} - add r5, r1, #0 - add r4, r2, #0 - bl sub_02021F9C - add r6, r0, #0 - add r0, r5, #0 - add r1, r4, #0 - bl DC_FlushRange - add r0, r6, #0 - mov r1, #1 - bl NNS_G2dGetImagePaletteLocation - add r1, r0, #0 - add r0, r5, #0 - add r2, r4, #0 - bl GX_LoadOBJPltt - pop {r4, r5, r6, pc} - thumb_func_end ov5_021DE67C - - thumb_func_start ov5_021DE6A4 -ov5_021DE6A4: ; 0x021DE6A4 - push {r4, lr} - mov r1, #0x30 - bl sub_02018144 - mov r1, #0 - mov r2, #0x30 - add r4, r0, #0 - bl memset - add r0, r4, #0 - pop {r4, pc} - ; .align 2, 0 - thumb_func_end ov5_021DE6A4 - - thumb_func_start ov5_021DE6BC -ov5_021DE6BC: ; 0x021DE6BC - ldr r3, _021DE6C0 ; =sub_020181C4 - bx r3 - ; .align 2, 0 -_021DE6C0: .word sub_020181C4 - thumb_func_end ov5_021DE6BC - - thumb_func_start ov5_021DE6C4 -ov5_021DE6C4: ; 0x021DE6C4 - push {r3, r4, r5, r6, r7, lr} - add r5, r0, #0 - add r0, #0x2e - ldrb r0, [r0] - add r4, r1, #0 - add r6, r2, #0 - add r7, r3, #0 - cmp r0, #0 - beq _021DE6DA - bl GF_AssertFail -_021DE6DA: - ldr r3, [sp, #0x1c] - add r0, r5, #0 - add r1, r4, #0 - add r2, r6, #0 - bl ov5_021DDD80 - add r0, r5, #0 - ldr r2, [sp, #0x18] - ldr r3, [sp, #0x1c] - add r0, #0x14 - add r1, r7, #0 - bl ov5_021DDD80 - ldr r0, [sp, #0x20] - ldr r1, [sp, #0x24] - str r0, [r5, #0x28] - add r0, r5, #0 - add r0, #0x2c - strb r1, [r0] - add r0, r5, #0 - ldr r1, [sp, #0x28] - add r0, #0x2d - strb r1, [r0] - add r0, sp, #0x2c - ldrb r1, [r0] - add r0, r5, #0 - add r0, #0x2f - strb r1, [r0] - mov r0, #1 - add r5, #0x2e - strb r0, [r5] - pop {r3, r4, r5, r6, r7, pc} - ; .align 2, 0 - thumb_func_end ov5_021DE6C4 - - thumb_func_start ov5_021DE71C -ov5_021DE71C: ; 0x021DE71C - push {r4, r5, r6, lr} - sub sp, #8 - add r5, r0, #0 - add r1, r5, #0 - add r1, #0x2e - ldrb r1, [r1] - cmp r1, #0 - bne _021DE732 - add sp, #8 - mov r0, #1 - pop {r4, r5, r6, pc} -_021DE732: - bl ov5_021DDD90 - add r4, r0, #0 - add r0, r5, #0 - add r0, #0x14 - bl ov5_021DDD90 - add r0, r5, #0 - add r0, #0x2c - ldrb r0, [r0] - ldr r2, [r5, #0] - ldr r6, [r5, #0x14] - lsr r1, r0, #1 - sub r1, r2, r1 - lsl r1, r1, #0x10 - asr r3, r1, #0x10 - add r1, r5, #0 - add r1, #0x2d - ldrb r2, [r1] - add r0, r3, r0 - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - lsr r1, r2, #1 - str r0, [sp] - add r0, r5, #0 - sub r1, r6, r1 - add r0, #0x2f - lsl r1, r1, #0x10 - ldrb r0, [r0] - asr r1, r1, #0x10 - add r2, r1, r2 - str r0, [sp, #4] - lsl r2, r2, #0x10 - ldr r0, [r5, #0x28] - asr r2, r2, #0x10 - bl ov5_021DE89C - add r0, r4, #0 - add sp, #8 - pop {r4, r5, r6, pc} - ; .align 2, 0 - thumb_func_end ov5_021DE71C - - thumb_func_start ov5_021DE784 -ov5_021DE784: ; 0x021DE784 - push {r4, lr} - mov r1, #0x30 - bl sub_02018144 - mov r1, #0 - mov r2, #0x30 - add r4, r0, #0 - bl memset - add r0, r4, #0 - pop {r4, pc} - ; .align 2, 0 - thumb_func_end ov5_021DE784 - - thumb_func_start ov5_021DE79C -ov5_021DE79C: ; 0x021DE79C - ldr r3, _021DE7A0 ; =sub_020181C4 - bx r3 - ; .align 2, 0 -_021DE7A0: .word sub_020181C4 - thumb_func_end ov5_021DE79C - - thumb_func_start ov5_021DE7A4 -ov5_021DE7A4: ; 0x021DE7A4 - push {r3, r4, r5, r6, r7, lr} - add r5, r0, #0 - add r0, #0x2e - ldrb r0, [r0] - add r4, r1, #0 - add r6, r2, #0 - add r7, r3, #0 - cmp r0, #0 - beq _021DE7BA - bl GF_AssertFail -_021DE7BA: - ldr r3, [sp, #0x1c] - add r0, r5, #0 - add r1, r4, #0 - add r2, r6, #0 - bl ov5_021DDD80 - add r0, r5, #0 - ldr r2, [sp, #0x18] - ldr r3, [sp, #0x1c] - add r0, #0x14 - add r1, r7, #0 - bl ov5_021DDD80 - ldr r0, [sp, #0x20] - ldr r1, [sp, #0x24] - str r0, [r5, #0x28] - add r0, r5, #0 - add r0, #0x2c - strb r1, [r0] - add r0, r5, #0 - ldr r1, [sp, #0x28] - add r0, #0x2d - strb r1, [r0] - add r0, sp, #0x2c - ldrb r1, [r0] - add r0, r5, #0 - add r0, #0x2f - strb r1, [r0] - mov r0, #1 - add r5, #0x2e - strb r0, [r5] - pop {r3, r4, r5, r6, r7, pc} - ; .align 2, 0 - thumb_func_end ov5_021DE7A4 - - thumb_func_start ov5_021DE7FC -ov5_021DE7FC: ; 0x021DE7FC - push {r4, r5, r6, lr} - sub sp, #8 - add r5, r0, #0 - add r0, #0x2e - ldrb r0, [r0] - cmp r0, #0 - bne _021DE810 - add sp, #8 - mov r0, #1 - pop {r4, r5, r6, pc} -_021DE810: - add r0, r5, #0 - add r0, #0x2c - ldrb r0, [r0] - ldr r2, [r5, #0] - ldr r4, [r5, #0x14] - lsr r1, r0, #1 - sub r1, r2, r1 - lsl r1, r1, #0x10 - asr r3, r1, #0x10 - add r1, r5, #0 - add r1, #0x2d - ldrb r2, [r1] - add r0, r3, r0 - lsl r0, r0, #0x10 - lsr r1, r2, #1 - sub r1, r4, r1 - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - asr r0, r0, #0x10 - str r0, [sp] - mov r0, #0 - add r2, r1, r2 - str r0, [sp, #4] - lsl r2, r2, #0x10 - ldr r0, [r5, #0x28] - asr r2, r2, #0x10 - bl ov5_021DE89C - add r0, r5, #0 - bl ov5_021DDD90 - add r4, r0, #0 - add r0, r5, #0 - add r0, #0x14 - bl ov5_021DDD90 - add r0, r5, #0 - add r0, #0x2c - ldrb r0, [r0] - ldr r2, [r5, #0] - ldr r6, [r5, #0x14] - lsr r1, r0, #1 - sub r1, r2, r1 - lsl r1, r1, #0x10 - asr r3, r1, #0x10 - add r1, r5, #0 - add r1, #0x2d - ldrb r2, [r1] - add r0, r3, r0 - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - lsr r1, r2, #1 - str r0, [sp] - add r0, r5, #0 - sub r1, r6, r1 - add r0, #0x2f - lsl r1, r1, #0x10 - ldrb r0, [r0] - asr r1, r1, #0x10 - add r2, r1, r2 - str r0, [sp, #4] - lsl r2, r2, #0x10 - ldr r0, [r5, #0x28] - asr r2, r2, #0x10 - bl ov5_021DE89C - add r0, r4, #0 - add sp, #8 - pop {r4, r5, r6, pc} - ; .align 2, 0 - thumb_func_end ov5_021DE7FC - - thumb_func_start ov5_021DE89C -ov5_021DE89C: ; 0x021DE89C - push {r3, r4, r5, lr} - sub sp, #8 - ldr r5, [sp, #0x18] - add r4, r1, #0 - cmp r5, #0 - ble _021DE8F4 - cmp r2, #0 - ble _021DE8F4 - cmp r3, r5 - beq _021DE8F4 - cmp r4, r2 - beq _021DE8F4 - cmp r3, #0 - bge _021DE8BA - mov r3, #0 -_021DE8BA: - mov r1, #1 - lsl r1, r1, #8 - cmp r5, r1 - ble _021DE8C4 - add r5, r1, #0 -_021DE8C4: - cmp r4, #0 - bge _021DE8CA - mov r4, #0 -_021DE8CA: - mov r1, #1 - lsl r1, r1, #8 - cmp r2, r1 - ble _021DE8D4 - add r2, r1, #0 -_021DE8D4: - sub r1, r5, r3 - lsl r1, r1, #0x10 - lsr r1, r1, #0x10 - str r1, [sp] - sub r1, r2, r4 - lsl r1, r1, #0x10 - lsr r1, r1, #0x10 - str r1, [sp, #4] - lsl r2, r3, #0x10 - add r1, sp, #8 - lsl r3, r4, #0x10 - ldrb r1, [r1, #0x14] - lsr r2, r2, #0x10 - lsr r3, r3, #0x10 - bl sub_0201AE78 -_021DE8F4: - add sp, #8 - pop {r3, r4, r5, pc} - thumb_func_end ov5_021DE89C - - thumb_func_start ov5_021DE8F8 -ov5_021DE8F8: ; 0x021DE8F8 - push {r3, r4, r5, r6, r7, lr} - add r6, r0, #0 - mov r0, #4 - mov r1, #0xcc - bl sub_02018144 - mov r1, #0 - mov r2, #0xcc - add r7, r0, #0 - bl memset - mov r4, #0 - add r5, r7, #0 -_021DE912: - add r0, r6, #0 - bl ov5_021DE784 - str r0, [r5, #4] - add r4, r4, #1 - add r5, r5, #4 - cmp r4, #0x30 - blt _021DE912 - add r0, r7, #0 - pop {r3, r4, r5, r6, r7, pc} - ; .align 2, 0 - thumb_func_end ov5_021DE8F8 - - thumb_func_start ov5_021DE928 -ov5_021DE928: ; 0x021DE928 - push {r4, r5, r6, lr} - add r6, r0, #0 - mov r4, #0 - add r5, r6, #0 -_021DE930: - ldr r0, [r5, #4] - bl ov5_021DE79C - add r4, r4, #1 - add r5, r5, #4 - cmp r4, #0x30 - blt _021DE930 - add r0, r6, #0 - bl sub_020181C4 - pop {r4, r5, r6, pc} - ; .align 2, 0 - thumb_func_end ov5_021DE928 - - thumb_func_start ov5_021DE948 -ov5_021DE948: ; 0x021DE948 - push {r3, r4} - str r3, [r0, #0] - ldr r3, _021DE984 ; =0xFFFFFFF8 - add r3, sp - ldrb r4, [r3, #0x10] - add r3, r0, #0 - add r3, #0xc9 - strb r4, [r3] - add r3, r0, #0 - add r3, #0xc6 - strb r1, [r3] - add r1, r0, #0 - add r1, #0xc7 - strb r2, [r1] - add r1, r0, #0 - mov r2, #0 - add r1, #0xc4 - strb r2, [r1] - add r1, r0, #0 - add r1, #0xc5 - strb r2, [r1] - add r1, r0, #0 - add r1, #0xc8 - strb r2, [r1] - mov r1, #1 - add r0, #0xca - strb r1, [r0] - pop {r3, r4} - bx lr - nop -_021DE984: .word 0xFFFFFFF8 - thumb_func_end ov5_021DE948 - - thumb_func_start ov5_021DE988 -ov5_021DE988: ; 0x021DE988 - push {r4, r5, r6, r7, lr} - sub sp, #0x1c - add r6, r0, #0 - add r0, #0xca - ldrb r0, [r0] - cmp r0, #0 - bne _021DE99C - add sp, #0x1c - mov r0, #1 - pop {r4, r5, r6, r7, pc} -_021DE99C: - add r0, r6, #0 - add r0, #0xc4 - ldrb r0, [r0] - cmp r0, #0x30 - bhs _021DEA20 - mov r1, #0xc8 - ldrsb r0, [r6, r1] - sub r2, r0, #1 - add r0, r6, #0 - add r0, #0xc8 - strb r2, [r0] - ldrsb r0, [r6, r1] - cmp r0, #0 - bgt _021DEA20 - add r0, r6, #0 - add r0, #0xc7 - ldrb r1, [r0] - add r0, r6, #0 - add r0, #0xc8 - strb r1, [r0] - add r0, r6, #0 - add r0, #0xc4 - ldrb r0, [r0] - mov r1, #0x1d - lsr r3, r0, #0x1f - lsl r2, r0, #0x1d - sub r2, r2, r3 - ror r2, r1 - add r2, r3, r2 - ldr r1, _021DEA7C ; =0x021F9988 - mov r3, #0x20 - ldrb r1, [r1, r2] - lsr r2, r0, #3 - lsl r4, r2, #5 - mov r2, #0xb0 - sub r2, r2, r4 - str r2, [sp] - add r2, r6, #0 - add r2, #0xc6 - ldrb r2, [r2] - lsl r0, r0, #2 - lsl r1, r1, #5 - str r2, [sp, #4] - ldr r2, [r6, #0] - add r0, r6, r0 - str r2, [sp, #8] - str r3, [sp, #0xc] - add r2, r6, #0 - str r3, [sp, #0x10] - add r2, #0xc9 - ldrb r2, [r2] - sub r3, #0x30 - add r1, #0x10 - str r2, [sp, #0x14] - ldr r0, [r0, #4] - add r2, r1, #0 - sub r3, r3, r4 - bl ov5_021DE7A4 - add r0, r6, #0 - add r0, #0xc4 - ldrb r0, [r0] - add r1, r0, #1 - add r0, r6, #0 - add r0, #0xc4 - strb r1, [r0] -_021DEA20: - add r0, r6, #0 - add r0, #0xc5 - ldrb r4, [r0] - add r0, r6, #0 - add r0, #0xc4 - ldrb r0, [r0] - cmp r4, r0 - bge _021DEA58 - lsl r0, r4, #2 - add r7, r6, #0 - add r5, r6, r0 - add r7, #0xc5 -_021DEA38: - ldr r0, [r5, #4] - bl ov5_021DE7FC - str r0, [sp, #0x18] - cmp r0, #1 - bne _021DEA4A - ldrb r0, [r7] - add r0, r0, #1 - strb r0, [r7] -_021DEA4A: - add r0, r6, #0 - add r0, #0xc4 - ldrb r0, [r0] - add r4, r4, #1 - add r5, r5, #4 - cmp r4, r0 - blt _021DEA38 -_021DEA58: - add r0, r6, #0 - add r0, #0xc5 - ldrb r0, [r0] - cmp r0, #0x30 - blo _021DEA74 - ldr r0, [sp, #0x18] - cmp r0, #1 - bne _021DEA74 - mov r0, #0 - add r6, #0xca - strb r0, [r6] - add sp, #0x1c - mov r0, #1 - pop {r4, r5, r6, r7, pc} -_021DEA74: - mov r0, #0 - add sp, #0x1c - pop {r4, r5, r6, r7, pc} - nop -_021DEA7C: .word 0x021F9988 - thumb_func_end ov5_021DE988 - - thumb_func_start ov5_021DEA80 -ov5_021DEA80: ; 0x021DEA80 - push {r3, lr} - mov r1, #0x1c - bl sub_02018144 - add r3, r0, #0 - mov r2, #0x1c - mov r1, #0 -_021DEA8E: - strb r1, [r3] - add r3, r3, #1 - sub r2, r2, #1 - bne _021DEA8E - pop {r3, pc} - thumb_func_end ov5_021DEA80 - - thumb_func_start ov5_021DEA98 -ov5_021DEA98: ; 0x021DEA98 - ldr r3, _021DEA9C ; =sub_020181C4 - bx r3 - ; .align 2, 0 -_021DEA9C: .word sub_020181C4 - thumb_func_end ov5_021DEA98 - - thumb_func_start ov5_021DEAA0 -ov5_021DEAA0: ; 0x021DEAA0 - push {r4, lr} - add r4, r1, #0 - ldr r1, [sp, #8] - str r1, [r0, #0] - ldr r1, _021DEAC4 ; =0xFFFFFFF8 - add r1, sp - ldrb r1, [r1, #0x14] - strb r1, [r0, #0x19] - mov r1, #1 - strb r1, [r0, #0x18] - add r1, r2, #0 - add r2, r3, #0 - add r0, r0, #4 - add r3, r4, #0 - bl ov5_021DDD80 - pop {r4, pc} - nop -_021DEAC4: .word 0xFFFFFFF8 - thumb_func_end ov5_021DEAA0 - - thumb_func_start ov5_021DEAC8 -ov5_021DEAC8: ; 0x021DEAC8 - push {r4, r5, r6, lr} - add r5, r0, #0 - ldrb r0, [r5, #0x18] - cmp r0, #0 - bne _021DEAD6 - mov r0, #1 - pop {r4, r5, r6, pc} -_021DEAD6: - ldr r0, [r5, #4] - lsl r0, r0, #0x10 - lsr r4, r0, #0x10 - add r0, r5, #4 - bl ov5_021DDD90 - ldr r2, [r5, #4] - add r6, r0, #0 - lsl r2, r2, #0x10 - ldrb r3, [r5, #0x19] - ldr r0, [r5, #0] - add r1, r4, #0 - lsr r2, r2, #0x10 - bl ov5_021DEB04 - cmp r6, #1 - bne _021DEB00 - mov r0, #0 - strb r0, [r5, #0x18] - mov r0, #1 - pop {r4, r5, r6, pc} -_021DEB00: - mov r0, #0 - pop {r4, r5, r6, pc} - thumb_func_end ov5_021DEAC8 - - thumb_func_start ov5_021DEB04 -ov5_021DEB04: ; 0x021DEB04 - push {r3, r4, r5, r6, r7, lr} - sub sp, #0x20 - str r0, [sp, #8] - asr r0, r2, #4 - add r4, r1, #0 - lsl r1, r0, #1 - lsl r0, r1, #1 - ldr r2, _021DEBE4 ; =0x020F983C - add r1, r1, #1 - lsl r1, r1, #1 - ldrsh r0, [r2, r0] - ldrsh r1, [r2, r1] - add r7, r3, #0 - bl FX_Div - str r0, [sp, #0x14] - asr r0, r4, #4 - lsl r1, r0, #1 - lsl r0, r1, #1 - ldr r2, _021DEBE4 ; =0x020F983C - add r1, r1, #1 - lsl r1, r1, #1 - ldrsh r0, [r2, r0] - ldrsh r1, [r2, r1] - bl FX_Div - str r0, [sp, #0xc] - ldr r0, [sp, #0x14] - mov r5, #0 - asr r0, r0, #0x1f - str r0, [sp, #0x18] - ldr r0, [sp, #0xc] - asr r0, r0, #0x1f - str r0, [sp, #0x10] -_021DEB48: - mov r0, #0x5f - sub r0, r0, r5 - lsl r6, r0, #0xc - asr r4, r6, #0x1f - ldr r0, [sp, #0x14] - ldr r1, [sp, #0x18] - add r2, r6, #0 - add r3, r4, #0 - bl _ull_mul - mov r2, #2 - lsl r2, r2, #0xa - add r0, r0, r2 - ldr r2, _021DEBE8 ; =0x00000000 - adc r1, r2 - lsl r1, r1, #0x14 - lsr r0, r0, #0xc - orr r0, r1 - asr r0, r0, #0xc - str r0, [sp, #0x1c] - ldr r0, [sp, #0xc] - ldr r1, [sp, #0x10] - add r2, r6, #0 - add r3, r4, #0 - bl _ull_mul - mov r2, #2 - lsl r2, r2, #0xa - add r2, r0, r2 - ldr r0, _021DEBE8 ; =0x00000000 - ldr r4, [sp, #0x1c] - adc r1, r0 - lsl r0, r1, #0x14 - lsr r1, r2, #0xc - orr r1, r0 - asr r0, r1, #0xc - add r6, r0, #0 - mov r2, #0x80 - ldr r1, [sp, #0x1c] - sub r0, r2, r0 - sub r1, r2, r1 - add r4, #0x80 - add r6, #0x80 - add r3, r0, #0 - cmp r0, r1 - ble _021DEBA8 - add r3, r1, #0 - add r1, r0, #0 -_021DEBA8: - cmp r6, r4 - ble _021DEBB2 - add r0, r6, #0 - add r6, r4, #0 - add r4, r0, #0 -_021DEBB2: - add r0, r1, #1 - str r0, [sp] - ldr r0, [sp, #8] - add r1, r5, #0 - add r2, r5, #1 - str r7, [sp, #4] - bl ov5_021DE89C - add r0, r4, #1 - str r0, [sp] - mov r1, #0xbf - mov r2, #0xc0 - ldr r0, [sp, #8] - sub r1, r1, r5 - sub r2, r2, r5 - add r3, r6, #0 - str r7, [sp, #4] - bl ov5_021DE89C - add r5, r5, #1 - cmp r5, #0x60 - blt _021DEB48 - add sp, #0x20 - pop {r3, r4, r5, r6, r7, pc} - nop -_021DEBE4: .word 0x020F983C -_021DEBE8: .word 0x00000000 - thumb_func_end ov5_021DEB04 - - thumb_func_start ov5_021DEBEC -ov5_021DEBEC: ; 0x021DEBEC - push {r3, r4, r5, r6, r7, lr} - mov r1, #0x24 - add r6, r0, #0 - bl sub_02018144 - mov r1, #0 - mov r2, #0x24 - add r7, r0, #0 - bl memset - mov r4, #0 - add r5, r7, #0 -_021DEC04: - add r0, r6, #0 - bl ov5_021DEA80 - add r4, r4, #1 - stmia r5!, {r0} - cmp r4, #8 - blt _021DEC04 - add r0, r7, #0 - pop {r3, r4, r5, r6, r7, pc} - ; .align 2, 0 - thumb_func_end ov5_021DEBEC - - thumb_func_start ov5_021DEC18 -ov5_021DEC18: ; 0x021DEC18 - push {r4, r5, r6, lr} - add r6, r0, #0 - mov r4, #0 - add r5, r6, #0 -_021DEC20: - ldr r0, [r5, #0] - bl ov5_021DEA98 - add r4, r4, #1 - add r5, r5, #4 - cmp r4, #8 - blt _021DEC20 - add r0, r6, #0 - bl sub_020181C4 - pop {r4, r5, r6, pc} - ; .align 2, 0 - thumb_func_end ov5_021DEC18 - - thumb_func_start ov5_021DEC38 -ov5_021DEC38: ; 0x021DEC38 - push {r3, r4, r5, r6, r7, lr} - sub sp, #0x18 - str r1, [sp, #0xc] - ldr r4, _021DECB0 ; =0x021F9A2C - str r0, [sp, #8] - str r2, [sp, #0x10] - str r3, [sp, #0x14] - mov r6, #0 - add r5, r0, #0 -_021DEC4A: - ldrh r1, [r4] - ldr r0, _021DECB4 ; =0x0000FFFF - mul r0, r1 - mov r1, #0x5a - lsl r1, r1, #2 - bl _s32_div_f - add r7, r0, #0 - ldrh r1, [r4, #2] - ldr r0, _021DECB4 ; =0x0000FFFF - mul r0, r1 - mov r1, #0x5a - lsl r1, r1, #2 - bl _s32_div_f - add r3, r0, #0 - ldr r0, [sp, #0x10] - lsl r2, r7, #0x10 - str r0, [sp] - ldr r0, [sp, #0x14] - lsl r3, r3, #0x10 - str r0, [sp, #4] - ldr r0, [r5, #0] - ldr r1, [sp, #0xc] - lsr r2, r2, #0x10 - lsr r3, r3, #0x10 - bl ov5_021DEAA0 - add r6, r6, #1 - add r4, r4, #4 - add r5, r5, #4 - cmp r6, #8 - blt _021DEC4A - ldr r0, [sp, #8] - mov r1, #1 - add r0, #0x20 - strb r1, [r0] - add r1, #0xff - str r1, [sp] - str r0, [sp, #8] - ldr r0, [sp, #0x14] - mov r1, #0x5d - str r0, [sp, #4] - ldr r0, [sp, #0x10] - mov r2, #0x63 - mov r3, #0 - bl ov5_021DE89C - add sp, #0x18 - pop {r3, r4, r5, r6, r7, pc} - nop -_021DECB0: .word 0x021F9A2C -_021DECB4: .word 0x0000FFFF - thumb_func_end ov5_021DEC38 - - thumb_func_start ov5_021DECB8 -ov5_021DECB8: ; 0x021DECB8 - push {r4, r5, r6, lr} - add r6, r0, #0 - add r0, #0x20 - ldrb r0, [r0] - cmp r0, #0 - bne _021DECC8 - mov r0, #1 - pop {r4, r5, r6, pc} -_021DECC8: - mov r4, #0 - add r5, r6, #0 -_021DECCC: - ldr r0, [r5, #0] - bl ov5_021DEAC8 - add r4, r4, #1 - add r5, r5, #4 - cmp r4, #8 - blt _021DECCC - cmp r0, #1 - bne _021DECE8 - mov r0, #0 - add r6, #0x20 - strb r0, [r6] - mov r0, #1 - pop {r4, r5, r6, pc} -_021DECE8: - mov r0, #0 - pop {r4, r5, r6, pc} - thumb_func_end ov5_021DECB8 - - thumb_func_start ov5_021DECEC -ov5_021DECEC: ; 0x021DECEC - push {r4, lr} - mov r0, #4 - mov r1, #0xe8 - bl sub_02018144 - mov r1, #0 - mov r2, #0xe8 - add r4, r0, #0 - bl memset - add r0, r4, #0 - pop {r4, pc} - thumb_func_end ov5_021DECEC - - thumb_func_start ov5_021DED04 -ov5_021DED04: ; 0x021DED04 - push {r4, lr} - add r4, r0, #0 - add r1, r4, #0 - add r1, #0xe0 - ldr r1, [r1, #0] - cmp r1, #0 - beq _021DED16 - bl ov5_021DEE84 -_021DED16: - add r0, r4, #0 - bl sub_020181C4 - pop {r4, pc} - ; .align 2, 0 - thumb_func_end ov5_021DED04 - - thumb_func_start ov5_021DED20 -ov5_021DED20: ; 0x021DED20 - push {r3, r4, r5, r6, r7, lr} - add r4, r0, #0 - ldr r0, [sp, #0x18] - add r7, r1, #0 - str r0, [sp, #0x18] - add r0, r7, #0 - add r0, #0xe0 - ldr r0, [r0, #0] - add r6, r2, #0 - add r5, r3, #0 - cmp r0, #0 - beq _021DED3C - bl GF_AssertFail -_021DED3C: - mov r2, #0 - str r2, [r4, #0x18] - ldr r0, [r4, #0x10] - add r4, #0x18 - ldr r0, [r0, #4] - add r3, r6, #0 - ldr r1, [r0, #0x1c] - add r0, r7, #0 - add r0, #0xd8 - str r1, [r0, #0] - add r0, r7, #0 - str r2, [r7, #0x14] - add r0, #0xe4 - str r4, [r0, #0] - add r0, r7, #0 - mov r1, #0xff - bl ov5_021DDD80 - mov r4, #0 -_021DED62: - add r0, r4, #0 - add r1, r5, #0 - bl _u32_div_f - ldr r0, [sp, #0x18] - mul r0, r1 - add r1, r5, #0 - bl _u32_div_f - add r6, r0, #0 - add r0, r4, #0 - add r1, r5, #0 - bl _u32_div_f - mov r1, #1 - tst r0, r1 - bne _021DED8A - add r0, r7, r4 - strb r6, [r0, #0x18] - b _021DED92 -_021DED8A: - ldr r0, [sp, #0x18] - sub r1, r0, r6 - add r0, r7, r4 - strb r1, [r0, #0x18] -_021DED92: - add r4, r4, #1 - cmp r4, #0xc0 - blt _021DED62 - ldr r0, _021DEDDC ; =0x04000048 - mov r1, #0x3f - ldrh r3, [r0] - ldr r2, [sp, #0x1c] - bic r3, r1 - orr r3, r2 - mov r2, #0x20 - orr r3, r2 - strh r3, [r0] - ldrh r3, [r0, #2] - bic r3, r1 - ldr r1, [sp, #0x20] - orr r1, r3 - strh r1, [r0, #2] - add r1, r0, #0 - mov r3, #0 - sub r1, #8 - strh r3, [r1] - mov r1, #0xc0 - sub r0, r0, #4 - strh r1, [r0] - lsl r3, r2, #0x15 - ldr r1, [r3, #0] - ldr r0, _021DEDE0 ; =0xFFFF1FFF - and r1, r0 - lsl r0, r2, #8 - orr r0, r1 - str r0, [r3, #0] - ldr r0, _021DEDE4 ; =ov5_021DEDE8 - add r1, r7, #0 - lsl r2, r2, #5 - bl sub_0200DA3C - pop {r3, r4, r5, r6, r7, pc} - ; .align 2, 0 -_021DEDDC: .word 0x04000048 -_021DEDE0: .word 0xFFFF1FFF -_021DEDE4: .word ov5_021DEDE8 - thumb_func_end ov5_021DED20 - - thumb_func_start ov5_021DEDE8 -ov5_021DEDE8: ; 0x021DEDE8 - push {r3, r4, r5, lr} - add r4, r1, #0 - add r5, r0, #0 - add r0, r4, #0 - add r0, #0xd8 - ldr r0, [r0, #0] - ldr r1, _021DEE1C ; =ov5_021DEE50 - add r2, r4, #0 - bl ov5_021EF418 - add r1, r4, #0 - add r1, #0xdc - str r0, [r1, #0] - mov r2, #1 - ldr r0, _021DEE20 ; =ov5_021DEE24 - add r1, r4, #0 - lsl r2, r2, #0xa - bl sub_0200DA3C - add r4, #0xe0 - str r0, [r4, #0] - add r0, r5, #0 - bl sub_0200DA58 - pop {r3, r4, r5, pc} - nop -_021DEE1C: .word ov5_021DEE50 -_021DEE20: .word ov5_021DEE24 - thumb_func_end ov5_021DEDE8 - - thumb_func_start ov5_021DEE24 -ov5_021DEE24: ; 0x021DEE24 - push {r4, lr} - add r4, r1, #0 - ldr r0, [r4, #0x14] - cmp r0, #0 - beq _021DEE34 - cmp r0, #1 - beq _021DEE46 - pop {r4, pc} -_021DEE34: - add r0, r4, #0 - bl ov5_021DDD90 - cmp r0, #1 - bne _021DEE4C - ldr r0, [r4, #0x14] - add r0, r0, #1 - str r0, [r4, #0x14] - pop {r4, pc} -_021DEE46: - add r0, r4, #0 - bl ov5_021DEE84 -_021DEE4C: - pop {r4, pc} - ; .align 2, 0 - thumb_func_end ov5_021DEE24 - - thumb_func_start ov5_021DEE50 -ov5_021DEE50: ; 0x021DEE50 - ldr r0, _021DEE7C ; =0x04000006 - ldrh r0, [r0] - cmp r0, #0xc0 - bge _021DEE78 - add r0, r1, r0 - ldrb r0, [r0, #0x18] - ldr r2, [r1, #0] - sub r0, r2, r0 - bpl _021DEE64 - mov r0, #0 -_021DEE64: - lsl r1, r0, #8 - mov r0, #0xff - lsl r0, r0, #8 - and r1, r0 - mov r0, #0xff - orr r0, r1 - ldr r1, _021DEE80 ; =0x04000040 - strh r0, [r1] - mov r0, #0xc0 - strh r0, [r1, #4] -_021DEE78: - bx lr - nop -_021DEE7C: .word 0x04000006 -_021DEE80: .word 0x04000040 - thumb_func_end ov5_021DEE50 - - thumb_func_start ov5_021DEE84 -ov5_021DEE84: ; 0x021DEE84 - push {r4, lr} - mov r2, #1 - lsl r2, r2, #0x1a - add r4, r0, #0 - ldr r1, [r2, #0] - ldr r0, _021DEEC4 ; =0xFFFF1FFF - and r0, r1 - str r0, [r2, #0] - add r0, r4, #0 - add r0, #0xe4 - ldr r0, [r0, #0] - mov r1, #1 - str r1, [r0, #0] - add r0, r4, #0 - add r0, #0xdc - ldr r0, [r0, #0] - bl ov5_021EF43C - add r0, r4, #0 - mov r1, #0 - add r0, #0xdc - str r1, [r0, #0] - add r0, r4, #0 - add r0, #0xe0 - ldr r0, [r0, #0] - bl sub_0200DA58 - mov r0, #0 - add r4, #0xe0 - str r0, [r4, #0] - pop {r4, pc} - nop -_021DEEC4: .word 0xFFFF1FFF - thumb_func_end ov5_021DEE84 - - thumb_func_start ov5_021DEEC8 -ov5_021DEEC8: ; 0x021DEEC8 - push {r3, r4, r5, r6, r7, lr} - add r5, r0, #0 - ldr r0, [r5, #0] - mov r6, #1 - add r1, r0, #0 - tst r1, r6 - bne _021DEEEC - mov r1, #0x72 - lsl r1, r1, #4 - tst r1, r0 - bne _021DEEE2 - cmp r0, #0 - bne _021DEEE6 -_021DEEE2: - mov r6, #0 - b _021DEEEC -_021DEEE6: - bl GF_AssertFail - mov r6, #0 -_021DEEEC: - ldr r0, [r5, #4] - bl sub_02054A40 - add r7, r0, #0 - ldr r0, [r5, #8] - bl sub_02054A40 - str r0, [sp] - add r0, r7, #0 - mov r1, #0xa1 - mov r2, #0 - bl sub_02074470 - add r7, r0, #0 - ldr r0, [sp] - mov r1, #0xa1 - mov r2, #0 - bl sub_02074470 - mov r1, #0x55 - lsl r1, r1, #2 - ldr r1, [r5, r1] - sub r0, r0, r7 - cmp r1, #0x18 - bhi _021DEF66 - add r1, r1, r1 - add r1, pc - ldrh r1, [r1, #6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_021DEF2A: ; jump table - .short _021DEF5C - _021DEF2A - 2 ; case 0 - .short _021DEF5C - _021DEF2A - 2 ; case 1 - .short _021DEF5C - _021DEF2A - 2 ; case 2 - .short _021DEF5C - _021DEF2A - 2 ; case 3 - .short _021DEF5C - _021DEF2A - 2 ; case 4 - .short _021DEF64 - _021DEF2A - 2 ; case 5 - .short _021DEF5C - _021DEF2A - 2 ; case 6 - .short _021DEF60 - _021DEF2A - 2 ; case 7 - .short _021DEF5C - _021DEF2A - 2 ; case 8 - .short _021DEF5C - _021DEF2A - 2 ; case 9 - .short _021DEF5C - _021DEF2A - 2 ; case 10 - .short _021DEF5C - _021DEF2A - 2 ; case 11 - .short _021DEF66 - _021DEF2A - 2 ; case 12 - .short _021DEF66 - _021DEF2A - 2 ; case 13 - .short _021DEF66 - _021DEF2A - 2 ; case 14 - .short _021DEF66 - _021DEF2A - 2 ; case 15 - .short _021DEF66 - _021DEF2A - 2 ; case 16 - .short _021DEF66 - _021DEF2A - 2 ; case 17 - .short _021DEF66 - _021DEF2A - 2 ; case 18 - .short _021DEF66 - _021DEF2A - 2 ; case 19 - .short _021DEF66 - _021DEF2A - 2 ; case 20 - .short _021DEF66 - _021DEF2A - 2 ; case 21 - .short _021DEF66 - _021DEF2A - 2 ; case 22 - .short _021DEF66 - _021DEF2A - 2 ; case 23 - .short _021DEF5C - _021DEF2A - 2 ; case 24 -_021DEF5C: - mov r4, #0 - b _021DEF66 -_021DEF60: - mov r4, #2 - b _021DEF66 -_021DEF64: - mov r4, #4 -_021DEF66: - cmp r0, #0 - ble _021DEF6C - add r4, r4, #1 -_021DEF6C: - mov r0, #6 - mul r0, r6 - add r0, r4, r0 - pop {r3, r4, r5, r6, r7, pc} - thumb_func_end ov5_021DEEC8 - - thumb_func_start ov5_021DEF74 -ov5_021DEF74: ; 0x021DEF74 - push {r4, lr} - add r4, r0, #0 - ldr r0, _021DEF88 ; =0x0400006C - ldr r1, [r1, #0] - bl GXx_SetMasterBrightness_ - add r0, r4, #0 - bl sub_0200DA58 - pop {r4, pc} - ; .align 2, 0 -_021DEF88: .word 0x0400006C - thumb_func_end ov5_021DEF74 - - thumb_func_start ov5_021DEF8C -ov5_021DEF8C: ; 0x021DEF8C - ldr r3, _021DEF98 ; =sub_0200DA3C - mov r2, #1 - add r1, r0, #0 - ldr r0, _021DEF9C ; =ov5_021DEF74 - lsl r2, r2, #0xa - bx r3 - ; .align 2, 0 -_021DEF98: .word sub_0200DA3C -_021DEF9C: .word ov5_021DEF74 - thumb_func_end ov5_021DEF8C - - thumb_func_start ov5_021DEFA0 -ov5_021DEFA0: ; 0x021DEFA0 - push {r4, lr} - add r4, r0, #0 - ldr r0, _021DF020 ; =0x02202120 - ldr r0, [r0, #0] - cmp r0, #0 - beq _021DEFB0 - bl GF_AssertFail -_021DEFB0: - mov r0, #4 - mov r1, #0x18 - bl sub_02018144 - ldr r1, _021DF020 ; =0x02202120 - mov r2, #0x18 - str r0, [r1, #0] - mov r1, #0 -_021DEFC0: - strb r1, [r0] - add r0, r0, #1 - sub r2, r2, #1 - bne _021DEFC0 - ldr r0, _021DF020 ; =0x02202120 - mov r1, #0 - ldr r2, [r0, #0] - strh r1, [r2] - ldr r2, [r0, #0] - strb r1, [r2, #2] - ldr r0, [r0, #0] - str r4, [r0, #4] - mov r0, #2 - bl sub_0201FF0C - mov r0, #4 - mov r1, #0 - bl sub_0201FF0C - mov r0, #8 - mov r1, #0 - bl sub_0201FF0C - bl GX_ResetBankForBG - mov r2, #2 - ldr r1, _021DF024 ; =0x06840000 - mov r0, #0 - lsl r2, r2, #0x10 - bl MIi_CpuClearFast - ldr r0, _021DF028 ; =0xC0320C04 - ldr r2, _021DF02C ; =0x04000064 - ldr r1, _021DF020 ; =0x02202120 - str r0, [r2, #0] - ldr r0, _021DF030 ; =ov5_021DF258 - ldr r1, [r1, #0] - lsr r2, r2, #0x10 - bl sub_0200DA3C - ldr r1, _021DF020 ; =0x02202120 - mov r2, #1 - ldr r0, _021DF034 ; =ov5_021DF28C - ldr r1, [r1, #0] - lsl r2, r2, #0xa - bl sub_0200D9E8 - pop {r4, pc} - ; .align 2, 0 -_021DF020: .word Unk_ov5_02202120 -_021DF024: .word 0x06840000 -_021DF028: .word 0xC0320C04 -_021DF02C: .word 0x04000064 -_021DF030: .word ov5_021DF258 -_021DF034: .word ov5_021DF28C - thumb_func_end ov5_021DEFA0 - - thumb_func_start ov5_021DF038 -ov5_021DF038: ; 0x021DF038 - push {r3, lr} - ldr r0, _021DF050 ; =0x02202120 - ldr r0, [r0, #0] - cmp r0, #0 - bne _021DF046 - bl GF_AssertFail -_021DF046: - ldr r0, _021DF050 ; =0x02202120 - mov r1, #1 - ldr r0, [r0, #0] - strb r1, [r0, #3] - pop {r3, pc} - ; .align 2, 0 -_021DF050: .word Unk_ov5_02202120 - thumb_func_end ov5_021DF038 - - thumb_func_start ov5_021DF054 -ov5_021DF054: ; 0x021DF054 - push {r3, lr} - ldr r0, _021DF06C ; =0x02202120 - ldr r0, [r0, #0] - cmp r0, #0 - bne _021DF062 - bl GF_AssertFail -_021DF062: - ldr r0, _021DF06C ; =0x02202120 - ldr r0, [r0, #0] - ldrb r0, [r0, #2] - pop {r3, pc} - nop -_021DF06C: .word Unk_ov5_02202120 - thumb_func_end ov5_021DF054 - - thumb_func_start ov5_021DF070 -ov5_021DF070: ; 0x021DF070 - push {r3, lr} - ldr r0, _021DF080 ; =0x02202120 - ldr r0, [r0, #0] - cmp r0, #0 - beq _021DF07E - bl sub_0201469C -_021DF07E: - pop {r3, pc} - ; .align 2, 0 -_021DF080: .word Unk_ov5_02202120 - thumb_func_end ov5_021DF070 - - thumb_func_start ov5_021DF084 -ov5_021DF084: ; 0x021DF084 - push {r3, lr} - ldr r0, _021DF0C8 ; =0x02202120 - ldr r0, [r0, #0] - cmp r0, #0 - bne _021DF092 - bl GF_AssertFail -_021DF092: - bl sub_020141E4 - ldr r0, _021DF0C8 ; =0x02202120 - ldr r0, [r0, #0] - ldr r0, [r0, #4] - bl ov5_021DF3D4 - ldr r0, _021DF0C8 ; =0x02202120 - mov r1, #1 - ldr r0, [r0, #0] - ldr r0, [r0, #4] - bl ov5_021D16F4 - ldr r0, _021DF0C8 ; =0x02202120 - mov r1, #1 - ldr r0, [r0, #0] - ldr r0, [r0, #4] - bl ov5_021D1718 - ldr r0, _021DF0C8 ; =0x02202120 - ldr r0, [r0, #0] - bl sub_020181C4 - ldr r0, _021DF0C8 ; =0x02202120 - mov r1, #0 - str r1, [r0, #0] - pop {r3, pc} - ; .align 2, 0 -_021DF0C8: .word Unk_ov5_02202120 - thumb_func_end ov5_021DF084 - - thumb_func_start ov5_021DF0CC -ov5_021DF0CC: ; 0x021DF0CC - push {r3, r4, r5, lr} - sub sp, #8 - add r5, r0, #0 - ldr r0, _021DF170 ; =0x02202120 - add r4, r1, #0 - ldr r0, [r0, #0] - cmp r0, #0 - bne _021DF0E0 - bl GF_AssertFail -_021DF0E0: - ldr r0, _021DF170 ; =0x02202120 - ldr r0, [r0, #0] - ldr r0, [r0, #8] - cmp r0, #0 - beq _021DF0EE - bl GF_AssertFail -_021DF0EE: - mov r1, #0x12 - mov r0, #4 - lsl r1, r1, #0xa - bl sub_02018144 - ldr r2, _021DF170 ; =0x02202120 - mov r3, #0x12 - ldr r1, [r2, #0] - lsl r3, r3, #0xa - str r0, [r1, #0xc] - mov r0, #1 - str r0, [sp] - mov r0, #4 - str r0, [sp, #4] - ldr r2, [r2, #0] - ldr r0, _021DF174 ; =ov5_021DF3E8 - ldr r1, _021DF178 ; =ov5_021DF414 - ldr r2, [r2, #0xc] - bl sub_02014014 - ldr r1, _021DF170 ; =0x02202120 - ldr r2, [r1, #0] - str r0, [r2, #8] - ldr r0, [r1, #0] - ldr r0, [r0, #8] - cmp r0, #0 - bne _021DF128 - bl GF_AssertFail -_021DF128: - ldr r0, _021DF170 ; =0x02202120 - mov r1, #1 - ldr r0, [r0, #0] - ldr r0, [r0, #8] - bl sub_02014788 - ldr r0, _021DF170 ; =0x02202120 - ldr r0, [r0, #0] - ldr r0, [r0, #8] - bl sub_02014784 - add r2, r0, #0 - mov r0, #1 - mov r1, #0xe1 - lsl r0, r0, #0xc - lsl r1, r1, #0xe - bl sub_020206BC - mov r2, #0 - add r0, r5, #0 - add r1, r4, #0 - mov r3, #4 - str r2, [sp] - bl sub_0200723C - add r1, r0, #0 - ldr r0, _021DF170 ; =0x02202120 - mov r2, #0 - ldr r0, [r0, #0] - add r3, r2, #0 - ldr r0, [r0, #8] - bl sub_020144CC - add sp, #8 - pop {r3, r4, r5, pc} - nop -_021DF170: .word Unk_ov5_02202120 -_021DF174: .word ov5_021DF3E8 -_021DF178: .word ov5_021DF414 - thumb_func_end ov5_021DF0CC - - thumb_func_start ov5_021DF17C -ov5_021DF17C: ; 0x021DF17C - push {r4, r5, r6, r7, lr} - sub sp, #0xc - add r5, r0, #0 - add r1, sp, #0 - mov r0, #0 - str r0, [r1, #0] - str r0, [r1, #4] - str r0, [r1, #8] - ldr r0, _021DF1C8 ; =0x02202120 - ldr r0, [r0, #0] - cmp r0, #0 - bne _021DF198 - bl GF_AssertFail -_021DF198: - ldr r0, _021DF1C8 ; =0x02202120 - ldr r0, [r0, #0] - ldr r0, [r0, #8] - cmp r0, #0 - bne _021DF1A6 - bl GF_AssertFail -_021DF1A6: - mov r4, #0 - cmp r5, #0 - bls _021DF1C2 - ldr r6, _021DF1C8 ; =0x02202120 - add r7, sp, #0 -_021DF1B0: - ldr r0, [r6, #0] - add r1, r4, #0 - ldr r0, [r0, #8] - add r2, r7, #0 - bl sub_020146E4 - add r4, r4, #1 - cmp r4, r5 - blo _021DF1B0 -_021DF1C2: - add sp, #0xc - pop {r4, r5, r6, r7, pc} - nop -_021DF1C8: .word Unk_ov5_02202120 - thumb_func_end ov5_021DF17C - - thumb_func_start ov5_021DF1CC -ov5_021DF1CC: ; 0x021DF1CC - push {r3, lr} - ldr r0, _021DF204 ; =0x02202120 - ldr r0, [r0, #0] - cmp r0, #0 - bne _021DF1DA - bl GF_AssertFail -_021DF1DA: - ldr r0, _021DF204 ; =0x02202120 - ldr r0, [r0, #0] - ldr r0, [r0, #8] - cmp r0, #0 - bne _021DF1E8 - mov r0, #1 - pop {r3, pc} -_021DF1E8: - bl sub_020146C0 - ldr r0, _021DF204 ; =0x02202120 - ldr r0, [r0, #0] - ldr r0, [r0, #8] - bl sub_02014710 - cmp r0, #0 - bne _021DF1FE - mov r0, #1 - pop {r3, pc} -_021DF1FE: - mov r0, #0 - pop {r3, pc} - nop -_021DF204: .word Unk_ov5_02202120 - thumb_func_end ov5_021DF1CC - - thumb_func_start ov5_021DF208 -ov5_021DF208: ; 0x021DF208 - push {r3, lr} - ldr r0, _021DF220 ; =0x02202120 - ldr r0, [r0, #0] - ldr r0, [r0, #8] - bl sub_02014710 - cmp r0, #0 - bne _021DF21C - mov r0, #1 - pop {r3, pc} -_021DF21C: - mov r0, #0 - pop {r3, pc} - ; .align 2, 0 -_021DF220: .word Unk_ov5_02202120 - thumb_func_end ov5_021DF208 - - thumb_func_start ov5_021DF224 -ov5_021DF224: ; 0x021DF224 - push {r3, lr} - ldr r0, _021DF254 ; =0x02202120 - ldr r0, [r0, #0] - cmp r0, #0 - bne _021DF232 - bl GF_AssertFail -_021DF232: - ldr r0, _021DF254 ; =0x02202120 - ldr r0, [r0, #0] - ldr r0, [r0, #8] - bl sub_0201411C - ldr r0, _021DF254 ; =0x02202120 - ldr r0, [r0, #0] - ldr r0, [r0, #0xc] - bl sub_020181C4 - ldr r0, _021DF254 ; =0x02202120 - mov r2, #0 - ldr r1, [r0, #0] - str r2, [r1, #8] - ldr r0, [r0, #0] - str r2, [r0, #0xc] - pop {r3, pc} - ; .align 2, 0 -_021DF254: .word Unk_ov5_02202120 - thumb_func_end ov5_021DF224 - - thumb_func_start ov5_021DF258 -ov5_021DF258: ; 0x021DF258 - push {r3, r4, r5, lr} - add r4, r1, #0 - add r5, r0, #0 - ldrh r0, [r4] - cmp r0, #0 - beq _021DF26A - cmp r0, #1 - beq _021DF270 - pop {r3, r4, r5, pc} -_021DF26A: - add r0, r0, #1 - strh r0, [r4] - pop {r3, r4, r5, pc} -_021DF270: - ldrb r0, [r4, #3] - cmp r0, #1 - bne _021DF288 - ldr r0, [r4, #4] - bl ov5_021DF30C - add r0, r5, #0 - bl sub_0200DA58 - ldrh r0, [r4] - add r0, r0, #1 - strh r0, [r4] -_021DF288: - pop {r3, r4, r5, pc} - ; .align 2, 0 - thumb_func_end ov5_021DF258 - - thumb_func_start ov5_021DF28C -ov5_021DF28C: ; 0x021DF28C - push {r4, r5, lr} - sub sp, #0x3c - add r4, r1, #0 - add r5, r0, #0 - ldrh r0, [r4] - cmp r0, #2 - bne _021DF2FA - bl sub_02014000 - add r1, sp, #0x30 - mov r0, #0 - str r0, [r1, #0] - str r0, [r1, #4] - ldr r3, _021DF300 ; =0x021F9990 - str r0, [r1, #8] - ldmia r3!, {r0, r1} - add r2, sp, #0x24 - stmia r2!, {r0, r1} - ldr r0, [r3, #0] - str r0, [r2, #0] - add r0, sp, #0 - bl MTX_Identity33_ - add r0, sp, #0x30 - bl NNS_G3dGlbSetBaseTrans - add r0, sp, #0x24 - bl NNS_G3dGlbSetBaseScale - ldr r1, _021DF304 ; =0x021C5B48 - add r0, sp, #0 - bl MI_Copy36B - ldr r1, _021DF308 ; =0x021C5B0C - mov r0, #0xa4 - ldr r2, [r1, #0x7c] - bic r2, r0 - str r2, [r1, #0x7c] - ldr r0, [r4, #4] - mov r1, #0 - bl ov5_021D16F4 - ldr r0, [r4, #4] - mov r1, #0 - bl ov5_021D1718 - mov r0, #0 - add r1, r0, #0 - bl sub_02019060 - mov r0, #1 - strb r0, [r4, #2] - add r0, r5, #0 - bl sub_0200DA58 -_021DF2FA: - add sp, #0x3c - pop {r4, r5, pc} - nop -_021DF300: .word 0x021F9990 -_021DF304: .word 0x021C5B48 -_021DF308: .word 0x021C5B0C - thumb_func_end ov5_021DF28C - - thumb_func_start ov5_021DF30C -ov5_021DF30C: ; 0x021DF30C - push {r4, r5, lr} - sub sp, #0x6c - ldr r5, _021DF3BC ; =0x021F9A4C - add r4, r0, #0 - add r3, sp, #0x44 - mov r2, #5 -_021DF318: - ldmia r5!, {r0, r1} - stmia r3!, {r0, r1} - sub r2, r2, #1 - bne _021DF318 - add r0, sp, #0x44 - bl sub_0201FE94 - mov r0, #1 - mov r1, #0 - bl sub_0201FF0C - ldr r5, _021DF3C0 ; =0x021F999C - add r3, sp, #0x34 - add r2, r3, #0 - ldmia r5!, {r0, r1} - stmia r3!, {r0, r1} - ldmia r5!, {r0, r1} - stmia r3!, {r0, r1} - add r0, r2, #0 - bl sub_02018368 - ldr r0, [r4, #8] - bl ov5_021D143C - ldr r2, _021DF3C4 ; =0x0400000E - mov r0, #0x43 - ldrh r1, [r2] - and r1, r0 - ldr r0, _021DF3C8 ; =0x00004884 - orr r0, r1 - strh r0, [r2] - mov r0, #3 - add r1, r0, #0 - bl sub_02019060 - mov r0, #8 - mov r1, #1 - bl sub_0201FF0C - add r0, sp, #0x24 - bl MTX_Identity22_ - mov r2, #0 - str r2, [sp] - ldr r0, _021DF3CC ; =0x04000030 - add r1, sp, #0x24 - add r3, r2, #0 - str r2, [sp, #4] - bl G2x_SetBGyAffine_ - ldr r5, _021DF3D0 ; =0x021F99D8 - add r3, sp, #8 - ldmia r5!, {r0, r1} - add r2, r3, #0 - stmia r3!, {r0, r1} - ldmia r5!, {r0, r1} - stmia r3!, {r0, r1} - ldmia r5!, {r0, r1} - stmia r3!, {r0, r1} - ldr r0, [r5, #0] - mov r1, #2 - str r0, [r3, #0] - ldr r0, [r4, #8] - mov r3, #0 - bl sub_020183C4 - mov r0, #2 - mov r1, #0x20 - mov r2, #0 - mov r3, #4 - bl sub_02019690 - ldr r0, [r4, #8] - mov r1, #2 - bl sub_02019EBC - mov r0, #0x10 - mov r1, #1 - bl sub_0201FF0C - add sp, #0x6c - pop {r4, r5, pc} - ; .align 2, 0 -_021DF3BC: .word 0x021F9A4C -_021DF3C0: .word 0x021F999C -_021DF3C4: .word 0x0400000E -_021DF3C8: .word 0x00004884 -_021DF3CC: .word 0x04000030 -_021DF3D0: .word 0x021F99D8 - thumb_func_end ov5_021DF30C - - thumb_func_start ov5_021DF3D4 -ov5_021DF3D4: ; 0x021DF3D4 - push {r4, lr} - add r4, r0, #0 - ldr r0, [r4, #8] - mov r1, #2 - bl sub_02019044 - ldr r0, [r4, #8] - bl ov5_021D1434 - pop {r4, pc} - thumb_func_end ov5_021DF3D4 - - thumb_func_start ov5_021DF3E8 -ov5_021DF3E8: ; 0x021DF3E8 - push {r3, r4, r5, lr} - add r5, r0, #0 - ldr r0, _021DF410 ; =0x02202120 - add r4, r1, #0 - ldr r0, [r0, #0] - cmp r0, #0 - bne _021DF3FA - bl GF_AssertFail -_021DF3FA: - cmp r4, #0 - beq _021DF402 - bl GF_AssertFail -_021DF402: - ldr r0, _021DF410 ; =0x02202120 - ldr r2, [r0, #0] - ldr r0, [r2, #0x10] - add r1, r0, r5 - str r1, [r2, #0x10] - pop {r3, r4, r5, pc} - nop -_021DF410: .word Unk_ov5_02202120 - thumb_func_end ov5_021DF3E8 - - thumb_func_start ov5_021DF414 -ov5_021DF414: ; 0x021DF414 - push {r3, r4, r5, lr} - add r5, r0, #0 - ldr r0, _021DF43C ; =0x02202120 - add r4, r1, #0 - ldr r0, [r0, #0] - cmp r0, #0 - bne _021DF426 - bl GF_AssertFail -_021DF426: - cmp r4, #0 - beq _021DF42E - bl GF_AssertFail -_021DF42E: - ldr r0, _021DF43C ; =0x02202120 - ldr r2, [r0, #0] - ldr r0, [r2, #0x14] - add r1, r0, r5 - str r1, [r2, #0x14] - pop {r3, r4, r5, pc} - nop -_021DF43C: .word Unk_ov5_02202120 - thumb_func_end ov5_021DF414 - - .rodata - - - .global Unk_ov5_021F9988 -Unk_ov5_021F9988: ; 0x021F9988 - .incbin "incbin/overlay5_rodata.bin", 0x1074, 0x107C - 0x1074 - - .global Unk_ov5_021F9990 -Unk_ov5_021F9990: ; 0x021F9990 - .incbin "incbin/overlay5_rodata.bin", 0x107C, 0x1088 - 0x107C - - .global Unk_ov5_021F999C -Unk_ov5_021F999C: ; 0x021F999C - .incbin "incbin/overlay5_rodata.bin", 0x1088, 0x1098 - 0x1088 - - .global Unk_ov5_021F99AC -Unk_ov5_021F99AC: ; 0x021F99AC - .incbin "incbin/overlay5_rodata.bin", 0x1098, 0x10A8 - 0x1098 - - .global Unk_ov5_021F99BC -Unk_ov5_021F99BC: ; 0x021F99BC - .incbin "incbin/overlay5_rodata.bin", 0x10A8, 0x10C4 - 0x10A8 - - .global Unk_ov5_021F99D8 -Unk_ov5_021F99D8: ; 0x021F99D8 - .incbin "incbin/overlay5_rodata.bin", 0x10C4, 0x10E0 - 0x10C4 - - .global Unk_ov5_021F99F4 -Unk_ov5_021F99F4: ; 0x021F99F4 - .incbin "incbin/overlay5_rodata.bin", 0x10E0, 0x10FC - 0x10E0 - - .global Unk_ov5_021F9A10 -Unk_ov5_021F9A10: ; 0x021F9A10 - .incbin "incbin/overlay5_rodata.bin", 0x10FC, 0x1118 - 0x10FC - - .global Unk_ov5_021F9A2C -Unk_ov5_021F9A2C: ; 0x021F9A2C - .incbin "incbin/overlay5_rodata.bin", 0x1118, 0x1138 - 0x1118 - - .global Unk_ov5_021F9A4C -Unk_ov5_021F9A4C: ; 0x021F9A4C - .incbin "incbin/overlay5_rodata.bin", 0x1138, 0x1160 - 0x1138 - - .global Unk_ov5_021F9A74 -Unk_ov5_021F9A74: ; 0x021F9A74 - .word ov5_021E24A8 - .word ov5_021E2338 - .word ov5_021E261C - .word ov5_021E2748 - .word ov5_021E2944 - .word ov5_021E2A4C - .word ov5_021E2B54 - .word ov5_021E2EB0 - .word ov5_021E31A4 - .word ov5_021E3560 - .word ov5_021E3AD0 - .word ov5_021E3D8C - .word ov5_021E5760 - .word ov5_021E5784 - .word ov5_021E57A8 - .word ov5_021E57CC - .word ov5_021E57F0 - .word ov5_021E5814 - .word ov5_021E5838 - .word ov5_021E585C - .word ov5_021E6178 - .word ov5_021E619C - .word ov5_021E61C0 - .word ov5_021E61E4 - .word ov5_021E6208 - .word ov5_021E4E14 - .word ov5_021E4F7C - .word ov5_021E4738 - .word ov5_021E4B3C - .word ov5_021E4260 - .word ov5_021E44C0 - - - .bss - - - .global Unk_ov5_02202120 -Unk_ov5_02202120: ; 0x02202120 - .space 0x4 - diff --git a/asm/overlay005/ov5_021F2D20.inc b/asm/overlay005/ov5_021F2D20.inc deleted file mode 100644 index 1f8d5573ca..0000000000 --- a/asm/overlay005/ov5_021F2D20.inc +++ /dev/null @@ -1,39 +0,0 @@ -.public sub_020211FC -.public sub_020212A8 -.public sub_02021368 -.public sub_02021380 -.public sub_020213D4 -.public sub_02062758 -.public sub_020627B4 -.public sub_02062910 -.public sub_02062918 -.public sub_02062924 -.public sub_02063020 -.public sub_02063030 -.public sub_02063040 -.public sub_02063050 -.public sub_02063074 -.public sub_020644A4 -.public sub_02071598 -.public sub_020715B4 -.public sub_020715BC -.public sub_020715D4 -.public sub_020715E4 -.public ov5_021DF53C -.public ov5_021DF554 -.public ov5_021DF55C -.public ov5_021DF574 -.public ov5_021DF578 -.public ov5_021DF72C -.public ov5_021DF74C -.public ov5_021DF84C -.public ov5_021DF864 -.public ov5_021DF9D4 -.public ov5_021DF9E0 -.public ov5_021DFA08 -.public ov5_021DFA14 -.public ov5_021DFA30 -.public ov5_021DFA3C -.public ov5_021DFA7C -.public ov5_021F2D4C -.public ov5_021F2E2C diff --git a/asm/overlay005/ov5_021F2D20.s b/asm/overlay005/ov5_021F2D20.s deleted file mode 100644 index 3d1ea02cc0..0000000000 --- a/asm/overlay005/ov5_021F2D20.s +++ /dev/null @@ -1,738 +0,0 @@ - .include "macros/function.inc" - .include "overlay005/ov5_021F2D20.inc" - - - - .text - - - thumb_func_start ov5_021F2D20 -ov5_021F2D20: ; 0x021F2D20 - push {r3, r4, r5, lr} - mov r2, #0 - mov r1, #4 - add r3, r2, #0 - add r5, r0, #0 - bl ov5_021DF53C - add r4, r0, #0 - str r5, [r4, #0] - bl ov5_021F2D4C - add r0, r4, #0 - pop {r3, r4, r5, pc} - ; .align 2, 0 - thumb_func_end ov5_021F2D20 - - thumb_func_start ov5_021F2D3C -ov5_021F2D3C: ; 0x021F2D3C - push {r4, lr} - add r4, r0, #0 - bl ov5_021F2E2C - add r0, r4, #0 - bl ov5_021DF554 - pop {r4, pc} - thumb_func_end ov5_021F2D3C - - thumb_func_start ov5_021F2D4C -ov5_021F2D4C: ; 0x021F2D4C - push {r3, r4, lr} - sub sp, #0xc - add r4, r0, #0 - ldr r0, [r4, #0] - mov r1, #0 - mov r2, #0x53 - bl ov5_021DF9E0 - ldr r0, [r4, #0] - mov r1, #5 - mov r2, #0x54 - bl ov5_021DF9E0 - ldr r0, [r4, #0] - mov r1, #0 - mov r2, #0xaa - bl ov5_021DFA14 - ldr r0, [r4, #0] - mov r1, #3 - mov r2, #0xab - bl ov5_021DFA14 - ldr r0, [r4, #0] - mov r1, #4 - mov r2, #0xac - bl ov5_021DFA14 - ldr r0, [r4, #0] - mov r1, #5 - mov r2, #0xad - bl ov5_021DFA14 - mov r1, #0 - ldr r0, [r4, #0] - add r2, r1, #0 - mov r3, #1 - bl ov5_021DFA3C - mov r2, #1 - ldr r0, [r4, #0] - mov r1, #4 - add r3, r2, #0 - bl ov5_021DFA3C - ldr r0, [r4, #0] - mov r1, #5 - mov r2, #2 - mov r3, #1 - bl ov5_021DFA3C - ldr r0, [r4, #0] - mov r1, #6 - mov r2, #3 - mov r3, #1 - bl ov5_021DFA3C - mov r1, #0 - str r1, [sp] - ldr r0, _021F2E1C ; =0x02200540 - str r1, [sp, #4] - str r0, [sp, #8] - ldr r0, [r4, #0] - add r2, r1, #0 - add r3, r1, #0 - bl ov5_021DF864 - mov r0, #4 - str r0, [sp] - mov r0, #0 - str r0, [sp, #4] - ldr r0, _021F2E20 ; =0x02200558 - mov r1, #5 - str r0, [sp, #8] - ldr r0, [r4, #0] - add r2, r1, #0 - mov r3, #3 - bl ov5_021DF864 - mov r2, #5 - str r2, [sp] - mov r0, #0 - str r0, [sp, #4] - ldr r0, _021F2E24 ; =0x02200528 - mov r1, #6 - str r0, [sp, #8] - ldr r0, [r4, #0] - mov r3, #4 - bl ov5_021DF864 - mov r0, #6 - str r0, [sp] - mov r0, #0 - str r0, [sp, #4] - ldr r0, _021F2E28 ; =0x02200570 - mov r2, #5 - str r0, [sp, #8] - ldr r0, [r4, #0] - mov r1, #7 - add r3, r2, #0 - bl ov5_021DF864 - add sp, #0xc - pop {r3, r4, pc} - ; .align 2, 0 -_021F2E1C: .word Unk_ov5_02200540 -_021F2E20: .word Unk_ov5_02200558 -_021F2E24: .word Unk_ov5_02200528 -_021F2E28: .word Unk_ov5_02200570 - thumb_func_end ov5_021F2D4C - - thumb_func_start ov5_021F2E2C -ov5_021F2E2C: ; 0x021F2E2C - push {r4, lr} - add r4, r0, #0 - ldr r0, [r4, #0] - mov r1, #0 - bl ov5_021DFA08 - ldr r0, [r4, #0] - mov r1, #5 - bl ov5_021DFA08 - ldr r0, [r4, #0] - mov r1, #0 - bl ov5_021DFA30 - ldr r0, [r4, #0] - mov r1, #3 - bl ov5_021DFA30 - ldr r0, [r4, #0] - mov r1, #4 - bl ov5_021DFA30 - ldr r0, [r4, #0] - mov r1, #5 - bl ov5_021DFA30 - ldr r0, [r4, #0] - mov r1, #0 - bl ov5_021DFA7C - ldr r0, [r4, #0] - mov r1, #4 - bl ov5_021DFA7C - ldr r0, [r4, #0] - mov r1, #5 - bl ov5_021DFA7C - ldr r0, [r4, #0] - mov r1, #6 - bl ov5_021DFA7C - ldr r0, [r4, #0] - mov r1, #0 - bl ov5_021DF9D4 - ldr r0, [r4, #0] - mov r1, #5 - bl ov5_021DF9D4 - ldr r0, [r4, #0] - mov r1, #6 - bl ov5_021DF9D4 - ldr r0, [r4, #0] - mov r1, #7 - bl ov5_021DF9D4 - pop {r4, pc} - ; .align 2, 0 - thumb_func_end ov5_021F2E2C - - thumb_func_start ov5_021F2EA4 -ov5_021F2EA4: ; 0x021F2EA4 - push {r4, r5, r6, lr} - sub sp, #0x30 - add r5, r0, #0 - add r6, r1, #0 - bl ov5_021DF578 - add r4, r0, #0 - add r0, r5, #0 - bl sub_02063020 - str r0, [sp, #8] - add r0, r5, #0 - bl sub_02063030 - str r0, [sp, #0xc] - add r0, r5, #0 - bl sub_02063040 - str r0, [sp, #0x10] - add r0, r4, #0 - str r4, [sp, #0x18] - bl ov5_021DF574 - str r0, [sp, #0x14] - add r0, r4, #0 - mov r1, #0x13 - bl ov5_021DF55C - str r0, [sp, #0x1c] - add r0, r5, #0 - add r1, sp, #0x24 - str r5, [sp, #0x20] - bl sub_02063050 - add r0, r5, #0 - mov r1, #2 - bl sub_02062758 - add r1, sp, #8 - str r1, [sp] - str r0, [sp, #4] - ldr r1, _021F2F08 ; =0x022004EC - add r0, r4, #0 - add r2, sp, #0x24 - add r3, r6, #0 - bl ov5_021DF72C - add sp, #0x30 - pop {r4, r5, r6, pc} - nop -_021F2F08: .word Unk_ov5_022004EC - thumb_func_end ov5_021F2EA4 - - thumb_func_start ov5_021F2F0C -ov5_021F2F0C: ; 0x021F2F0C - push {r4, r5, lr} - sub sp, #0xc - add r5, r0, #0 - add r4, r1, #0 - bl sub_020715BC - add r3, r0, #0 - add r2, r4, #0 - ldmia r3!, {r0, r1} - add r2, #0x18 - stmia r2!, {r0, r1} - ldmia r3!, {r0, r1} - stmia r2!, {r0, r1} - ldmia r3!, {r0, r1} - stmia r2!, {r0, r1} - ldr r0, [r3, #0] - str r0, [r2, #0] - ldr r0, [r4, #0x30] - bl sub_02062924 - str r0, [r4, #4] - ldr r0, [r4, #0x30] - bl sub_02062910 - str r0, [r4, #8] - ldr r0, [r4, #0x30] - bl sub_02062918 - str r0, [r4, #0xc] - ldr r0, [r4, #0x18] - lsl r0, r0, #0x10 - str r0, [sp] - ldr r0, [r4, #0x20] - lsl r0, r0, #0x10 - str r0, [sp, #8] - ldr r0, [r4, #0x30] - bl sub_02063074 - str r0, [sp, #4] - ldr r0, [r4, #0x24] - add r1, sp, #0 - bl sub_020644A4 - str r0, [r4, #0x14] - mov r0, #2 - ldr r1, [sp] - lsl r0, r0, #0xe - add r0, r1, r0 - str r0, [sp] - mov r0, #0x12 - ldr r1, [sp, #8] - lsl r0, r0, #0xc - add r0, r1, r0 - str r0, [sp, #8] - add r0, r5, #0 - add r1, sp, #0 - bl sub_020715D4 - ldr r0, [r4, #0x28] - mov r1, #0 - add r2, sp, #0 - bl ov5_021DF84C - str r0, [r4, #0x34] - add r0, r5, #0 - bl sub_020715B4 - cmp r0, #0 - bne _021F2F9A - mov r0, #1 - str r0, [r4, #0] -_021F2F9A: - mov r0, #1 - add sp, #0xc - pop {r4, r5, pc} - thumb_func_end ov5_021F2F0C - - thumb_func_start ov5_021F2FA0 -ov5_021F2FA0: ; 0x021F2FA0 - ldr r3, _021F2FA8 ; =sub_020211FC - ldr r0, [r1, #0x34] - bx r3 - nop -_021F2FA8: .word sub_020211FC - thumb_func_end ov5_021F2FA0 - - thumb_func_start ov5_021F2FAC -ov5_021F2FAC: ; 0x021F2FAC - push {r3, r4, r5, r6, r7, lr} - sub sp, #0x18 - add r4, r1, #0 - ldr r6, [r4, #0x30] - ldr r1, [r4, #4] - add r5, r0, #0 - ldr r2, [r4, #8] - ldr r3, [r4, #0xc] - add r0, r6, #0 - bl sub_020627B4 - cmp r0, #0 - bne _021F2FD0 - add r0, r5, #0 - bl ov5_021DF74C - add sp, #0x18 - pop {r3, r4, r5, r6, r7, pc} -_021F2FD0: - ldr r0, [r4, #0x14] - cmp r0, #0 - bne _021F3008 - add r0, r5, #0 - add r1, sp, #0xc - bl sub_020715E4 - ldr r0, [r4, #0x18] - add r1, sp, #0 - lsl r0, r0, #0x10 - str r0, [sp] - ldr r0, [r4, #0x20] - lsl r0, r0, #0x10 - str r0, [sp, #8] - ldr r0, [sp, #0x10] - str r0, [sp, #4] - ldr r0, [r4, #0x24] - bl sub_020644A4 - str r0, [r4, #0x14] - cmp r0, #1 - bne _021F3008 - ldr r0, [sp, #4] - add r1, sp, #0xc - str r0, [sp, #0x10] - add r0, r5, #0 - bl sub_020715D4 -_021F3008: - ldr r0, [r4, #0] - cmp r0, #0 - beq _021F301A - cmp r0, #1 - beq _021F303E - cmp r0, #2 - beq _021F304C - add sp, #0x18 - pop {r3, r4, r5, r6, r7, pc} -_021F301A: - mov r1, #1 - ldr r0, [r4, #0x34] - lsl r1, r1, #0xc - bl sub_02021368 - ldr r0, [r4, #0x34] - bl sub_020213D4 - asr r1, r0, #0xb - lsr r1, r1, #0x14 - add r1, r0, r1 - asr r0, r1, #0xc - cmp r0, #0xc - blt _021F3086 - mov r0, #1 - add sp, #0x18 - str r0, [r4, #0] - pop {r3, r4, r5, r6, r7, pc} -_021F303E: - mov r1, #3 - ldr r0, [r4, #0x34] - lsl r1, r1, #0xe - bl sub_02021380 - mov r0, #2 - str r0, [r4, #0] -_021F304C: - ldr r1, [r4, #4] - ldr r2, [r4, #8] - ldr r3, [r4, #0xc] - add r0, r6, #0 - bl sub_020627B4 - cmp r0, #0 - bne _021F3066 - add r0, r5, #0 - bl ov5_021DF74C - add sp, #0x18 - pop {r3, r4, r5, r6, r7, pc} -_021F3066: - add r0, r6, #0 - bl sub_02063020 - add r7, r0, #0 - add r0, r6, #0 - bl sub_02063040 - ldr r1, [r4, #0x18] - cmp r1, r7 - bne _021F3080 - ldr r1, [r4, #0x20] - cmp r1, r0 - beq _021F3086 -_021F3080: - add r0, r5, #0 - bl ov5_021DF74C -_021F3086: - add sp, #0x18 - pop {r3, r4, r5, r6, r7, pc} - ; .align 2, 0 - thumb_func_end ov5_021F2FAC - - thumb_func_start ov5_021F308C -ov5_021F308C: ; 0x021F308C - push {r4, r5, lr} - sub sp, #0xc - add r4, r1, #0 - add r5, r0, #0 - ldr r0, [r4, #0x30] - ldr r1, [r4, #4] - ldr r2, [r4, #8] - ldr r3, [r4, #0xc] - bl sub_020627B4 - cmp r0, #0 - bne _021F30AE - add r0, r5, #0 - bl ov5_021DF74C - add sp, #0xc - pop {r4, r5, pc} -_021F30AE: - add r0, r5, #0 - add r1, sp, #0 - bl sub_020715E4 - ldr r0, [r4, #0x34] - add r1, sp, #0 - bl sub_020212A8 - add sp, #0xc - pop {r4, r5, pc} - ; .align 2, 0 - thumb_func_end ov5_021F308C - - thumb_func_start ov5_021F30C4 -ov5_021F30C4: ; 0x021F30C4 - push {r4, r5, lr} - sub sp, #0xc - add r5, r0, #0 - add r4, r1, #0 - bl sub_020715BC - add r3, r0, #0 - add r2, r4, #0 - ldmia r3!, {r0, r1} - add r2, #8 - stmia r2!, {r0, r1} - ldmia r3!, {r0, r1} - stmia r2!, {r0, r1} - ldr r0, [r3, #0] - add r1, sp, #0 - str r0, [r2, #0] - add r0, r5, #0 - bl sub_020715E4 - ldr r0, [r4, #0x14] - mov r1, #0 - add r2, sp, #0 - bl ov5_021DF84C - str r0, [r4, #0x1c] - mov r0, #1 - add sp, #0xc - pop {r4, r5, pc} - thumb_func_end ov5_021F30C4 - - thumb_func_start ov5_021F30FC -ov5_021F30FC: ; 0x021F30FC - ldr r3, _021F3104 ; =sub_020211FC - ldr r0, [r1, #0x1c] - bx r3 - nop -_021F3104: .word sub_020211FC - thumb_func_end ov5_021F30FC - - thumb_func_start ov5_021F3108 -ov5_021F3108: ; 0x021F3108 - push {r4, lr} - add r4, r1, #0 - ldr r0, [r4, #0] - cmp r0, #0 - beq _021F3116 - cmp r0, #1 - pop {r4, pc} -_021F3116: - mov r1, #1 - ldr r0, [r4, #0x1c] - lsl r1, r1, #0xc - bl sub_02021368 - ldr r0, [r4, #0x1c] - bl sub_020213D4 - asr r1, r0, #0xb - lsr r1, r1, #0x14 - add r1, r0, r1 - asr r0, r1, #0xc - cmp r0, #0xc - blt _021F3138 - mov r0, #1 - str r0, [r4, #4] - str r0, [r4, #0] -_021F3138: - pop {r4, pc} - ; .align 2, 0 - thumb_func_end ov5_021F3108 - - thumb_func_start ov5_021F313C -ov5_021F313C: ; 0x021F313C - push {r3, r4, lr} - sub sp, #0xc - add r4, r1, #0 - add r1, sp, #0 - bl sub_020715E4 - ldr r0, [r4, #0x1c] - add r1, sp, #0 - bl sub_020212A8 - add sp, #0xc - pop {r3, r4, pc} - thumb_func_end ov5_021F313C - - thumb_func_start ov5_021F3154 -ov5_021F3154: ; 0x021F3154 - push {r3, r4, r5, r6, r7, lr} - sub sp, #0x28 - ldr r6, [r0, #0x40] - add r5, r1, #0 - add r4, r2, #0 - str r0, [sp, #0x10] - add r0, r6, #0 - mov r1, #0x13 - add r7, r3, #0 - str r5, [sp, #8] - str r4, [sp, #0xc] - str r6, [sp, #0x14] - bl ov5_021DF55C - str r0, [sp, #0x18] - mov r0, #2 - lsl r1, r5, #0x10 - lsl r0, r0, #0xe - add r0, r1, r0 - str r0, [sp, #0x1c] - mov r0, #0 - str r0, [sp, #0x20] - mov r0, #9 - lsl r1, r4, #0x10 - lsl r0, r0, #0xc - add r0, r1, r0 - str r0, [sp, #0x24] - add r0, sp, #8 - str r0, [sp] - mov r0, #0xff - str r0, [sp, #4] - ldr r1, _021F31A4 ; =0x02200514 - add r0, r6, #0 - add r2, sp, #0x1c - add r3, r7, #0 - bl ov5_021DF72C - add sp, #0x28 - pop {r3, r4, r5, r6, r7, pc} - nop -_021F31A4: .word Unk_ov5_02200514 - thumb_func_end ov5_021F3154 - - thumb_func_start ov5_021F31A8 -ov5_021F31A8: ; 0x021F31A8 - push {r3, lr} - bl sub_02071598 - ldr r0, [r0, #4] - pop {r3, pc} - ; .align 2, 0 - thumb_func_end ov5_021F31A8 - - thumb_func_start ov5_021F31B4 -ov5_021F31B4: ; 0x021F31B4 - push {r4, r5, lr} - sub sp, #0xc - add r5, r0, #0 - add r4, r1, #0 - bl sub_020715BC - add r3, r0, #0 - add r2, r4, #0 - ldmia r3!, {r0, r1} - add r2, #0x10 - stmia r2!, {r0, r1} - ldmia r3!, {r0, r1} - stmia r2!, {r0, r1} - ldr r0, [r3, #0] - str r0, [r2, #0] - add r0, r5, #0 - bl sub_020715B4 - str r0, [r4, #0xc] - ldr r0, [r4, #0x10] - lsl r1, r0, #0x10 - mov r0, #2 - lsl r0, r0, #0xe - add r0, r1, r0 - str r0, [sp] - ldr r0, [r4, #0x14] - lsl r1, r0, #0x10 - mov r0, #9 - lsl r0, r0, #0xc - add r0, r1, r0 - str r0, [sp, #8] - mov r0, #0 - str r0, [sp, #4] - ldr r0, [r4, #0x18] - add r1, sp, #0 - bl sub_020644A4 - mov r0, #1 - ldr r1, [sp, #4] - lsl r0, r0, #0xc - add r0, r1, r0 - str r0, [sp, #4] - add r0, r5, #0 - add r1, sp, #0 - bl sub_020715D4 - ldr r0, [r4, #0xc] - cmp r0, #0 - beq _021F321E - cmp r0, #1 - beq _021F3222 - cmp r0, #2 - b _021F3226 -_021F321E: - mov r1, #5 - b _021F3228 -_021F3222: - mov r1, #6 - b _021F3228 -_021F3226: - mov r1, #7 -_021F3228: - ldr r0, [r4, #0x1c] - add r2, sp, #0 - bl ov5_021DF84C - str r0, [r4, #0x24] - mov r0, #1 - add sp, #0xc - pop {r4, r5, pc} - thumb_func_end ov5_021F31B4 - - thumb_func_start ov5_021F3238 -ov5_021F3238: ; 0x021F3238 - ldr r3, _021F3240 ; =sub_020211FC - ldr r0, [r1, #0x24] - bx r3 - nop -_021F3240: .word sub_020211FC - thumb_func_end ov5_021F3238 - - thumb_func_start ov5_021F3244 -ov5_021F3244: ; 0x021F3244 - push {r4, lr} - add r4, r1, #0 - ldr r0, [r4, #0] - cmp r0, #0 - beq _021F3252 - cmp r0, #1 - pop {r4, pc} -_021F3252: - mov r1, #1 - ldr r0, [r4, #0x24] - lsl r1, r1, #0xc - bl sub_02021368 - cmp r0, #1 - bne _021F326A - mov r0, #1 - str r0, [r4, #4] - ldr r0, [r4, #0] - add r0, r0, #1 - str r0, [r4, #0] -_021F326A: - pop {r4, pc} - thumb_func_end ov5_021F3244 - - thumb_func_start ov5_021F326C -ov5_021F326C: ; 0x021F326C - push {r3, r4, lr} - sub sp, #0xc - add r4, r1, #0 - add r1, sp, #0 - bl sub_020715E4 - ldr r0, [r4, #0x24] - add r1, sp, #0 - bl sub_020212A8 - add sp, #0xc - pop {r3, r4, pc} - thumb_func_end ov5_021F326C - - .rodata - - - .global Unk_ov5_022004EC -Unk_ov5_022004EC: ; 0x022004EC - .incbin "incbin/overlay5_rodata.bin", 0x7BD8, 0x4 - .word ov5_021F2F0C - .word ov5_021F2FA0 - .word ov5_021F2FAC - .word ov5_021F308C - - .global Unk_ov5_02200500 -Unk_ov5_02200500: ; 0x02200500 - .incbin "incbin/overlay5_rodata.bin", 0x7BEC, 0x7C00 - 0x7BEC - - .global Unk_ov5_02200514 -Unk_ov5_02200514: ; 0x02200514 - .incbin "incbin/overlay5_rodata.bin", 0x7C00, 0x4 - .word ov5_021F31B4 - .word ov5_021F3238 - .word ov5_021F3244 - .word ov5_021F326C - - .global Unk_ov5_02200528 -Unk_ov5_02200528: ; 0x02200528 - .incbin "incbin/overlay5_rodata.bin", 0x7C14, 0x7C2C - 0x7C14 - - .global Unk_ov5_02200540 -Unk_ov5_02200540: ; 0x02200540 - .incbin "incbin/overlay5_rodata.bin", 0x7C2C, 0x7C44 - 0x7C2C - - .global Unk_ov5_02200558 -Unk_ov5_02200558: ; 0x02200558 - .incbin "incbin/overlay5_rodata.bin", 0x7C44, 0x7C5C - 0x7C44 - - .global Unk_ov5_02200570 -Unk_ov5_02200570: ; 0x02200570 - .incbin "incbin/overlay5_rodata.bin", 0x7C5C, 0x18 - diff --git a/asm/overlay005/ov5_021F5A10.inc b/asm/overlay005/ov5_021F5A10.inc deleted file mode 100644 index 14cac1bfc2..0000000000 --- a/asm/overlay005/ov5_021F5A10.inc +++ /dev/null @@ -1,49 +0,0 @@ -.public sub_02005748 -.public sub_020211FC -.public sub_020212A8 -.public sub_02021320 -.public sub_020213F4 -.public GF_AssertFail -.public sub_02062764 -.public sub_02062910 -.public sub_02062918 -.public sub_02062C0C -.public sub_02063050 -.public sub_02071598 -.public sub_020715B4 -.public sub_020715BC -.public sub_020715D4 -.public sub_020715E4 -.public NNS_G3dMdlSetMdlFogEnableFlagAll -.public ov5_021DF53C -.public ov5_021DF554 -.public ov5_021DF55C -.public ov5_021DF578 -.public ov5_021DF72C -.public ov5_021DF84C -.public ov5_021DF864 -.public ov5_021DF9D4 -.public ov5_021DF9E0 -.public ov5_021DFA08 -.public ov5_021DFA14 -.public ov5_021DFA30 -.public ov5_021DFA3C -.public ov5_021DFA7C -.public ov5_021ECDA0 -.public ov5_021F5A34 -.public ov5_021F5A40 -.public ov5_021F5A58 -.public ov5_021F5A64 -.public ov5_021F5A7C -.public ov5_021F5A90 -.public ov5_021F5AB4 -.public ov5_021F5B00 -.public ov5_021F5B50 -.public ov5_021F5B80 -.public ov5_021F5BB0 -.public ov5_021F5BC0 -.public ov5_021F5BD0 -.public ov5_021F5BE0 -.public ov5_021F5BF0 -.public ov5_021F5C04 -.public ov5_021F5C18 diff --git a/asm/overlay005/ov5_021F5A10.s b/asm/overlay005/ov5_021F5A10.s deleted file mode 100644 index ba89e40557..0000000000 --- a/asm/overlay005/ov5_021F5A10.s +++ /dev/null @@ -1,881 +0,0 @@ - .include "macros/function.inc" - .include "overlay005/ov5_021F5A10.inc" - - - - .text - - - thumb_func_start ov5_021F5A10 -ov5_021F5A10: ; 0x021F5A10 - push {r4, lr} - mov r2, #0 - mov r1, #0xc - add r3, r2, #0 - add r4, r0, #0 - bl ov5_021DF53C - str r4, [r0, #8] - pop {r4, pc} - ; .align 2, 0 - thumb_func_end ov5_021F5A10 - - thumb_func_start ov5_021F5A24 -ov5_021F5A24: ; 0x021F5A24 - push {r4, lr} - add r4, r0, #0 - bl ov5_021F5B50 - add r0, r4, #0 - bl ov5_021DF554 - pop {r4, pc} - thumb_func_end ov5_021F5A24 - - thumb_func_start ov5_021F5A34 -ov5_021F5A34: ; 0x021F5A34 - mov r1, #0 - ldrsh r1, [r0, r1] - add r1, r1, #1 - strh r1, [r0] - bx lr - ; .align 2, 0 - thumb_func_end ov5_021F5A34 - - thumb_func_start ov5_021F5A40 -ov5_021F5A40: ; 0x021F5A40 - push {r3, lr} - mov r1, #0 - ldrsh r2, [r0, r1] - sub r2, r2, #1 - strh r2, [r0] - ldrsh r0, [r0, r1] - cmp r0, #0 - bge _021F5A54 - bl GF_AssertFail -_021F5A54: - pop {r3, pc} - ; .align 2, 0 - thumb_func_end ov5_021F5A40 - - thumb_func_start ov5_021F5A58 -ov5_021F5A58: ; 0x021F5A58 - mov r1, #2 - ldrsh r1, [r0, r1] - add r1, r1, #1 - strh r1, [r0, #2] - bx lr - ; .align 2, 0 - thumb_func_end ov5_021F5A58 - - thumb_func_start ov5_021F5A64 -ov5_021F5A64: ; 0x021F5A64 - push {r3, lr} - mov r1, #2 - ldrsh r2, [r0, r1] - sub r2, r2, #1 - strh r2, [r0, #2] - ldrsh r0, [r0, r1] - cmp r0, #0 - bge _021F5A78 - bl GF_AssertFail -_021F5A78: - pop {r3, pc} - ; .align 2, 0 - thumb_func_end ov5_021F5A64 - - thumb_func_start ov5_021F5A7C -ov5_021F5A7C: ; 0x021F5A7C - push {r3, lr} - cmp r1, #0 - bne _021F5A88 - bl ov5_021F5A34 - pop {r3, pc} -_021F5A88: - bl ov5_021F5A58 - pop {r3, pc} - ; .align 2, 0 - thumb_func_end ov5_021F5A7C - - thumb_func_start ov5_021F5A90 -ov5_021F5A90: ; 0x021F5A90 - push {r3, lr} - cmp r1, #0 - bne _021F5A9C - bl ov5_021F5A40 - pop {r3, pc} -_021F5A9C: - bl ov5_021F5A64 - pop {r3, pc} - ; .align 2, 0 - thumb_func_end ov5_021F5A90 - - thumb_func_start ov5_021F5AA4 -ov5_021F5AA4: ; 0x021F5AA4 - push {r4, lr} - ldr r0, [r0, #0x40] - add r4, r1, #0 - mov r1, #0x14 - bl ov5_021DF55C - strb r4, [r0, #6] - pop {r4, pc} - thumb_func_end ov5_021F5AA4 - - thumb_func_start ov5_021F5AB4 -ov5_021F5AB4: ; 0x021F5AB4 - push {r3, r4, lr} - sub sp, #0xc - add r4, r0, #0 - ldrb r0, [r4, #4] - cmp r0, #0 - bne _021F5AF8 - mov r1, #1 - strb r1, [r4, #4] - ldr r0, [r4, #8] - mov r2, #0x55 - bl ov5_021DF9E0 - ldr r0, [r4, #8] - mov r1, #1 - mov r2, #0xaa - bl ov5_021DFA14 - mov r1, #1 - ldr r0, [r4, #8] - mov r2, #4 - add r3, r1, #0 - bl ov5_021DFA3C - mov r1, #1 - str r1, [sp] - mov r0, #0 - str r0, [sp, #4] - ldr r0, _021F5AFC ; =0x02200BC0 - add r2, r1, #0 - str r0, [sp, #8] - ldr r0, [r4, #8] - add r3, r1, #0 - bl ov5_021DF864 -_021F5AF8: - add sp, #0xc - pop {r3, r4, pc} - ; .align 2, 0 -_021F5AFC: .word Unk_ov5_02200BC0 - thumb_func_end ov5_021F5AB4 - - thumb_func_start ov5_021F5B00 -ov5_021F5B00: ; 0x021F5B00 - push {r3, r4, lr} - sub sp, #0xc - add r4, r0, #0 - ldrb r0, [r4, #5] - cmp r0, #0 - bne _021F5B48 - mov r0, #1 - strb r0, [r4, #5] - ldr r0, [r4, #8] - mov r1, #0xa - mov r2, #0x6c - bl ov5_021DF9E0 - ldr r0, [r4, #8] - mov r1, #0xa - mov r2, #0xaa - bl ov5_021DFA14 - ldr r0, [r4, #8] - mov r1, #0xb - mov r2, #0xd - mov r3, #1 - bl ov5_021DFA3C - mov r0, #0xb - str r0, [sp] - mov r0, #0 - str r0, [sp, #4] - ldr r0, _021F5B4C ; =0x02200BC0 - mov r2, #0xa - str r0, [sp, #8] - ldr r0, [r4, #8] - mov r1, #0xc - add r3, r2, #0 - bl ov5_021DF864 -_021F5B48: - add sp, #0xc - pop {r3, r4, pc} - ; .align 2, 0 -_021F5B4C: .word Unk_ov5_02200BC0 - thumb_func_end ov5_021F5B00 - - thumb_func_start ov5_021F5B50 -ov5_021F5B50: ; 0x021F5B50 - push {r4, lr} - add r4, r0, #0 - ldrb r0, [r4, #4] - cmp r0, #1 - bne _021F5B7E - mov r0, #0 - strb r0, [r4, #4] - ldr r0, [r4, #8] - mov r1, #1 - bl ov5_021DFA08 - ldr r0, [r4, #8] - mov r1, #1 - bl ov5_021DFA30 - ldr r0, [r4, #8] - mov r1, #1 - bl ov5_021DFA7C - ldr r0, [r4, #8] - mov r1, #1 - bl ov5_021DF9D4 -_021F5B7E: - pop {r4, pc} - thumb_func_end ov5_021F5B50 - - thumb_func_start ov5_021F5B80 -ov5_021F5B80: ; 0x021F5B80 - push {r4, lr} - add r4, r0, #0 - ldrb r0, [r4, #5] - cmp r0, #1 - bne _021F5BAE - mov r0, #0 - strb r0, [r4, #5] - ldr r0, [r4, #8] - mov r1, #0xa - bl ov5_021DFA08 - ldr r0, [r4, #8] - mov r1, #0xa - bl ov5_021DFA30 - ldr r0, [r4, #8] - mov r1, #0xb - bl ov5_021DFA7C - ldr r0, [r4, #8] - mov r1, #0xc - bl ov5_021DF9D4 -_021F5BAE: - pop {r4, pc} - thumb_func_end ov5_021F5B80 - - thumb_func_start ov5_021F5BB0 -ov5_021F5BB0: ; 0x021F5BB0 - push {r3, lr} - mov r1, #0 - ldrsh r1, [r0, r1] - cmp r1, #0 - bne _021F5BBE - bl ov5_021F5AB4 -_021F5BBE: - pop {r3, pc} - thumb_func_end ov5_021F5BB0 - - thumb_func_start ov5_021F5BC0 -ov5_021F5BC0: ; 0x021F5BC0 - push {r3, lr} - mov r1, #2 - ldrsh r1, [r0, r1] - cmp r1, #0 - bne _021F5BCE - bl ov5_021F5B00 -_021F5BCE: - pop {r3, pc} - thumb_func_end ov5_021F5BC0 - - thumb_func_start ov5_021F5BD0 -ov5_021F5BD0: ; 0x021F5BD0 - push {r3, lr} - mov r1, #0 - ldrsh r1, [r0, r1] - cmp r1, #0 - bne _021F5BDE - bl ov5_021F5B50 -_021F5BDE: - pop {r3, pc} - thumb_func_end ov5_021F5BD0 - - thumb_func_start ov5_021F5BE0 -ov5_021F5BE0: ; 0x021F5BE0 - push {r3, lr} - mov r1, #2 - ldrsh r1, [r0, r1] - cmp r1, #0 - bne _021F5BEE - bl ov5_021F5B80 -_021F5BEE: - pop {r3, pc} - thumb_func_end ov5_021F5BE0 - - thumb_func_start ov5_021F5BF0 -ov5_021F5BF0: ; 0x021F5BF0 - push {r3, lr} - cmp r1, #0 - bne _021F5BFC - bl ov5_021F5BB0 - pop {r3, pc} -_021F5BFC: - bl ov5_021F5BC0 - pop {r3, pc} - ; .align 2, 0 - thumb_func_end ov5_021F5BF0 - - thumb_func_start ov5_021F5C04 -ov5_021F5C04: ; 0x021F5C04 - push {r3, lr} - cmp r1, #0 - bne _021F5C10 - bl ov5_021F5BD0 - pop {r3, pc} -_021F5C10: - bl ov5_021F5BE0 - pop {r3, pc} - ; .align 2, 0 - thumb_func_end ov5_021F5C04 - - thumb_func_start ov5_021F5C18 -ov5_021F5C18: ; 0x021F5C18 - push {r4, r5, r6, lr} - sub sp, #8 - ldr r6, _021F5C48 ; =0x02200B7C - add r4, r3, #0 - ldmia r6!, {r5, r6} - add r3, sp, #0 - str r5, [sp] - str r6, [sp, #4] - lsl r1, r1, #2 - ldr r1, [r3, r1] - bl ov5_021DF84C - add r5, r0, #0 - cmp r4, #1 - bne _021F5C40 - bl sub_020213F4 - mov r1, #0 - bl NNS_G3dMdlSetMdlFogEnableFlagAll -_021F5C40: - add r0, r5, #0 - add sp, #8 - pop {r4, r5, r6, pc} - nop -_021F5C48: .word Unk_ov5_02200B7C - thumb_func_end ov5_021F5C18 - - thumb_func_start ov5_021F5C4C -ov5_021F5C4C: ; 0x021F5C4C - push {r3, lr} - bl sub_02071598 - ldr r0, [r0, #0x14] - pop {r3, pc} - ; .align 2, 0 - thumb_func_end ov5_021F5C4C - - thumb_func_start ov5_021F5C58 -ov5_021F5C58: ; 0x021F5C58 - push {r3, lr} - bl sub_02071598 - mov r1, #1 - str r1, [r0, #0x10] - ldr r0, [r0, #0x40] - cmp r0, #0 - beq _021F5C6E - mov r1, #0 - bl sub_02021320 -_021F5C6E: - pop {r3, pc} - thumb_func_end ov5_021F5C58 - - thumb_func_start ov5_021F5C70 -ov5_021F5C70: ; 0x021F5C70 - push {r4, r5, lr} - sub sp, #0xc - add r4, r1, #0 - add r5, r0, #0 - bl sub_020715BC - add r2, r4, #0 - add r3, r0, #0 - add r2, #0x30 - ldmia r3!, {r0, r1} - stmia r2!, {r0, r1} - ldmia r3!, {r0, r1} - stmia r2!, {r0, r1} - mov r0, #6 - lsl r0, r0, #0xc - str r0, [r4, #0x28] - ldr r0, [r4, #0x38] - ldr r1, [r4, #0x30] - bl ov5_021F5BF0 - add r0, r5, #0 - add r1, sp, #0 - bl sub_020715E4 - ldr r3, [r4, #0x38] - ldr r0, [r4, #0x34] - ldrb r3, [r3, #6] - ldr r1, [r4, #0x30] - add r2, sp, #0 - bl ov5_021F5C18 - str r0, [r4, #0x40] - ldr r0, [r4, #0x38] - ldr r1, [r4, #0x30] - bl ov5_021F5A7C - add r0, r5, #0 - bl sub_020715B4 - cmp r0, #1 - bne _021F5CC8 - ldr r0, _021F5CD0 ; =0x000005DD - bl sub_02005748 -_021F5CC8: - mov r0, #1 - add sp, #0xc - pop {r4, r5, pc} - nop -_021F5CD0: .word 0x000005DD - thumb_func_end ov5_021F5C70 - - thumb_func_start ov5_021F5CD4 -ov5_021F5CD4: ; 0x021F5CD4 - push {r4, r5, lr} - sub sp, #0xc - add r4, r1, #0 - add r1, sp, #0 - add r5, r0, #0 - bl sub_020715E4 - ldr r0, [r4, #0] - cmp r0, #0 - beq _021F5CF0 - cmp r0, #1 - beq _021F5D12 - cmp r0, #2 - b _021F5D2A -_021F5CF0: - ldr r1, [r4, #0x1c] - ldr r0, [r4, #0x28] - add r0, r1, r0 - str r0, [r4, #0x1c] - beq _021F5D06 - mov r0, #2 - ldr r1, [r4, #0x28] - lsl r0, r0, #0xc - sub r0, r1, r0 - str r0, [r4, #0x28] - b _021F5D2A -_021F5D06: - mov r0, #0 - str r0, [r4, #0x28] - ldr r0, [r4, #0] - add r0, r0, #1 - str r0, [r4, #0] - b _021F5D2A -_021F5D12: - ldr r0, [r4, #4] - add r0, r0, #1 - str r0, [r4, #4] - cmp r0, #0x1e - blt _021F5D2A - ldr r0, [r4, #0] - add r0, r0, #1 - str r0, [r4, #0] - mov r0, #0 - str r0, [r4, #4] - mov r0, #1 - str r0, [r4, #0x14] -_021F5D2A: - add r0, r5, #0 - add r1, sp, #0 - bl sub_020715D4 - add sp, #0xc - pop {r4, r5, pc} - ; .align 2, 0 - thumb_func_end ov5_021F5CD4 - - thumb_func_start ov5_021F5D38 -ov5_021F5D38: ; 0x021F5D38 - push {r4, lr} - add r4, r1, #0 - ldr r0, [r4, #0x40] - bl sub_020211FC - ldr r0, [r4, #0x38] - ldr r1, [r4, #0x30] - bl ov5_021F5A90 - ldr r0, [r4, #0x38] - ldr r1, [r4, #0x30] - bl ov5_021F5C04 - pop {r4, pc} - thumb_func_end ov5_021F5D38 - - thumb_func_start ov5_021F5D54 -ov5_021F5D54: ; 0x021F5D54 - push {r3, r4, lr} - sub sp, #0xc - add r4, r1, #0 - ldr r1, [r4, #0x10] - cmp r1, #1 - beq _021F5D86 - add r1, sp, #0 - bl sub_020715E4 - ldr r1, [sp] - ldr r0, [r4, #0x18] - add r0, r1, r0 - str r0, [sp] - ldr r1, [sp, #4] - ldr r0, [r4, #0x1c] - add r0, r1, r0 - str r0, [sp, #4] - ldr r1, [sp, #8] - ldr r0, [r4, #0x20] - add r0, r1, r0 - str r0, [sp, #8] - ldr r0, [r4, #0x40] - add r1, sp, #0 - bl sub_020212A8 -_021F5D86: - add sp, #0xc - pop {r3, r4, pc} - ; .align 2, 0 - thumb_func_end ov5_021F5D54 - - thumb_func_start ov5_021F5D8C -ov5_021F5D8C: ; 0x021F5D8C - push {r3, r4, r5, r6, r7, lr} - sub sp, #0x28 - add r5, r0, #0 - add r6, r1, #0 - str r2, [sp, #8] - add r7, r3, #0 - bl ov5_021DF578 - add r4, r0, #0 - mov r1, #0x14 - str r6, [sp, #0x18] - str r4, [sp, #0x1c] - bl ov5_021DF55C - str r0, [sp, #0x20] - add r0, r5, #0 - add r1, sp, #0xc - str r5, [sp, #0x24] - bl sub_02063050 - add r0, r5, #0 - bl sub_02062C0C - add r2, r0, #1 - cmp r7, #1 - bne _021F5DC4 - ldr r1, _021F5DDC ; =0x02200BAC - b _021F5DC6 -_021F5DC4: - ldr r1, _021F5DE0 ; =0x02200B84 -_021F5DC6: - add r0, sp, #0x18 - str r0, [sp] - str r2, [sp, #4] - ldr r3, [sp, #8] - add r0, r4, #0 - add r2, sp, #0xc - bl ov5_021DF72C - add sp, #0x28 - pop {r3, r4, r5, r6, r7, pc} - nop -_021F5DDC: .word Unk_ov5_02200BAC -_021F5DE0: .word Unk_ov5_02200B84 - thumb_func_end ov5_021F5D8C - - thumb_func_start ov5_021F5DE4 -ov5_021F5DE4: ; 0x021F5DE4 - push {r4, r5, lr} - sub sp, #0xc - add r4, r1, #0 - add r5, r0, #0 - bl sub_020715BC - add r2, r4, #0 - add r3, r0, #0 - add r2, #0x30 - ldmia r3!, {r0, r1} - stmia r2!, {r0, r1} - ldmia r3!, {r0, r1} - stmia r2!, {r0, r1} - ldr r0, [r4, #0x3c] - bl sub_02062910 - str r0, [r4, #8] - ldr r0, [r4, #0x3c] - bl sub_02062918 - str r0, [r4, #0xc] - mov r0, #6 - lsl r0, r0, #0xc - str r0, [r4, #0x28] - ldr r0, [r4, #0x38] - ldr r1, [r4, #0x30] - bl ov5_021F5BF0 - add r0, r5, #0 - add r1, sp, #0 - bl sub_020715E4 - ldr r3, [r4, #0x38] - ldr r0, [r4, #0x34] - ldrb r3, [r3, #6] - ldr r1, [r4, #0x30] - add r2, sp, #0 - bl ov5_021F5C18 - str r0, [r4, #0x40] - ldr r0, [r4, #0x38] - ldr r1, [r4, #0x30] - bl ov5_021F5A7C - add r0, r5, #0 - bl sub_020715B4 - cmp r0, #1 - bne _021F5E4C - ldr r0, _021F5E54 ; =0x000005DD - bl sub_02005748 -_021F5E4C: - mov r0, #1 - add sp, #0xc - pop {r4, r5, pc} - nop -_021F5E54: .word 0x000005DD - thumb_func_end ov5_021F5DE4 - - thumb_func_start ov5_021F5E58 -ov5_021F5E58: ; 0x021F5E58 - push {r3, r4, r5, r6, lr} - sub sp, #0xc - add r4, r1, #0 - ldr r6, [r4, #0x3c] - ldr r1, [r4, #8] - add r5, r0, #0 - ldr r2, [r4, #0xc] - add r0, r6, #0 - bl sub_02062764 - cmp r0, #0 - bne _021F5E74 - bl GF_AssertFail -_021F5E74: - add r0, r6, #0 - add r1, sp, #0 - bl ov5_021ECDA0 - mov r0, #2 - ldr r1, [sp, #4] - lsl r0, r0, #0x10 - add r1, r1, r0 - str r1, [sp, #4] - ldr r2, [sp, #8] - lsr r1, r0, #5 - add r1, r2, r1 - str r1, [sp, #8] - ldr r1, [r4, #0] - cmp r1, #0 - beq _021F5E9C - cmp r1, #1 - beq _021F5EBC - cmp r1, #2 - b _021F5ED4 -_021F5E9C: - ldr r2, [r4, #0x1c] - ldr r1, [r4, #0x28] - add r1, r2, r1 - str r1, [r4, #0x1c] - beq _021F5EB0 - ldr r1, [r4, #0x28] - lsr r0, r0, #4 - sub r0, r1, r0 - str r0, [r4, #0x28] - b _021F5ED4 -_021F5EB0: - mov r0, #0 - str r0, [r4, #0x28] - ldr r0, [r4, #0] - add r0, r0, #1 - str r0, [r4, #0] - b _021F5ED4 -_021F5EBC: - ldr r0, [r4, #4] - add r0, r0, #1 - str r0, [r4, #4] - cmp r0, #0x1e - blt _021F5ED4 - ldr r0, [r4, #0] - add r0, r0, #1 - str r0, [r4, #0] - mov r0, #0 - str r0, [r4, #4] - mov r0, #1 - str r0, [r4, #0x14] -_021F5ED4: - add r0, r5, #0 - add r1, sp, #0 - bl sub_020715D4 - add sp, #0xc - pop {r3, r4, r5, r6, pc} - thumb_func_end ov5_021F5E58 - - thumb_func_start ov5_021F5EE0 -ov5_021F5EE0: ; 0x021F5EE0 - push {r4, lr} - add r4, r1, #0 - bl sub_020715BC - add r2, r4, #0 - add r3, r0, #0 - add r2, #0x30 - ldmia r3!, {r0, r1} - stmia r2!, {r0, r1} - ldmia r3!, {r0, r1} - stmia r2!, {r0, r1} - ldr r0, [r4, #0x3c] - bl sub_02062910 - str r0, [r4, #8] - ldr r0, [r4, #0x3c] - bl sub_02062918 - str r0, [r4, #0xc] - mov r0, #6 - lsl r0, r0, #0xc - str r0, [r4, #0x28] - mov r0, #1 - str r0, [r4, #0x10] - ldr r0, [r4, #0x38] - ldr r1, [r4, #0x30] - bl ov5_021F5BF0 - ldr r0, [r4, #0x38] - ldr r1, [r4, #0x30] - bl ov5_021F5A7C - mov r0, #1 - pop {r4, pc} - thumb_func_end ov5_021F5EE0 - - thumb_func_start ov5_021F5F24 -ov5_021F5F24: ; 0x021F5F24 - push {r3, r4, r5, r6, lr} - sub sp, #0xc - add r4, r1, #0 - ldr r6, [r4, #0x3c] - ldr r1, [r4, #8] - add r5, r0, #0 - ldr r2, [r4, #0xc] - add r0, r6, #0 - bl sub_02062764 - cmp r0, #0 - bne _021F5F40 - bl GF_AssertFail -_021F5F40: - add r0, r6, #0 - add r1, sp, #0 - bl ov5_021ECDA0 - mov r0, #2 - ldr r1, [sp, #4] - lsl r0, r0, #0x10 - add r1, r1, r0 - str r1, [sp, #4] - ldr r1, [sp, #8] - lsr r0, r0, #5 - add r0, r1, r0 - str r0, [sp, #8] - ldr r0, [r4, #0] - cmp r0, #6 - bhi _021F5FFA - add r1, r0, r0 - add r1, pc - ldrh r1, [r1, #6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_021F5F6C: ; jump table - .short _021F5F7A - _021F5F6C - 2 ; case 0 - .short _021F5F7A - _021F5F6C - 2 ; case 1 - .short _021F5F80 - _021F5F6C - 2 ; case 2 - .short _021F5F9E - _021F5F6C - 2 ; case 3 - .short _021F5FC0 - _021F5F6C - 2 ; case 4 - .short _021F5FE2 - _021F5F6C - 2 ; case 5 - .short _021F5FFA - _021F5F6C - 2 ; case 6 -_021F5F7A: - add r0, r0, #1 - str r0, [r4, #0] - b _021F5FFA -_021F5F80: - ldr r3, [r4, #0x38] - ldr r0, [r4, #0x34] - ldrb r3, [r3, #6] - ldr r1, [r4, #0x30] - add r2, sp, #0 - bl ov5_021F5C18 - str r0, [r4, #0x40] - mov r1, #0 - bl sub_02021320 - ldr r0, [r4, #0] - add r0, r0, #1 - str r0, [r4, #0] - b _021F5FFA -_021F5F9E: - ldr r0, [r4, #0x40] - mov r1, #1 - bl sub_02021320 - mov r0, #0 - str r0, [r4, #0x10] - add r0, r5, #0 - bl sub_020715B4 - cmp r0, #1 - bne _021F5FBA - ldr r0, _021F6008 ; =0x000005DD - bl sub_02005748 -_021F5FBA: - ldr r0, [r4, #0] - add r0, r0, #1 - str r0, [r4, #0] -_021F5FC0: - ldr r1, [r4, #0x1c] - ldr r0, [r4, #0x28] - add r0, r1, r0 - str r0, [r4, #0x1c] - beq _021F5FD6 - mov r0, #2 - ldr r1, [r4, #0x28] - lsl r0, r0, #0xc - sub r0, r1, r0 - str r0, [r4, #0x28] - b _021F5FFA -_021F5FD6: - mov r0, #0 - str r0, [r4, #0x28] - ldr r0, [r4, #0] - add r0, r0, #1 - str r0, [r4, #0] - b _021F5FFA -_021F5FE2: - ldr r0, [r4, #4] - add r0, r0, #1 - str r0, [r4, #4] - cmp r0, #0x1e - blt _021F5FFA - ldr r0, [r4, #0] - add r0, r0, #1 - str r0, [r4, #0] - mov r0, #0 - str r0, [r4, #4] - mov r0, #1 - str r0, [r4, #0x14] -_021F5FFA: - add r0, r5, #0 - add r1, sp, #0 - bl sub_020715D4 - add sp, #0xc - pop {r3, r4, r5, r6, pc} - nop -_021F6008: .word 0x000005DD - thumb_func_end ov5_021F5F24 - - .rodata - - - .global Unk_ov5_02200B7C -Unk_ov5_02200B7C: ; 0x02200B7C - .incbin "incbin/overlay5_rodata.bin", 0x8268, 0x8270 - 0x8268 - - .global Unk_ov5_02200B84 -Unk_ov5_02200B84: ; 0x02200B84 - .incbin "incbin/overlay5_rodata.bin", 0x8270, 0x4 - .word ov5_021F5DE4 - .word ov5_021F5D38 - .word ov5_021F5E58 - .word ov5_021F5D54 - - .global Unk_ov5_02200B98 -Unk_ov5_02200B98: ; 0x02200B98 - .incbin "incbin/overlay5_rodata.bin", 0x8284, 0x4 - .word ov5_021F5C70 - .word ov5_021F5D38 - .word ov5_021F5CD4 - .word ov5_021F5D54 - - .global Unk_ov5_02200BAC -Unk_ov5_02200BAC: ; 0x02200BAC - .incbin "incbin/overlay5_rodata.bin", 0x8298, 0x4 - .word ov5_021F5EE0 - .word ov5_021F5D38 - .word ov5_021F5F24 - .word ov5_021F5D54 - - .global Unk_ov5_02200BC0 -Unk_ov5_02200BC0: ; 0x02200BC0 - .incbin "incbin/overlay5_rodata.bin", 0x82AC, 0x18 - diff --git a/asm/overlay005/ov5_021FAF40.s b/asm/overlay005/ov5_021FAF40.s deleted file mode 100644 index 68884c3387..0000000000 --- a/asm/overlay005/ov5_021FAF40.s +++ /dev/null @@ -1,412 +0,0 @@ - .include "macros/function.inc" - - - .extern ov5_021EBA0C - .extern ov5_021EC3F0 - .extern ov5_021EBA34 - .extern ov5_021EBA60 - .extern ov5_021EBA8C - .extern sub_02067870 - .extern sub_02067890 - .extern sub_02067950 - .extern sub_02067968 - .extern sub_02067998 - .extern ov5_021EBA0C - .extern ov5_021EBF50 - .extern ov5_021EBA34 - .extern ov5_021EBA60 - .extern ov5_021EBA8C - .extern ov5_021ECA70 - .extern ov5_021ECA90 - .extern ov5_021ECABC - .extern ov5_021ECAC4 - .extern ov5_021ECAF0 - .extern ov5_021EBA0C - .extern ov5_021EC454 - .extern ov5_021EBA34 - .extern ov5_021EBA60 - .extern ov5_021EBA8C - .extern ov5_021EC824 - .extern ov5_021EC8EC - .extern ov5_021EC858 - .extern ov5_021EC86C - .extern ov5_021EC898 - .extern ov5_021EB2EC - .extern ov5_021EB398 - .extern ov5_021EB314 - .extern ov5_021EB328 - .extern ov5_021EB354 - .extern ov5_021EBA0C - .extern ov5_021EC4BC - .extern ov5_021EBA34 - .extern ov5_021EBA60 - .extern ov5_021EBA8C - .extern ov5_021EC734 - .extern ov5_021EC75C - .extern ov5_021EC760 - .extern ov5_021EC778 - .extern ov5_021EC790 - .extern ov5_021EBA0C - .extern ov5_021EC15C - .extern ov5_021EBA34 - .extern ov5_021EBA60 - .extern ov5_021EBA8C - .extern ov5_021EC938 - .extern ov5_021EC9E8 - .extern ov5_021EC95C - .extern ov5_021EC970 - .extern ov5_021EC9A0 - .extern ov5_021EB2EC - .extern ov5_021EB438 - .extern ov5_021EB314 - .extern ov5_021EB328 - .extern ov5_021EB354 - .extern ov5_021EC7B8 - .extern ov5_021EC75C - .extern ov5_021EC760 - .extern ov5_021EC778 - .extern ov5_021EC7D0 - .extern ov5_021EB7F8 - .extern ov5_021EB8B8 - .extern ov5_021EB834 - .extern ov5_021EB848 - .extern ov5_021EB874 - .extern ov5_021EB2EC - .extern ov5_021EB944 - .extern ov5_021EB314 - .extern ov5_021EB328 - .extern ov5_021EB354 - .extern ov5_021EB2EC - .extern ov5_021EB720 - .extern ov5_021EB314 - .extern ov5_021EB328 - .extern ov5_021EB354 - .extern ov5_021EB2EC - .extern ov5_021EB40C - .extern ov5_021EB314 - .extern ov5_021EB328 - .extern ov5_021EB354 - .extern ov5_021ECB34 - .extern ov5_021ECB58 - .extern ov5_021ECB78 - .extern ov5_021ECAC4 - .extern ov5_021ECAF0 - .extern ov5_021EBA0C - .extern ov5_021EC5C0 - .extern ov5_021EBA34 - .extern ov5_021EBA60 - .extern ov5_021EBA8C - .extern ov5_021EBA0C - .extern ov5_021EC554 - .extern ov5_021EBA34 - .extern ov5_021EBA60 - .extern ov5_021EBA8C - .extern ov5_021EBA0C - .extern ov5_021EBAD0 - .extern ov5_021EBA34 - .extern ov5_021EBA60 - .extern ov5_021EBA8C - .extern ov5_021ECE18 - .extern ov5_021ECE30 - .extern ov5_021ECE34 - .extern ov5_021ECE38 - .extern ov5_021ECE3C - - .rodata - - .global Unk_ov5_021FAF40 -Unk_ov5_021FAF40: ; 0x021FAF40 - .incbin "incbin/overlay5_rodata.bin", 0x262C, 0x2634 - 0x262C - - .global Unk_ov5_021FAF48 -Unk_ov5_021FAF48: ; 0x021FAF48 - .incbin "incbin/overlay5_rodata.bin", 0x2634, 0x263C - 0x2634 - - .global Unk_ov5_021FAF50 -Unk_ov5_021FAF50: ; 0x021FAF50 - .incbin "incbin/overlay5_rodata.bin", 0x263C, 0x264C - 0x263C - - .global Unk_ov5_021FAF60 -Unk_ov5_021FAF60: ; 0x021FAF60 - .word ov5_021EBA0C - .word ov5_021EC3F0 - .word ov5_021EBA34 - .word ov5_021EBA60 - .word ov5_021EBA8C - - .global Unk_ov5_021FAF74 -Unk_ov5_021FAF74: ; 0x021FAF74 - .word sub_02067870 - .word sub_02067890 - .word sub_02067950 - .word sub_02067968 - .word sub_02067998 - - .global Unk_ov5_021FAF88 -Unk_ov5_021FAF88: ; 0x021FAF88 - .word ov5_021EBA0C - .word ov5_021EBF50 - .word ov5_021EBA34 - .word ov5_021EBA60 - .word ov5_021EBA8C - - .global Unk_ov5_021FAF9C -Unk_ov5_021FAF9C: ; 0x021FAF9C - .word ov5_021ECA70 - .word ov5_021ECA90 - .word ov5_021ECABC - .word ov5_021ECAC4 - .word ov5_021ECAF0 - - .global Unk_ov5_021FAFB0 -Unk_ov5_021FAFB0: ; 0x021FAFB0 - .word ov5_021EBA0C - .word ov5_021EC454 - .word ov5_021EBA34 - .word ov5_021EBA60 - .word ov5_021EBA8C - - .global Unk_ov5_021FAFC4 -Unk_ov5_021FAFC4: ; 0x021FAFC4 - .word ov5_021EC824 - .word ov5_021EC8EC - .word ov5_021EC858 - .word ov5_021EC86C - .word ov5_021EC898 - - .global Unk_ov5_021FAFD8 -Unk_ov5_021FAFD8: ; 0x021FAFD8 - .word ov5_021EB2EC - .word ov5_021EB398 - .word ov5_021EB314 - .word ov5_021EB328 - .word ov5_021EB354 - - .global Unk_ov5_021FAFEC -Unk_ov5_021FAFEC: ; 0x021FAFEC - .word ov5_021EBA0C - .word ov5_021EC4BC - .word ov5_021EBA34 - .word ov5_021EBA60 - .word ov5_021EBA8C - - .global Unk_ov5_021FB000 -Unk_ov5_021FB000: ; 0x021FB000 - .word ov5_021EC734 - .word ov5_021EC75C - .word ov5_021EC760 - .word ov5_021EC778 - .word ov5_021EC790 - - .global Unk_ov5_021FB014 -Unk_ov5_021FB014: ; 0x021FB014 - .word ov5_021EBA0C - .word ov5_021EC15C - .word ov5_021EBA34 - .word ov5_021EBA60 - .word ov5_021EBA8C - - .global Unk_ov5_021FB028 -Unk_ov5_021FB028: ; 0x021FB028 - .word ov5_021EC938 - .word ov5_021EC9E8 - .word ov5_021EC95C - .word ov5_021EC970 - .word ov5_021EC9A0 - - .global Unk_ov5_021FB03C -Unk_ov5_021FB03C: ; 0x021FB03C - .word ov5_021EB2EC - .word ov5_021EB438 - .word ov5_021EB314 - .word ov5_021EB328 - .word ov5_021EB354 - - .global Unk_ov5_021FB050 -Unk_ov5_021FB050: ; 0x021FB050 - .word ov5_021EC7B8 - .word ov5_021EC75C - .word ov5_021EC760 - .word ov5_021EC778 - .word ov5_021EC7D0 - - .global Unk_ov5_021FB064 -Unk_ov5_021FB064: ; 0x021FB064 - .word ov5_021EB7F8 - .word ov5_021EB8B8 - .word ov5_021EB834 - .word ov5_021EB848 - .word ov5_021EB874 - - .global Unk_ov5_021FB078 -Unk_ov5_021FB078: ; 0x021FB078 - .word ov5_021EB2EC - .word ov5_021EB944 - .word ov5_021EB314 - .word ov5_021EB328 - .word ov5_021EB354 - - .global Unk_ov5_021FB08C -Unk_ov5_021FB08C: ; 0x021FB08C - .word ov5_021EB2EC - .word ov5_021EB720 - .word ov5_021EB314 - .word ov5_021EB328 - .word ov5_021EB354 - - .global Unk_ov5_021FB0A0 -Unk_ov5_021FB0A0: ; 0x021FB0A0 - .word ov5_021EB2EC - .word ov5_021EB40C - .word ov5_021EB314 - .word ov5_021EB328 - .word ov5_021EB354 - - .global Unk_ov5_021FB0B4 -Unk_ov5_021FB0B4: ; 0x021FB0B4 - .word ov5_021ECB34 - .word ov5_021ECB58 - .word ov5_021ECB78 - .word ov5_021ECAC4 - .word ov5_021ECAF0 - - .global Unk_ov5_021FB0C8 -Unk_ov5_021FB0C8: ; 0x021FB0C8 - .word ov5_021EBA0C - .word ov5_021EC5C0 - .word ov5_021EBA34 - .word ov5_021EBA60 - .word ov5_021EBA8C - - .global Unk_ov5_021FB0DC -Unk_ov5_021FB0DC: ; 0x021FB0DC - .word ov5_021EBA0C - .word ov5_021EC554 - .word ov5_021EBA34 - .word ov5_021EBA60 - .word ov5_021EBA8C - - .global Unk_ov5_021FB0F0 -Unk_ov5_021FB0F0: ; 0x021FB0F0 - .word ov5_021EBA0C - .word ov5_021EBAD0 - .word ov5_021EBA34 - .word ov5_021EBA60 - .word ov5_021EBA8C - - .global Unk_ov5_021FB104 -Unk_ov5_021FB104: ; 0x021FB104 - .incbin "incbin/overlay5_rodata.bin", 0x27F0, 0x2808 - 0x27F0 - - .global Unk_ov5_021FB11C -Unk_ov5_021FB11C: ; 0x021FB11C - .incbin "incbin/overlay5_rodata.bin", 0x2808, 0x2820 - 0x2808 - - .global Unk_ov5_021FB134 -Unk_ov5_021FB134: ; 0x021FB134 - .incbin "incbin/overlay5_rodata.bin", 0x2820, 0x2838 - 0x2820 - - .global Unk_ov5_021FB14C -Unk_ov5_021FB14C: ; 0x021FB14C - .incbin "incbin/overlay5_rodata.bin", 0x2838, 0x2850 - 0x2838 - - .global Unk_ov5_021FB164 -Unk_ov5_021FB164: ; 0x021FB164 - .incbin "incbin/overlay5_rodata.bin", 0x2850, 0x2868 - 0x2850 - - .global Unk_ov5_021FB17C -Unk_ov5_021FB17C: ; 0x021FB17C - .incbin "incbin/overlay5_rodata.bin", 0x2868, 0x2880 - 0x2868 - - .global Unk_ov5_021FB194 -Unk_ov5_021FB194: ; 0x021FB194 - .incbin "incbin/overlay5_rodata.bin", 0x2880, 0x2898 - 0x2880 - - .global Unk_ov5_021FB1AC -Unk_ov5_021FB1AC: ; 0x021FB1AC - .incbin "incbin/overlay5_rodata.bin", 0x2898, 0x28B0 - 0x2898 - - .global Unk_ov5_021FB1C4 -Unk_ov5_021FB1C4: ; 0x021FB1C4 - .incbin "incbin/overlay5_rodata.bin", 0x28B0, 0x28C8 - 0x28B0 - - .global Unk_ov5_021FB1DC -Unk_ov5_021FB1DC: ; 0x021FB1DC - .incbin "incbin/overlay5_rodata.bin", 0x28C8, 0x28EC - 0x28C8 - - .global Unk_ov5_021FB200 -Unk_ov5_021FB200: ; 0x021FB200 - .incbin "incbin/overlay5_rodata.bin", 0x28EC, 0x2910 - 0x28EC - - .global Unk_ov5_021FB224 -Unk_ov5_021FB224: ; 0x021FB224 - .incbin "incbin/overlay5_rodata.bin", 0x2910, 0x2934 - 0x2910 - - .global Unk_ov5_021FB248 -Unk_ov5_021FB248: ; 0x021FB248 - .incbin "incbin/overlay5_rodata.bin", 0x2934, 0x2970 - 0x2934 - - .global Unk_ov5_021FB284 -Unk_ov5_021FB284: ; 0x021FB284 - .incbin "incbin/overlay5_rodata.bin", 0x2970, 0x29AC - 0x2970 - - .global Unk_ov5_021FB2C0 -Unk_ov5_021FB2C0: ; 0x021FB2C0 - .incbin "incbin/overlay5_rodata.bin", 0x29AC, 0x29E8 - 0x29AC - - .global Unk_ov5_021FB2FC -Unk_ov5_021FB2FC: ; 0x021FB2FC - .incbin "incbin/overlay5_rodata.bin", 0x29E8, 0x2A24 - 0x29E8 - - .global Unk_ov5_021FB338 -Unk_ov5_021FB338: ; 0x021FB338 - .incbin "incbin/overlay5_rodata.bin", 0x2A24, 0x2A6C - 0x2A24 - - .global Unk_ov5_021FB380 -Unk_ov5_021FB380: ; 0x021FB380 - .incbin "incbin/overlay5_rodata.bin", 0x2A6C, 0x2AD8 - 0x2A6C - - .global Unk_ov5_021FB3EC -Unk_ov5_021FB3EC: ; 0x021FB3EC - .incbin "incbin/overlay5_rodata.bin", 0x2AD8, 0x2B5C - 0x2AD8 - - .global Unk_ov5_021FB470 -Unk_ov5_021FB470: ; 0x021FB470 - .word ov5_021ECE18 - .word ov5_021ECE30 - .word ov5_021ECE34 - .word ov5_021ECE38 - .word ov5_021ECE3C - - .global Unk_ov5_021FB484 -Unk_ov5_021FB484: ; 0x021FB484 - .incbin "incbin/overlay5_rodata.bin", 0x2B70, 0x2C08 - 0x2B70 - - .global Unk_ov5_021FB51C -Unk_ov5_021FB51C: ; 0x021FB51C - .incbin "incbin/overlay5_rodata.bin", 0x2C08, 0x2CA8 - 0x2C08 - - .global Unk_ov5_021FB5BC -Unk_ov5_021FB5BC: ; 0x021FB5BC - .incbin "incbin/overlay5_rodata.bin", 0x2CA8, 0x2D68 - 0x2CA8 - - .global Unk_ov5_021FB67C -Unk_ov5_021FB67C: ; 0x021FB67C - .incbin "incbin/overlay5_rodata.bin", 0x2D68, 0x3068 - 0x2D68 - - .global Unk_ov5_021FB97C -Unk_ov5_021FB97C: ; 0x021FB97C - .incbin "incbin/overlay5_rodata.bin", 0x3068, 0x3880 - 0x3068 - - .global Unk_ov5_021FC194 -Unk_ov5_021FC194: ; 0x021FC194 - .incbin "incbin/overlay5_rodata.bin", 0x3880, 0x40A0 - 0x3880 - - .global Unk_ov5_021FC9B4 -Unk_ov5_021FC9B4: ; 0x021FC9B4 - .incbin "incbin/overlay5_rodata.bin", 0x40A0, 0x4E68 - 0x40A0 - - .global Unk_ov5_021FD77C -Unk_ov5_021FD77C: ; 0x021FD77C - .incbin "incbin/overlay5_rodata.bin", 0x4E68, 0x1B90 - diff --git a/main.lsf b/main.lsf index 866b765ac0..5bcc3782ce 100644 --- a/main.lsf +++ b/main.lsf @@ -833,7 +833,7 @@ Overlay overlay5 Object src/overlay005/ov5_021DD42C.o Object src/overlay005/ov5_021DD6FC.o Object src/overlay005/ov5_021DDAE4.o - Object asm/overlay005/ov5_021DDBE8.o + Object src/overlay005/ov5_021DDBE8.o Object src/overlay005/ov5_021DF440.o Object src/overlay005/ov5_021DFB54.o Object src/overlay005/ov5_021E1154.o @@ -849,7 +849,7 @@ Overlay overlay5 Object src/overlay005/ov5_021EA714.o Object src/overlay005/ov5_021EA874.o Object src/overlay005/ov5_021EAFA4.o - Object asm/overlay005/ov5_021FAF40.o + Object src/overlay005/ov5_021FAF40.o Object src/overlay005/ov5_021EB1A0.o Object src/overlay005/ov5_021ECA70.o Object src/overlay005/ov5_021ECC20.o @@ -882,7 +882,7 @@ Overlay overlay5 Object src/overlay005/ov5_021F2850.o Object src/overlay005/ov5_021F2A7C.o Object src/overlay005/ov5_021F2BD0.o - Object asm/overlay005/ov5_021F2D20.o + Object src/overlay005/ov5_021F2D20.o Object src/overlay005/ov5_021F3284.o Object src/overlay005/ov5_021F348C.o Object src/overlay005/ov5_021F37A8.o @@ -901,7 +901,7 @@ Overlay overlay5 Object src/overlay005/ov5_021F55CC.o Object src/overlay005/ov5_021F575C.o Object src/overlay005/ov5_021F5894.o - Object asm/overlay005/ov5_021F5A10.o + Object src/overlay005/ov5_021F5A10.o Object src/overlay005/ov5_021F600C.o Object src/overlay005/ov5_021F61BC.o Object src/overlay005/ov5_021F6454.o diff --git a/src/overlay005/ov5_021DDBE8.c b/src/overlay005/ov5_021DDBE8.c new file mode 100644 index 0000000000..0ba4d15e18 --- /dev/null +++ b/src/overlay005/ov5_021DDBE8.c @@ -0,0 +1,1753 @@ +#include +#include + +#include "inlines.h" + +#include "struct_decls/struct_02006C24_decl.h" +#include "struct_decls/struct_02014014_decl.h" +#include "struct_decls/struct_02018340_decl.h" +#include "struct_decls/struct_0201CD38_decl.h" +#include "struct_decls/struct_020203AC_decl.h" +#include "struct_decls/struct_02022550_decl.h" +#include "struct_decls/struct_02073C74_decl.h" +#include "overlay005/struct_ov5_021DE6BC_decl.h" +#include "overlay005/struct_ov5_021DE79C_decl.h" +#include "overlay005/struct_ov5_021DE928_decl.h" +#include "overlay005/struct_ov5_021DEA98_decl.h" +#include "overlay005/struct_ov5_021DEC18_decl.h" +#include "overlay005/struct_ov5_021EF3BC_decl.h" +#include "overlay005/struct_ov5_021EF43C_decl.h" + +#include "functypes/funcptr_0201CE28.h" +#include "struct_defs/struct_0203CDB0.h" +#include "struct_defs/struct_0203CDB0_sub2_t.h" +#include "struct_defs/struct_0205AA50.h" +#include "struct_defs/struct_02099F80.h" +#include "overlay005/struct_ov5_021DDC28.h" +#include "overlay005/struct_ov5_021DDD80.h" +#include "overlay005/struct_ov5_021DDDBC.h" +#include "overlay005/struct_ov5_021DDE14.h" +#include "overlay005/struct_ov5_021DDF24.h" +#include "overlay005/struct_ov5_021DE47C.h" +#include "overlay005/struct_ov5_021DE5A4.h" +#include "overlay005/struct_ov5_021DE5D0.h" +#include "overlay006/struct_ov6_02240D5C.h" +#include "overlay083/struct_ov83_0223D9A8.h" +#include "overlay084/struct_ov84_0223BA5C.h" +#include "overlay097/struct_ov97_0222DB78.h" + +#include "unk_02002F38.h" +#include "unk_0200679C.h" +#include "unk_020068C8.h" +#include "unk_02006E3C.h" +#include "unk_020093B4.h" +#include "unk_02009714.h" +#include "unk_0200A328.h" +#include "unk_0200D9E8.h" +#include "unk_02014000.h" +#include "unk_02017E74.h" +#include "unk_02018340.h" +#include "unk_0201CCF0.h" +#include "unk_0201FE94.h" +#include "unk_02020020.h" +#include "unk_020218BC.h" +#include "unk_02054884.h" +#include "unk_02073C2C.h" +#include "overlay005/ov5_021D0D80.h" +#include "overlay005/ov5_021DDBE8.h" +#include "overlay005/ov5_021E2338.h" +#include "overlay005/ov5_021EF3A8.h" + +typedef struct UnkStruct_ov5_021DE6BC_t { + UnkStruct_ov5_021DDD80 unk_00; + UnkStruct_ov5_021DDD80 unk_14; + UnkStruct_0205AA50 * unk_28; + u8 unk_2C; + u8 unk_2D; + u8 unk_2E; + u8 unk_2F; +}; + +typedef struct UnkStruct_ov5_021DE79C_t { + UnkStruct_ov5_021DDD80 unk_00; + UnkStruct_ov5_021DDD80 unk_14; + UnkStruct_0205AA50 * unk_28; + u8 unk_2C; + u8 unk_2D; + u8 unk_2E; + u8 unk_2F; +}; + +typedef struct UnkStruct_ov5_021DE928_t { + UnkStruct_0205AA50 * unk_00; + UnkStruct_ov5_021DE79C * unk_04[48]; + u8 unk_C4; + u8 unk_C5; + u8 unk_C6; + u8 unk_C7; + s8 unk_C8; + u8 unk_C9; + u8 unk_CA; + u8 unk_CB[1]; +}; + +typedef struct UnkStruct_ov5_021DEA98_t { + UnkStruct_0205AA50 * unk_00; + UnkStruct_ov5_021DDD80 unk_04; + u8 unk_18; + u8 unk_19; + u8 unk_1A[2]; +}; + +typedef struct UnkStruct_ov5_021DEC18_t { + UnkStruct_ov5_021DEA98 * unk_00[8]; + u8 unk_20; + u8 unk_21[3]; +}; + +typedef struct { + int unk_00; + u32 unk_04; + int unk_08; + int unk_0C; + u32 unk_10; + u32 unk_14; + UnkStruct_ov5_021DDF24 unk_18; + UnkStruct_ov5_021DDF24 unk_30; + BOOL * unk_48; +} UnkStruct_ov5_021DDC44; + +typedef struct UnkStruct_ov5_021DDF74_t { + UnkStruct_ov5_021DDE14 unk_00; + u32 unk_18; + u32 unk_1C; + UnkStruct_ov5_021EF3BC * unk_20; + UnkStruct_ov5_021EF43C * unk_24; + UnkStruct_0201CD38 * unk_28; + BOOL * unk_2C; +} UnkStruct_ov5_021DDF74; + +typedef struct UnkStruct_ov5_021DE374_t { + UnkStruct_ov5_021DDE14 unk_00; + UnkStruct_ov5_021DDE14 unk_18; + u32 unk_30; + u32 unk_34; + UnkStruct_ov5_021EF3BC * unk_38; + UnkStruct_ov5_021EF43C * unk_3C; + UnkStruct_0201CD38 * unk_40; + BOOL * unk_44; +} UnkStruct_ov5_021DE374; + +typedef struct UnkStruct_ov5_021DED04_t { + UnkStruct_ov5_021DDD80 unk_00; + u32 unk_14; + u8 unk_18[192]; + UnkStruct_ov5_021EF3BC * unk_D8; + UnkStruct_ov5_021EF43C * unk_DC; + UnkStruct_0201CD38 * unk_E0; + BOOL * unk_E4; +} UnkStruct_ov5_021DED04; + +typedef struct { + u16 unk_00; + u8 unk_02; + u8 unk_03; + UnkStruct_0203CDB0 * unk_04; + UnkStruct_02014014 * unk_08; + void * unk_0C; + u32 unk_10; + u32 unk_14; +} UnkStruct_ov5_02202120; + +static void ov5_021DE89C(UnkStruct_0205AA50 * param0, s32 param1, s32 param2, s32 param3, s32 param4, u8 param5); +static void ov5_021DEB04(UnkStruct_0205AA50 * param0, u16 param1, u16 param2, u8 param3); +static void ov5_021DDF24(UnkStruct_0201CD38 * param0, void * param1); +static void ov5_021DDC88(UnkStruct_0201CD38 * param0, void * param1); +static void ov5_021DE028(UnkStruct_0201CD38 * param0, void * param1); +static void ov5_021DE088(UnkStruct_0201CD38 * param0, void * param1); +static void ov5_021DE14C(UnkStruct_ov5_021EF43C * param0, void * param1); +static void ov5_021DE0F0(UnkStruct_ov5_021DDF74 * param0); +static void ov5_021DE2AC(UnkStruct_0201CD38 * param0, void * param1); +static void ov5_021DE2DC(UnkStruct_0201CD38 * param0, void * param1); +static void ov5_021DE344(UnkStruct_ov5_021EF43C * param0, void * param1); +static void ov5_021DE374(UnkStruct_ov5_021DE374 * param0); +static void ov5_021DEDE8(UnkStruct_0201CD38 * param0, void * param1); +static void ov5_021DEE24(UnkStruct_0201CD38 * param0, void * param1); +static void ov5_021DEE50(UnkStruct_ov5_021EF43C * param0, void * param1); +static void ov5_021DEE84(UnkStruct_ov5_021DED04 * param0); +static void ov5_021DE67C(UnkStruct_02022550 * param0, void * param1, u32 param2); +static void ov5_021DF258(UnkStruct_0201CD38 * param0, void * param1); +static void ov5_021DF28C(UnkStruct_0201CD38 * param0, void * param1); +static void ov5_021DF30C(UnkStruct_0203CDB0 * param0); +static void ov5_021DF3D4(UnkStruct_0203CDB0 * param0); +static u32 ov5_021DF3E8(u32 param0, BOOL param1); +static u32 ov5_021DF414(u32 param0, BOOL param1); +static void include_ov5_021DDBE8_rodata(UnkStruct_0201CD38 * dummy1, void * dummy2); +void include_ov5_021DDBE8_rodata_funcptr(void); + +static const UnkFuncPtr_0201CE28 Unk_ov5_021F9A74[] = { + ov5_021E24A8, + ov5_021E2338, + ov5_021E261C, + ov5_021E2748, + ov5_021E2944, + ov5_021E2A4C, + ov5_021E2B54, + ov5_021E2EB0, + ov5_021E31A4, + ov5_021E3560, + ov5_021E3AD0, + ov5_021E3D8C, + ov5_021E5760, + ov5_021E5784, + ov5_021E57A8, + ov5_021E57CC, + ov5_021E57F0, + ov5_021E5814, + ov5_021E5838, + ov5_021E585C, + ov5_021E6178, + ov5_021E619C, + ov5_021E61C0, + ov5_021E61E4, + ov5_021E6208, + ov5_021E4E14, + ov5_021E4F7C, + ov5_021E4738, + ov5_021E4B3C, + ov5_021E4260, + ov5_021E44C0 +}; + +static const u8 Unk_ov5_021F9988[8] = { + 0x0, + 0x2, + 0x5, + 0x7, + 0x1, + 0x6, + 0x3, + 0x4 +}; + +static const u16 Unk_ov5_021F9A2C[8][2] = { + {0x0, 0x17}, + {0x2D, 0x16}, + {0x2D, 0x44}, + {0x5A, 0x43}, + {0x5B, 0x71}, + {0x87, 0x70}, + {0x87, 0x9E}, + {0xB4, 0x9D} +}; + +static UnkStruct_ov5_02202120 * Unk_ov5_02202120 = NULL; + +void ov5_021DDBE8 (int param0, UnkStruct_0203CDB0 * param1, BOOL * param2) +{ + UnkStruct_0201CD38 * v0; + UnkStruct_ov5_021DDC28 * v1; + + v0 = sub_0200679C(Unk_ov5_021F9A74[param0], sizeof(UnkStruct_ov5_021DDC28), 5, 4); + v1 = sub_0201CED0(v0); + v1->unk_10 = param1; + v1->unk_14 = param2; + v1->unk_20 = sub_02006C24(112, 4); + + if (v1->unk_14 != NULL) { + *(v1->unk_14) = 0; + } + + v1->unk_18 = 0; +} + +void ov5_021DDC28 (UnkStruct_ov5_021DDC28 * param0, UnkStruct_0201CD38 * param1) +{ + sub_02006CA8(param0->unk_20); + sub_02018238(4, param0->unk_0C); + sub_020067D0(param1); +} + +void ov5_021DDC44 (int param0, u32 param1, u32 param2, BOOL * param3, u32 param4) +{ + UnkStruct_0201CD38 * v0; + UnkStruct_ov5_021DDC44 * v1; + + v1 = sub_02018144(4, sizeof(UnkStruct_ov5_021DDC44)); + memset(v1, 0, sizeof(UnkStruct_ov5_021DDC44)); + sub_0200D9E8(ov5_021DDC88, v1, 5); + + v1->unk_48 = param3; + + if (v1->unk_48 != NULL) { + *(v1->unk_48) = 0; + } + + v1->unk_0C = param0; + v1->unk_10 = param1; + v1->unk_14 = param2; + v1->unk_04 = param4; +} + +static void ov5_021DDC88 (UnkStruct_0201CD38 * param0, void * param1) +{ + UnkStruct_ov5_021DDC44 * v0 = param1; + + switch (v0->unk_00) { + case 0: + if (v0->unk_0C == 1) { + ov5_021DDEFC(&v0->unk_30, 0, v0->unk_14, 2, 8); + } else { + if (v0->unk_0C == 2) { + ov5_021DDEFC(&v0->unk_30, 0, v0->unk_14, 1, 8); + } + } + + v0->unk_00++; + break; + case 1: + ov5_021DDEFC(&v0->unk_18, 0, v0->unk_10, v0->unk_0C, 3); + v0->unk_00++; + break; + case 2: + if (ov5_021DDF08(&v0->unk_18)) { + v0->unk_00++; + } + break; + case 3: + ov5_021DDEFC(&v0->unk_18, v0->unk_10, 0, v0->unk_0C, 3); + v0->unk_00++; + break; + case 4: + if (ov5_021DDF08(&v0->unk_18)) { + v0->unk_08++; + + if (v0->unk_08 == v0->unk_04) { + v0->unk_00 = 5; + } else { + v0->unk_00 = 1; + } + } + break; + case 5: + v0->unk_00 = 0; + v0->unk_08 = 0; + + if (v0->unk_48 != NULL) { + *(v0->unk_48) = 1; + } + + sub_0200DA58(param0); + sub_020181C4(v0); + + return; + } + + ov5_021DDF08(&v0->unk_30); +} + +BOOL ov5_021DDD7C (UnkStruct_ov5_021DDC28 * param0) +{ + return param0->unk_18; +} + +void ov5_021DDD80 (UnkStruct_ov5_021DDD80 * param0, int param1, int param2, int param3) +{ + param0->unk_00 = param1; + param0->unk_04 = param1; + param0->unk_08 = param2 - param1; + param0->unk_10 = param3; + param0->unk_0C = 0; +} + +BOOL ov5_021DDD90 (UnkStruct_ov5_021DDD80 * param0) +{ + int v0; + + v0 = param0->unk_08 * param0->unk_0C; + v0 = v0 / param0->unk_10; + + param0->unk_00 = v0 + param0->unk_04; + + if ((param0->unk_0C + 1) <= param0->unk_10) { + param0->unk_0C++; + return 0; + } + + param0->unk_0C = param0->unk_10; + return 1; +} + +void ov5_021DDDBC (UnkStruct_ov5_021DDDBC * param0, fx32 param1, fx32 param2, int param3) +{ + param0->unk_00 = param1; + param0->unk_04 = param1; + param0->unk_08 = param2 - param1; + param0->unk_10 = param3; + param0->unk_0C = 0; +} + +BOOL ov5_021DDDCC (UnkStruct_ov5_021DDDBC * param0) +{ + fx32 v0; + + v0 = FX_Mul(param0->unk_08, param0->unk_0C << FX32_SHIFT); + v0 = FX_Div(v0, param0->unk_10 << FX32_SHIFT); + + param0->unk_00 = v0 + param0->unk_04; + + if ((param0->unk_0C + 1) <= param0->unk_10) { + param0->unk_0C++; + return 0; + } + + param0->unk_0C = param0->unk_10; + return 1; +} + +void ov5_021DDE14 (UnkStruct_ov5_021DDE14 * param0, fx32 param1, fx32 param2, fx32 param3, int param4) +{ + fx32 v0; + fx32 v1; + fx32 v2; + fx32 v3; + + v2 = param2 - param1; + v0 = (param4 * param4) << FX32_SHIFT; + v1 = FX_Mul(param3, param4 * FX32_ONE); + v1 = v2 - v1; + v1 = FX_Mul(v1, 2 * FX32_ONE); + v3 = FX_Div(v1, v0); + + param0->unk_00 = param1; + param0->unk_04 = param1; + param0->unk_08 = param3; + param0->unk_0C = v3; + param0->unk_10 = 0; + param0->unk_14 = param4; +} + +BOOL ov5_021DDE74 (UnkStruct_ov5_021DDE14 * param0) +{ + fx32 v0; + fx32 v1; + fx32 v2; + fx32 v3; + + v3 = FX_Mul(param0->unk_08, param0->unk_10 << FX32_SHIFT); + v1 = (param0->unk_10 * param0->unk_10) << FX32_SHIFT; + v2 = FX_Mul(param0->unk_0C, v1); + v2 = FX_Div(v2, 2 * FX32_ONE); + v0 = v3 + v2; + + param0->unk_00 = param0->unk_04 + v0; + + if ((param0->unk_10 + 1) <= param0->unk_14) { + param0->unk_10++; + return 0; + } + + param0->unk_10 = param0->unk_14; + return 1; +} + +void ov5_021DDEDC (int param0, int param1) +{ + if (param0 == 1) { + GX_SetMasterBrightness(param1); + } else { + GXS_SetMasterBrightness(param1); + } +} + +void ov5_021DDEFC (UnkStruct_ov5_021DDF24 * param0, int param1, int param2, int param3, int param4) +{ + param0->unk_14 = param3; + ov5_021DDD80(¶m0->unk_00, param1, param2, param4); +} + +BOOL ov5_021DDF08 (UnkStruct_ov5_021DDF24 * param0) +{ + BOOL v0; + + v0 = ov5_021DDD90(¶m0->unk_00); + sub_0200DA3C(ov5_021DDF24, param0, 10); + + return v0; +} + +static void ov5_021DDF24 (UnkStruct_0201CD38 * param0, void * param1) +{ + UnkStruct_ov5_021DDF24 * v0 = param1; + + ov5_021DDEDC(v0->unk_14, v0->unk_00.unk_00); + sub_0200DA58(param0); +} + +UnkStruct_ov5_021DDF74 * ov5_021DDF38 (void) +{ + UnkStruct_ov5_021DDF74 * v0; + + v0 = sub_02018144(4, sizeof(UnkStruct_ov5_021DDF74)); + memset(v0, 0, sizeof(UnkStruct_ov5_021DDF74)); + + G2_SetWnd0InsidePlane(GX_WND_PLANEMASK_BG0 | GX_WND_PLANEMASK_BG1 | GX_WND_PLANEMASK_BG2 | GX_WND_PLANEMASK_BG3 | GX_WND_PLANEMASK_OBJ, 1); + G2_SetWnd1InsidePlane(GX_WND_PLANEMASK_NONE, 0); + + return v0; +} + +void ov5_021DDF74 (UnkStruct_ov5_021DDF74 * param0) +{ + if (param0->unk_24 != NULL) { + ov5_021DE0F0(param0); + } + + GX_SetVisibleWnd(GX_WNDMASK_NONE); + sub_020181C4(param0); +} + +void ov5_021DDF9C (UnkStruct_ov5_021DDC28 * param0, UnkStruct_ov5_021DDF74 * param1, u8 param2, u32 param3, int param4, int param5, fx32 param6) +{ + GF_ASSERT(param1->unk_24 == NULL); + + param0->unk_18 = 0; + param1->unk_20 = param0->unk_10->unk_04->unk_1C; + param1->unk_18 = param2; + param1->unk_1C = 0; + param1->unk_2C = ¶m0->unk_18; + + ov5_021DDE14(¶m1->unk_00, param4, param5, param6, param3); + + if (param4 >= 0) { + G2_SetWnd0Position(0, 0, 255 - param4, 192); + G2_SetWnd1Position(0, 0, 1 + param4, 192); + } else { + G2_SetWnd0Position(0, 0, 255 + param4, 192); + G2_SetWnd1Position(0, 0, 1 - param4, 192); + } + + sub_0200DA3C(ov5_021DE028, param1, 1024); +} + +static void ov5_021DE028 (UnkStruct_0201CD38 * param0, void * param1) +{ + UnkStruct_ov5_021DDF74 * v0 = param1; + + v0->unk_28 = sub_0200DA3C(ov5_021DE088, v0, 1024); + v0->unk_24 = ov5_021EF418(v0->unk_20, ov5_021DE14C, v0); + + sub_0200DA58(param0); +} + +void ov5_021DE058 (UnkStruct_ov5_021DDC28 * param0, UnkStruct_ov5_021DDF74 * param1, u8 param2, u32 param3, int param4, int param5, fx32 param6) +{ + GF_ASSERT(ov5_021DDD7C(param0) == 0); + + param1->unk_18 = param2; + param1->unk_1C = 0; + + ov5_021DDE14(¶m1->unk_00, param4, param5, param6, param3); +} + +static void ov5_021DE088 (UnkStruct_0201CD38 * param0, void * param1) +{ + UnkStruct_ov5_021DDF74 * v0 = param1; + s32 v1; + + switch (v0->unk_1C) { + case 0: + if (ov5_021DDE74(&v0->unk_00)) { + v0->unk_1C++; + } + + v1 = v0->unk_00.unk_00 >> FX32_SHIFT; + + if (v1 >= 0) { + G2_SetWnd0Position(0, 0, 255 - v1, 192); + G2_SetWnd1Position(0, 0, 1 + v1, 192); + } else { + G2_SetWnd0Position(0, 0, 255 + v1, 192); + G2_SetWnd1Position(0, 0, 1 - v1, 192); + } + break; + case 1: + ov5_021DE0F0(param1); + break; + } +} + +static void ov5_021DE0F0 (UnkStruct_ov5_021DDF74 * param0) +{ + G2_SetWnd0InsidePlane(GX_WND_PLANEMASK_BG0 | GX_WND_PLANEMASK_BG1 | GX_WND_PLANEMASK_BG2 | GX_WND_PLANEMASK_BG3 | GX_WND_PLANEMASK_OBJ, 1); + G2_SetWndOutsidePlane(GX_WND_PLANEMASK_NONE, 0); + G2_SetWnd0Position(0, 0, 0, 0); + GX_SetVisibleWnd(GX_WNDMASK_W0); + + *(param0->unk_2C) = 1; + + ov5_021EF43C(param0->unk_24); + param0->unk_24 = NULL; + sub_0200DA58(param0->unk_28); + param0->unk_28 = NULL; +} + +static void ov5_021DE14C (UnkStruct_ov5_021EF43C * param0, void * param1) +{ + UnkStruct_ov5_021DDF74 * v0 = param1; + int v1; + int v2; + + v1 = GX_GetVCount(); + + if (((v1 / v0->unk_18) % 2) == 0) { + v2 = v0->unk_00.unk_00 >> FX32_SHIFT; + } else { + v2 = -v0->unk_00.unk_00 >> FX32_SHIFT; + } + + G2_SetBG0Offset(v2, 0); + G2_SetBG1Offset(v2, 0); + G2_SetBG2Offset(v2, 0); + G2_SetBG3Offset(v2, 0); + + if (v2 >= 0) { + GX_SetVisibleWnd(GX_WNDMASK_W0); + G2_SetWndOutsidePlane(GX_WND_PLANEMASK_NONE, 0); + } else { + GX_SetVisibleWnd(GX_WNDMASK_W1); + G2_SetWndOutsidePlane(GX_WND_PLANEMASK_BG0 | GX_WND_PLANEMASK_BG1 | GX_WND_PLANEMASK_BG2 | GX_WND_PLANEMASK_BG3 | GX_WND_PLANEMASK_OBJ, 1); + } +} + +UnkStruct_ov5_021DE374 * ov5_021DE1CC (void) +{ + UnkStruct_ov5_021DE374 * v0; + + v0 = sub_02018144(4, sizeof(UnkStruct_ov5_021DE374)); + memset(v0, 0, sizeof(UnkStruct_ov5_021DE374)); + + G2_SetWnd0InsidePlane(GX_WND_PLANEMASK_BG0 | GX_WND_PLANEMASK_BG1 | GX_WND_PLANEMASK_BG2 | GX_WND_PLANEMASK_BG3 | GX_WND_PLANEMASK_OBJ, 1); + G2_SetWnd1InsidePlane(GX_WND_PLANEMASK_BG0 | GX_WND_PLANEMASK_BG1 | GX_WND_PLANEMASK_BG2 | GX_WND_PLANEMASK_BG3 | GX_WND_PLANEMASK_OBJ, 1); + G2_SetWndOutsidePlane(GX_WND_PLANEMASK_NONE, 0); + + return v0; +} + +void ov5_021DE218 (UnkStruct_ov5_021DE374 * param0) +{ + if (param0->unk_3C != NULL) { + ov5_021DE374(param0); + } + + GX_SetVisibleWnd(GX_WNDMASK_NONE); + sub_020181C4(param0); +} + +void ov5_021DE240 (UnkStruct_ov5_021DDC28 * param0, UnkStruct_ov5_021DE374 * param1, u32 param2, fx32 param3, fx32 param4) +{ + GF_ASSERT(param1->unk_3C == NULL); + + param0->unk_18 = 0; + param1->unk_38 = param0->unk_10->unk_04->unk_1C; + param1->unk_30 = 96; + param1->unk_34 = 0; + param1->unk_44 = ¶m0->unk_18; + + ov5_021DDE14(¶m1->unk_00, 0, (255 * FX32_ONE), param3, param2); + ov5_021DDE14(¶m1->unk_18, 0, (96 * FX32_ONE), param4, param2); + + G2_SetWnd0Position(0, 0, 255, 192); + G2_SetWnd1Position(0, 0, 255, 192); + + sub_0200DA3C(ov5_021DE2AC, param1, 1024); +} + +static void ov5_021DE2AC (UnkStruct_0201CD38 * param0, void * param1) +{ + UnkStruct_ov5_021DE374 * v0 = param1; + + v0->unk_40 = sub_0200DA3C(ov5_021DE2DC, v0, 1024); + v0->unk_3C = ov5_021EF418(v0->unk_38, ov5_021DE344, v0); + + sub_0200DA58(param0); +} + +static void ov5_021DE2DC (UnkStruct_0201CD38 * param0, void * param1) +{ + UnkStruct_ov5_021DE374 * v0 = param1; + s32 v1; + s32 v2; + + switch (v0->unk_34) { + case 0: + ov5_021DDE74(&v0->unk_18); + + if (ov5_021DDE74(&v0->unk_00)) { + v0->unk_34++; + } + + v1 = v0->unk_00.unk_00 >> FX32_SHIFT; + v2 = v0->unk_18.unk_00 >> FX32_SHIFT; + G2_SetWnd0Position(0, 0, 255 - v1, 96 - v2); + G2_SetWnd1Position(v1, 96 + v2, 255, 192); + break; + case 1: + ov5_021DE374(param1); + break; + } +} + +static void ov5_021DE344 (UnkStruct_ov5_021EF43C * param0, void * param1) +{ + UnkStruct_ov5_021DE374 * v0 = param1; + int v1; + int v2; + int v3; + + v1 = GX_GetVCount(); + + if (v1 <= v0->unk_30) { + GX_SetVisibleWnd(GX_WNDMASK_W0); + } else { + GX_SetVisibleWnd(GX_WNDMASK_W1); + } +} + +static void ov5_021DE374 (UnkStruct_ov5_021DE374 * param0) +{ + G2_SetWnd0InsidePlane(GX_WND_PLANEMASK_BG0 | GX_WND_PLANEMASK_BG1 | GX_WND_PLANEMASK_BG2 | GX_WND_PLANEMASK_BG3 | GX_WND_PLANEMASK_OBJ, 1); + G2_SetWndOutsidePlane(GX_WND_PLANEMASK_NONE, 0); + G2_SetWnd0Position(0, 0, 0, 0); + GX_SetVisibleWnd(GX_WNDMASK_W0); + + *(param0->unk_44) = 1; + + ov5_021EF43C(param0->unk_3C); + param0->unk_3C = NULL; + sub_0200DA58(param0->unk_40); + param0->unk_40 = NULL; +} + +void include_ov5_021DDBE8_rodata_funcptr (void) +{ + UnkFuncPtr_0201CE28 dummy = include_ov5_021DDBE8_rodata; +} + +static void include_ov5_021DDBE8_rodata (UnkStruct_0201CD38 * dummy1, void * dummy2) +{ + { + UnkStruct_ov84_0223BA5C v0 = { + GX_DISPMODE_GRAPHICS, + GX_BGMODE_1, + GX_BGMODE_0, + GX_BG0_AS_3D + }; + } + + { + UnkStruct_ov97_0222DB78 v1 = { + 0, + 0, + 0x800, + 0, + 1, + GX_BG_COLORMODE_16, + GX_BG_SCRBASE_0xe800, + GX_BG_CHARBASE_0x04000, + GX_BG_EXTPLTT_01, + 3, + 0, + 0, + 0 + }; + } + + { + UnkStruct_ov97_0222DB78 v2 = { + 0, + 0, + 0x800, + 0, + 1, + GX_BG_COLORMODE_16, + GX_BG_SCRBASE_0xf000, + GX_BG_CHARBASE_0x08000, + GX_BG_EXTPLTT_23, + 0, + 0, + 0, + 0 + }; + } + + { + UnkStruct_ov97_0222DB78 v3 = { + 0, + 0, + 0x800, + 0, + 1, + GX_BG_COLORMODE_256, + GX_BG_SCRBASE_0xf800, + GX_BG_CHARBASE_0x00000, + GX_BG_EXTPLTT_23, + 0, + 1, + 0, + 0 + }; + } +} + +void ov5_021DE3D0 (UnkStruct_02006C24 * param0, u32 param1, u32 param2, u32 param3, u32 param4, u32 param5, UnkStruct_02018340 * param6, u32 param7) +{ + void * v0; + NNSG2dScreenData * v1; + + sub_02007130(param0, param3, 0, param4 * 32, param5 * 32, 4); + sub_020070E8(param0, param2, param6, param7, 0, 0, 0, 4); + + v0 = sub_020071D0(param0, param1, 0, &v1, 4); + + sub_020198C0(param6, param7, v1->rawData, 0, 0, v1->screenWidth / 8, v1->screenHeight / 8); + sub_02019E2C(param6, param7, 0, 0, v1->screenWidth / 8, v1->screenHeight / 8, param4); + sub_020181C4(v0); + sub_0201C3C0(param6, param7); +} + +void ov5_021DE47C (UnkStruct_ov5_021DE47C * param0, int param1, int param2) +{ + int v0; + + param0->unk_00 = sub_020095C4(param1, ¶m0->unk_04, 4); + + for (v0 = 0; v0 < 4; v0++) { + param0->unk_190[v0] = sub_02009714(param2, v0, 4); + } +} + +void ov5_021DE4AC (UnkStruct_ov5_021DE47C * param0) +{ + int v0; + + sub_02021964(param0->unk_00); + + for (v0 = 0; v0 < 4; v0++) { + sub_02009754(param0->unk_190[v0]); + } +} + +void ov5_021DE4CC (UnkStruct_02006C24 * param0, UnkStruct_ov5_021DE47C * param1, UnkStruct_ov5_021DE5A4 * param2, u32 param3, u32 param4, u32 param5, u32 param6, u32 param7, u32 param8) +{ + param2->unk_00[0] = sub_02009AA8(param1->unk_190[0], param0, param5, 0, param8, NNS_G2D_VRAM_TYPE_2DMAIN, 4, 1); + param2->unk_00[1] = sub_02009B04(param1->unk_190[1], param0, param3, 0, param8, NNS_G2D_VRAM_TYPE_2DMAIN, param4, 4); + param2->unk_00[2] = sub_02009BC4(param1->unk_190[2], param0, param6, 0, param8, 2, 4); + param2->unk_00[3] = sub_02009BC4(param1->unk_190[3], param0, param7, 0, param8, 3, 4); + + sub_0200A3DC(param2->unk_00[0]); + sub_02009D4C(param2->unk_00[0]); + sub_0200A640(param2->unk_00[1]); + sub_020093B4(¶m2->unk_10, param8, param8, param8, param8, 0xffffffff, 0xffffffff, 0, 0, param1->unk_190[0], param1->unk_190[1], param1->unk_190[2], param1->unk_190[3], NULL, NULL); +} + +void ov5_021DE5A4 (UnkStruct_ov5_021DE47C * param0, UnkStruct_ov5_021DE5A4 * param1) +{ + int v0; + + sub_0200A4E4(param1->unk_00[0]); + sub_0200A6DC(param1->unk_00[1]); + + for (v0 = 0; v0 < 4; v0++) { + sub_02009D68(param0->unk_190[v0], param1->unk_00[v0]); + } +} + +void ov5_021DE5D0 (UnkStruct_02022550 * param0, u32 param1, u32 param2, u8 param3, u16 param4) +{ + UnkStruct_ov5_021DE5D0 v0; + NNSG2dPaletteData * v1; + void * v2; + u16 * v3; + + sub_02076AAC(param2, 2, &v0); + v3 = sub_02018144(param1, 32); + v2 = sub_02006F88(v0.unk_00, v0.unk_08, &v1, param1); + sub_0200393C(v1->pRawData, v3, 16, param3, param4); + + ov5_021DE67C(param0, v3, 32); + + sub_020181C4(v3); + sub_020181C4(v2); +} + +UnkStruct_02022550 * ov5_021DE62C (UnkStruct_ov5_021DE47C * param0, UnkStruct_ov5_021DE5A4 * param1, fx32 param2, fx32 param3, fx32 param4, int param5) +{ + UnkStruct_ov83_0223D9A8 v0; + UnkStruct_02022550 * v1; + + v0.unk_00 = param0->unk_00; + v0.unk_04 = ¶m1->unk_10; + v0.unk_08.x = param2; + v0.unk_08.y = param3; + v0.unk_08.z = param4; + v0.unk_14 = param5; + v0.unk_18 = NNS_G2D_VRAM_TYPE_2DMAIN; + v0.unk_1C = 4; + + v1 = sub_02021B90(&v0); + GF_ASSERT(v1); + return v1; +} + +VecFx32 ov5_021DE660 (fx32 param0, fx32 param1, fx32 param2) +{ + VecFx32 v0; + + v0.x = param0; + v0.y = param1; + v0.z = param2; + + return v0; +} + +static void ov5_021DE67C (UnkStruct_02022550 * param0, void * param1, u32 param2) +{ + NNSG2dImagePaletteProxy * v0; + + v0 = sub_02021F9C(param0); + + DC_FlushRange(param1, param2); + GX_LoadOBJPltt(param1, NNS_G2dGetImagePaletteLocation(v0, NNS_G2D_VRAM_TYPE_2DMAIN), param2); +} + +UnkStruct_ov5_021DE6BC * ov5_021DE6A4 (u32 param0) +{ + UnkStruct_ov5_021DE6BC * v0; + + v0 = sub_02018144(param0, sizeof(UnkStruct_ov5_021DE6BC)); + memset(v0, 0, sizeof(UnkStruct_ov5_021DE6BC)); + + return v0; +} + +void ov5_021DE6BC (UnkStruct_ov5_021DE6BC * param0) +{ + sub_020181C4(param0); +} + +void ov5_021DE6C4 (UnkStruct_ov5_021DE6BC * param0, int param1, int param2, int param3, int param4, int param5, UnkStruct_0205AA50 * param6, u32 param7, u32 param8, u8 param9) +{ + GF_ASSERT(param0->unk_2E == 0); + + ov5_021DDD80(¶m0->unk_00, param1, param2, param5); + ov5_021DDD80(¶m0->unk_14, param3, param4, param5); + + param0->unk_28 = param6; + param0->unk_2C = param7; + param0->unk_2D = param8; + param0->unk_2F = param9; + param0->unk_2E = 1; +} + +BOOL ov5_021DE71C (UnkStruct_ov5_021DE6BC * param0) +{ + BOOL v0; + s16 v1, v2, v3, v4; + + if (param0->unk_2E == 0) { + return 1; + } + + v0 = ov5_021DDD90(¶m0->unk_00); + ov5_021DDD90(¶m0->unk_14); + + v3 = param0->unk_00.unk_00 - (param0->unk_2C / 2); + v1 = param0->unk_14.unk_00 - (param0->unk_2D / 2); + v4 = v3 + param0->unk_2C; + v2 = v1 + param0->unk_2D; + + ov5_021DE89C(param0->unk_28, v1, v2, v3, v4, param0->unk_2F); + + return v0; +} + +UnkStruct_ov5_021DE79C * ov5_021DE784 (u32 param0) +{ + UnkStruct_ov5_021DE79C * v0; + + v0 = sub_02018144(param0, sizeof(UnkStruct_ov5_021DE79C)); + + memset(v0, 0, sizeof(UnkStruct_ov5_021DE79C)); + return v0; +} + +void ov5_021DE79C (UnkStruct_ov5_021DE79C * param0) +{ + sub_020181C4(param0); +} + +void ov5_021DE7A4 (UnkStruct_ov5_021DE79C * param0, int param1, int param2, int param3, int param4, int param5, UnkStruct_0205AA50 * param6, u32 param7, u32 param8, u8 param9) +{ + GF_ASSERT(param0->unk_2E == 0); + + ov5_021DDD80(¶m0->unk_00, param1, param2, param5); + ov5_021DDD80(¶m0->unk_14, param3, param4, param5); + + param0->unk_28 = param6; + param0->unk_2C = param7; + param0->unk_2D = param8; + param0->unk_2F = param9; + param0->unk_2E = 1; +} + +BOOL ov5_021DE7FC (UnkStruct_ov5_021DE79C * param0) +{ + BOOL v0; + s16 v1, v2, v3, v4; + + if (param0->unk_2E == 0) { + return 1; + } + + v3 = param0->unk_00.unk_00 - (param0->unk_2C / 2); + v1 = param0->unk_14.unk_00 - (param0->unk_2D / 2); + v4 = v3 + param0->unk_2C; + v2 = v1 + param0->unk_2D; + + ov5_021DE89C(param0->unk_28, v1, v2, v3, v4, 0); + v0 = ov5_021DDD90(¶m0->unk_00); + ov5_021DDD90(¶m0->unk_14); + + v3 = param0->unk_00.unk_00 - (param0->unk_2C / 2); + v1 = param0->unk_14.unk_00 - (param0->unk_2D / 2); + v4 = v3 + param0->unk_2C; + v2 = v1 + param0->unk_2D; + + ov5_021DE89C(param0->unk_28, v1, v2, v3, v4, param0->unk_2F); + + return v0; +} + +static void ov5_021DE89C (UnkStruct_0205AA50 * param0, s32 param1, s32 param2, s32 param3, s32 param4, u8 param5) +{ + if ((param4 <= 0) || (param2 <= 0)) { + return; + } + + if ((param3 == param4) || (param1 == param2)) { + return; + } + + if (param3 < 0) { + param3 = 0; + } + + if (param4 > 256) { + param4 = 256; + } + + if (param1 < 0) { + param1 = 0; + } + + if (param2 > 256) { + param2 = 256; + } + + sub_0201AE78(param0, param5, param3, param1, param4 - param3, param2 - param1); +} + +UnkStruct_ov5_021DE928 * ov5_021DE8F8 (u32 param0) +{ + UnkStruct_ov5_021DE928 * v0; + int v1; + + v0 = sub_02018144(4, sizeof(UnkStruct_ov5_021DE928)); + memset(v0, 0, sizeof(UnkStruct_ov5_021DE928)); + + for (v1 = 0; v1 < 48; v1++) { + v0->unk_04[v1] = ov5_021DE784(param0); + } + + return v0; +} + +void ov5_021DE928 (UnkStruct_ov5_021DE928 * param0) +{ + int v0; + + for (v0 = 0; v0 < 48; v0++) { + ov5_021DE79C(param0->unk_04[v0]); + } + + sub_020181C4(param0); +} + +void ov5_021DE948 (UnkStruct_ov5_021DE928 * param0, u8 param1, u8 param2, UnkStruct_0205AA50 * param3, u8 param4) +{ + param0->unk_00 = param3; + param0->unk_C9 = param4; + param0->unk_C6 = param1; + param0->unk_C7 = param2; + param0->unk_C4 = 0; + param0->unk_C5 = 0; + param0->unk_C8 = 0; + param0->unk_CA = 1; +} + +BOOL ov5_021DE988 (UnkStruct_ov5_021DE928 * param0) +{ + int v0, v1, v2; + int v3; + BOOL v4; + + if (param0->unk_CA == 0) { + return 1; + } + + if (param0->unk_C4 < 48) { + param0->unk_C8--; + + if (param0->unk_C8 <= 0) { + param0->unk_C8 = param0->unk_C7; + + v0 = Unk_ov5_021F9988[param0->unk_C4 % 8]; + v0 = (32 / 2) + (v0 * 32); + v1 = -16 - ((param0->unk_C4 / 8) * 32); + v2 = (192 + -16) - ((param0->unk_C4 / 8) * 32); + + ov5_021DE7A4(param0->unk_04[param0->unk_C4], v0, v0, v1, v2, param0->unk_C6, param0->unk_00, 32, 32, param0->unk_C9); + param0->unk_C4++; + } + } + + for (v3 = param0->unk_C5; v3 < param0->unk_C4; v3++) { + v4 = ov5_021DE7FC(param0->unk_04[v3]); + + if (v4 == 1) { + param0->unk_C5++; + } + } + + if ((param0->unk_C5 >= 48) && (v4 == 1)) { + param0->unk_CA = 0; + return 1; + } + + return 0; +} + +UnkStruct_ov5_021DEA98 * ov5_021DEA80 (u32 param0) +{ + UnkStruct_ov5_021DEA98 * v0; + + v0 = sub_02018144(param0, sizeof(UnkStruct_ov5_021DEA98)); + memset(v0, 0, sizeof(UnkStruct_ov5_021DEA98)); + return v0; +} + +void ov5_021DEA98 (UnkStruct_ov5_021DEA98 * param0) +{ + sub_020181C4(param0); +} + +void ov5_021DEAA0 (UnkStruct_ov5_021DEA98 * param0, u8 param1, u16 param2, u16 param3, UnkStruct_0205AA50 * param4, u8 param5) +{ + param0->unk_00 = param4; + param0->unk_19 = param5; + param0->unk_18 = 1; + + ov5_021DDD80(¶m0->unk_04, param2, param3, param1); +} + +BOOL ov5_021DEAC8 (UnkStruct_ov5_021DEA98 * param0) +{ + BOOL v0; + u16 v1; + + if (param0->unk_18 == 0) { + return 1; + } + + v1 = param0->unk_04.unk_00; + v0 = ov5_021DDD90(¶m0->unk_04); + + ov5_021DEB04(param0->unk_00, v1, param0->unk_04.unk_00, param0->unk_19); + + if (v0 == 1) { + param0->unk_18 = 0; + return 1; + } + + return 0; +} + +static inline fx32 inline_ov5_021DEB04 (u16 param0) +{ + return FX_Div(FX_SinIdx(param0), FX_CosIdx(param0)); +} + +static void ov5_021DEB04 (UnkStruct_0205AA50 * param0, u16 param1, u16 param2, u8 param3) +{ + int v0, v1, v2; + int v3, v4; + int v5; + int v6; + fx32 v7, v8; + + v7 = inline_ov5_021DEB04(param2); + v8 = inline_ov5_021DEB04(param1); + + for (v5 = 0; v5 < 96; v5++) { + v6 = 95 - v5; + v0 = FX_Mul(v7, v6 * FX32_ONE) >> FX32_SHIFT; + v1 = FX_Mul(v8, v6 * FX32_ONE) >> FX32_SHIFT; + v3 = 128 + v0; + v4 = 128 + v1; + v0 = 128 - v0; + v1 = 128 - v1; + + if (v1 > v0) { + v2 = v1; + v1 = v0; + v0 = v2; + } + + if (v4 > v3) { + v2 = v4; + v4 = v3; + v3 = v2; + } + + ov5_021DE89C(param0, v5, v5 + 1, v1, v0 + 1, param3); + ov5_021DE89C(param0, 191 - v5, 192 - v5, v4, v3 + 1, param3); + } +} + +UnkStruct_ov5_021DEC18 * ov5_021DEBEC (u32 param0) +{ + UnkStruct_ov5_021DEC18 * v0; + int v1; + + v0 = sub_02018144(param0, sizeof(UnkStruct_ov5_021DEC18)); + memset(v0, 0, sizeof(UnkStruct_ov5_021DEC18)); + + for (v1 = 0; v1 < 8; v1++) { + v0->unk_00[v1] = ov5_021DEA80(param0); + } + + return v0; +} + +void ov5_021DEC18 (UnkStruct_ov5_021DEC18 * param0) +{ + int v0; + + for (v0 = 0; v0 < 8; v0++) { + ov5_021DEA98(param0->unk_00[v0]); + } + + sub_020181C4(param0); +} + +void ov5_021DEC38 (UnkStruct_ov5_021DEC18 * param0, u8 param1, UnkStruct_0205AA50 * param2, u8 param3) +{ + int v0; + + for (v0 = 0; v0 < 8; v0++) { + ov5_021DEAA0(param0->unk_00[v0], param1, ((Unk_ov5_021F9A2C[v0][0] * 0xffff) / 360), ((Unk_ov5_021F9A2C[v0][1] * 0xffff) / 360), param2, param3); + } + + param0->unk_20 = 1; + ov5_021DE89C(param2, 93, 99, 0, 256, param3); +} + +BOOL ov5_021DECB8 (UnkStruct_ov5_021DEC18 * param0) +{ + int v0; + BOOL v1; + + if (param0->unk_20 == 0) { + return 1; + } + + for (v0 = 0; v0 < 8; v0++) { + v1 = ov5_021DEAC8(param0->unk_00[v0]); + } + + if (v1 == 1) { + param0->unk_20 = 0; + return 1; + } + + return 0; +} + +UnkStruct_ov5_021DED04 * ov5_021DECEC (void) +{ + UnkStruct_ov5_021DED04 * v0; + + v0 = sub_02018144(4, sizeof(UnkStruct_ov5_021DED04)); + memset(v0, 0, sizeof(UnkStruct_ov5_021DED04)); + + return v0; +} + +void ov5_021DED04 (UnkStruct_ov5_021DED04 * param0) +{ + if (param0->unk_E0 != NULL) { + ov5_021DEE84(param0); + } + + sub_020181C4(param0); +} + +void ov5_021DED20 (UnkStruct_ov5_021DDC28 * param0, UnkStruct_ov5_021DED04 * param1, u32 param2, u32 param3, u32 param4, u32 param5, u32 param6) +{ + int v0; + int v1; + int v2; + + GF_ASSERT(param1->unk_E0 == NULL); + + param0->unk_18 = 0; + param1->unk_D8 = param0->unk_10->unk_04->unk_1C; + param1->unk_14 = 0; + param1->unk_E4 = ¶m0->unk_18; + + ov5_021DDD80(¶m1->unk_00, 255, 0, param2); + + for (v0 = 0; v0 < 192; v0++) { + v1 = v0 % param3; + v2 = v1 * param4; + v2 = v2 / param3; + + if (((v0 / param3) % 2) == 0) { + param1->unk_18[v0] = v2; + } else { + param1->unk_18[v0] = param4 - v2; + } + } + + G2_SetWnd0InsidePlane(param5, 1); + G2_SetWndOutsidePlane(param6, 0); + G2_SetWnd0Position(0, 0, 0, 192); + GX_SetVisibleWnd(GX_WNDMASK_W0); + + sub_0200DA3C(ov5_021DEDE8, param1, 1024); +} + +static void ov5_021DEDE8 (UnkStruct_0201CD38 * param0, void * param1) +{ + UnkStruct_ov5_021DED04 * v0 = param1; + + v0->unk_DC = ov5_021EF418(v0->unk_D8, ov5_021DEE50, v0); + v0->unk_E0 = sub_0200DA3C(ov5_021DEE24, v0, 1024); + + sub_0200DA58(param0); +} + +static void ov5_021DEE24 (UnkStruct_0201CD38 * param0, void * param1) +{ + UnkStruct_ov5_021DED04 * v0 = param1; + BOOL v1; + + switch (v0->unk_14) { + case 0: + v1 = ov5_021DDD90(&v0->unk_00); + + if (v1 == 1) { + v0->unk_14++; + } + break; + case 1: + ov5_021DEE84(v0); + break; + } +} + +static void ov5_021DEE50 (UnkStruct_ov5_021EF43C * param0, void * param1) +{ + UnkStruct_ov5_021DED04 * v0 = param1; + int v1; + int v2; + + v2 = GX_GetVCount(); + + if (v2 < 192) { + v1 = -v0->unk_18[v2] + v0->unk_00.unk_00; + + if (v1 < 0) { + v1 = 0; + } + + G2_SetWnd0Position(v1, 0, 255, 192); + } +} + +static void ov5_021DEE84 (UnkStruct_ov5_021DED04 * param0) +{ + GX_SetVisibleWnd(GX_WNDMASK_NONE); + + *(param0->unk_E4) = 1; + ov5_021EF43C(param0->unk_DC); + param0->unk_DC = NULL; + sub_0200DA58(param0->unk_E0); + param0->unk_E0 = NULL; +} + +u32 ov5_021DEEC8 (const UnkStruct_ov6_02240D5C * param0) +{ + int v0; + int v1; + int v2; + UnkStruct_02073C74 * v3; + UnkStruct_02073C74 * v4; + int v5, v6; + + if (param0->unk_00 & 0x1) { + v2 = 1; + } else if ((param0->unk_00 & (0x100 | 0x20 | 0x200 | 0x400)) || (param0->unk_00 == 0x0)) { + v2 = 0; + } else { + GF_ASSERT(0); + v2 = 0; + } + + v3 = sub_02054A40(param0->unk_04[0]); + v4 = sub_02054A40(param0->unk_04[1]); + v5 = sub_02074470(v3, 161, NULL); + v6 = sub_02074470(v4, 161, NULL); + v0 = v6 - v5; + + switch (param0->unk_12C) { + case 0: + case 1: + case 2: + case 3: + case 4: + case 6: + case 8: + case 10: + case 11: + case 9: + case 24: + v1 = 0 * 2; + break; + case 7: + v1 = 1 * 2; + break; + case 5: + v1 = 2 * 2; + break; + } + + if (v0 > 0) { + v1++; + } + + return (v2 * 6) + v1; +} + +static void ov5_021DEF74 (UnkStruct_0201CD38 * param0, void * param1) +{ + int * v0 = param1; + + GX_SetMasterBrightness(*v0); + sub_0200DA58(param0); +} + +void ov5_021DEF8C (int * param0) +{ + sub_0200DA3C(ov5_021DEF74, param0, 1024); +} + +void ov5_021DEFA0 (UnkStruct_0203CDB0 * param0) +{ + GF_ASSERT(Unk_ov5_02202120 == NULL); + + Unk_ov5_02202120 = sub_02018144(4, sizeof(UnkStruct_ov5_02202120)); + memset(Unk_ov5_02202120, 0, sizeof(UnkStruct_ov5_02202120)); + + Unk_ov5_02202120->unk_00 = 0; + Unk_ov5_02202120->unk_02 = 0; + Unk_ov5_02202120->unk_04 = param0; + + sub_0201FF0C(GX_PLANEMASK_BG1, 0); + sub_0201FF0C(GX_PLANEMASK_BG2, 0); + sub_0201FF0C(GX_PLANEMASK_BG3, 0); + + GX_ResetBankForBG(); + MI_CpuClearFast((void *)HW_LCDC_VRAM_C, HW_VRAM_C_SIZE); + GX_SetCapture(GX_CAPTURE_SIZE_256x192, GX_CAPTURE_MODE_AB, GX_CAPTURE_SRCA_2D3D, GX_CAPTURE_SRCB_VRAM_0x00000, GX_CAPTURE_DEST_VRAM_C_0x00000, 4, 12); + + sub_0200DA3C(ov5_021DF258, Unk_ov5_02202120, 1024); + sub_0200D9E8(ov5_021DF28C, Unk_ov5_02202120, 1024); +} + +void ov5_021DF038 (void) +{ + GF_ASSERT(Unk_ov5_02202120); + Unk_ov5_02202120->unk_03 = 1; +} + +BOOL ov5_021DF054 (void) +{ + GF_ASSERT(Unk_ov5_02202120); + return Unk_ov5_02202120->unk_02; +} + +void ov5_021DF070 (void) +{ + if (Unk_ov5_02202120 == NULL) { + return; + } + + sub_0201469C(); +} + +void ov5_021DF084 (void) +{ + GF_ASSERT(Unk_ov5_02202120); + + sub_020141E4(); + + ov5_021DF3D4(Unk_ov5_02202120->unk_04); + ov5_021D16F4(Unk_ov5_02202120->unk_04, 1); + ov5_021D1718(Unk_ov5_02202120->unk_04, 1); + + sub_020181C4(Unk_ov5_02202120); + Unk_ov5_02202120 = NULL; +} + +void ov5_021DF0CC (UnkStruct_02006C24 * param0, u32 param1) +{ + void * v0; + UnkStruct_020203AC * v1; + + GF_ASSERT(Unk_ov5_02202120); + GF_ASSERT(Unk_ov5_02202120->unk_08 == NULL); + + Unk_ov5_02202120->unk_0C = sub_02018144(4, 0x4800); + Unk_ov5_02202120->unk_08 = sub_02014014(ov5_021DF3E8, ov5_021DF414, Unk_ov5_02202120->unk_0C, 0x4800, 1, 4); + GF_ASSERT(Unk_ov5_02202120->unk_08); + + sub_02014788(Unk_ov5_02202120->unk_08, 1); + + v1 = sub_02014784(Unk_ov5_02202120->unk_08); + sub_020206BC(FX32_ONE, FX32_ONE * 900, v1); + + v0 = sub_0200723C(param0, param1, 0, 4, 0); + sub_020144CC(Unk_ov5_02202120->unk_08, v0, 0 | 0, 0); +} + +void ov5_021DF17C (u32 param0) +{ + int v0; + VecFx32 v1 = {0, 0, 0}; + + GF_ASSERT(Unk_ov5_02202120); + GF_ASSERT(Unk_ov5_02202120->unk_08); + + for (v0 = 0; v0 < param0; v0++) { + sub_020146E4(Unk_ov5_02202120->unk_08, v0, &v1); + } +} + +BOOL ov5_021DF1CC (void) +{ + GF_ASSERT(Unk_ov5_02202120); + + if (Unk_ov5_02202120->unk_08 == NULL) { + return 1; + } + + sub_020146C0(); + + if (sub_02014710(Unk_ov5_02202120->unk_08) == 0) { + return 1; + } + + return 0; +} + +BOOL ov5_021DF208 (void) +{ + if (sub_02014710(Unk_ov5_02202120->unk_08) == 0) { + return 1; + } + + return 0; +} + +void ov5_021DF224 (void) +{ + GF_ASSERT(Unk_ov5_02202120); + + sub_0201411C(Unk_ov5_02202120->unk_08); + sub_020181C4(Unk_ov5_02202120->unk_0C); + + Unk_ov5_02202120->unk_08 = NULL; + Unk_ov5_02202120->unk_0C = NULL; +} + +static void ov5_021DF258 (UnkStruct_0201CD38 * param0, void * param1) +{ + UnkStruct_ov5_02202120 * v0 = param1; + + switch (v0->unk_00) { + case 0: + v0->unk_00++; + break; + case 1: + if (v0->unk_03 == 1) { + ov5_021DF30C(v0->unk_04); + sub_0200DA58(param0); + v0->unk_00++; + } + break; + } +} + +static void ov5_021DF28C (UnkStruct_0201CD38 * param0, void * param1) +{ + UnkStruct_ov5_02202120 * v0 = param1; + + switch (v0->unk_00) { + case 2: + + sub_02014000(); + + { + VecFx32 v1 = {0}; + VecFx32 v2 = {FX32_ONE, FX32_ONE, FX32_ONE}; + MtxFx33 v3; + + MTX_Identity33(&v3); + + NNS_G3dGlbSetBaseTrans(&v1); + NNS_G3dGlbSetBaseScale(&v2); + NNS_G3dGlbSetBaseRot(&v3); + } + + ov5_021D16F4(v0->unk_04, 0); + ov5_021D1718(v0->unk_04, 0); + + sub_02019060(0, 0); + + v0->unk_02 = 1; + sub_0200DA58(param0); + break; + default: + break; + } +} + +static void ov5_021DF30C (UnkStruct_0203CDB0 * param0) +{ + { + UnkStruct_02099F80 v0 = { + GX_VRAM_BG_256_BC, + GX_VRAM_BGEXTPLTT_NONE, + GX_VRAM_SUB_BG_32_H, + GX_VRAM_SUB_BGEXTPLTT_NONE, + GX_VRAM_OBJ_16_F, + GX_VRAM_OBJEXTPLTT_NONE, + GX_VRAM_SUB_OBJ_16_I, + GX_VRAM_SUB_OBJEXTPLTT_NONE, + GX_VRAM_TEX_0_A, + GX_VRAM_TEXPLTT_0123_E + }; + + sub_0201FE94(&v0); + } + + sub_0201FF0C( + GX_PLANEMASK_BG0, 0); + + { + UnkStruct_ov84_0223BA5C v1 = { + GX_DISPMODE_GRAPHICS, + GX_BGMODE_3, + GX_BGMODE_0, + GX_BG0_AS_3D + }; + + sub_02018368(&v1); + } + + { + ov5_021D143C(param0->unk_08); + + { + G2_SetBG3ControlDCBmp(GX_BG_SCRSIZE_DCBMP_256x256, GX_BG_AREAOVER_XLU, GX_BG_BMPSCRBASE_0x20000); + + sub_02019060(3, 3); + sub_0201FF0C(GX_PLANEMASK_BG3, 1); + + { + MtxFx22 v2; + + MTX_Identity22(&v2); + G2_SetBG3Affine(&v2, 0, 0, 0, 0); + } + } + + { + UnkStruct_ov97_0222DB78 v3 = { + 0, + 0, + 0x800, + 0, + 1, + GX_BG_COLORMODE_16, + GX_BG_SCRBASE_0xe800, + GX_BG_CHARBASE_0x00000, + GX_BG_EXTPLTT_23, + 0, + 0, + 0, + 0 + }; + + sub_020183C4(param0->unk_08, 2, &v3, 0); + sub_02019690(2, 32, 0, 4); + sub_02019EBC(param0->unk_08, 2); + } + } + + sub_0201FF0C(GX_PLANEMASK_OBJ, 1); +} + +static void ov5_021DF3D4 (UnkStruct_0203CDB0 * param0) +{ + sub_02019044(param0->unk_08, 2); + ov5_021D1434(param0->unk_08); +} + +static u32 ov5_021DF3E8 (u32 param0, BOOL param1) +{ + u32 v0; + + GF_ASSERT(Unk_ov5_02202120); + GF_ASSERT(param1 == 0); + + v0 = Unk_ov5_02202120->unk_10; + Unk_ov5_02202120->unk_10 += param0; + + return v0; +} + +static u32 ov5_021DF414 (u32 param0, BOOL param1) +{ + u32 v0; + + GF_ASSERT(Unk_ov5_02202120); + GF_ASSERT(param1 == 0); + + v0 = Unk_ov5_02202120->unk_14; + Unk_ov5_02202120->unk_14 += param0; + + return v0; +} diff --git a/src/overlay005/ov5_021F2D20.c b/src/overlay005/ov5_021F2D20.c new file mode 100644 index 0000000000..4d06923443 --- /dev/null +++ b/src/overlay005/ov5_021F2D20.c @@ -0,0 +1,511 @@ +#include +#include + +#include "struct_decls/struct_020216E0_decl.h" +#include "struct_decls/struct_02061AB4_decl.h" +#include "overlay005/struct_ov5_021DF47C_decl.h" +#include "overlay101/struct_ov101_021D5D90_decl.h" + +#include "struct_defs/struct_020217F4.h" +#include "struct_defs/struct_0203CDB0.h" +#include "overlay101/struct_ov101_021D86B0.h" + +#include "unk_02020AEC.h" +#include "unk_02061804.h" +#include "unk_02063400.h" +#include "unk_020711EC.h" +#include "overlay005/ov5_021DF440.h" +#include "overlay005/ov5_021F2D20.h" + +typedef struct UnkStruct_ov5_021F2D20_t { + UnkStruct_ov5_021DF47C * unk_00; +} UnkStruct_ov5_021F2D20; + +typedef struct { + int unk_00; + int unk_04; + int unk_08; + UnkStruct_0203CDB0 * unk_0C; + UnkStruct_ov5_021DF47C * unk_10; + UnkStruct_ov5_021F2D20 * unk_14; + UnkStruct_02061AB4 * unk_18; +} UnkStruct_021F2EA4; + +typedef struct { + int unk_00; + int unk_04; + int unk_08; + int unk_0C; + int unk_10; + int unk_14; + UnkStruct_021F2EA4 unk_18; + UnkStruct_020216E0 * unk_34; +} UnkStruct_021F2FA0; + +typedef struct { + int unk_00; + int unk_04; + UnkStruct_0203CDB0 * unk_08; + UnkStruct_ov5_021DF47C * unk_0C; + UnkStruct_ov5_021F2D20 * unk_10; +} UnkStruct_021F30C4; + +typedef struct { + int unk_00; + int unk_04; + UnkStruct_021F30C4 unk_08; + UnkStruct_020216E0 * unk_1C; +} UnkStruct_021F30FC; + +typedef struct { + int unk_00; + int unk_04; + UnkStruct_0203CDB0 * unk_08; + UnkStruct_ov5_021DF47C * unk_0C; + UnkStruct_ov5_021F2D20 * unk_10; +} UnkStruct_021F3154; + +typedef struct { + int unk_00; + int unk_04; + int unk_08; + int unk_0C; + UnkStruct_021F3154 unk_10; + UnkStruct_020216E0 * unk_24; +} UnkStruct_021F31A8; + +void include_unk_ov5_02200500(void); + +static void ov5_021F2D4C(UnkStruct_ov5_021F2D20 * param0); +static void ov5_021F2E2C(UnkStruct_ov5_021F2D20 * param0); + +static const UnkStruct_ov101_021D86B0 Unk_ov5_022004EC; +const UnkStruct_020217F4 Unk_ov5_02200540[]; +const UnkStruct_020217F4 Unk_ov5_02200558[]; +const UnkStruct_020217F4 Unk_ov5_02200528[]; +const UnkStruct_020217F4 Unk_ov5_02200570[]; + +void * ov5_021F2D20 (UnkStruct_ov5_021DF47C * param0) +{ + UnkStruct_ov5_021F2D20 * v0; + + v0 = ov5_021DF53C(param0, (sizeof(UnkStruct_ov5_021F2D20)), 0, 0); + v0->unk_00 = param0; + + ov5_021F2D4C(v0); + return v0; +} + +void ov5_021F2D3C (void * param0) +{ + UnkStruct_ov5_021F2D20 * v0 = param0; + + ov5_021F2E2C(v0); + ov5_021DF554(v0); +} + +static void ov5_021F2D4C (UnkStruct_ov5_021F2D20 * param0) +{ + ov5_021DF9E0(param0->unk_00, 0, 83); + ov5_021DF9E0(param0->unk_00, 5, 84); + + ov5_021DFA14(param0->unk_00, 0, 170); + ov5_021DFA14(param0->unk_00, 3, 171); + ov5_021DFA14(param0->unk_00, 4, 172); + ov5_021DFA14(param0->unk_00, 5, 173); + + ov5_021DFA3C(param0->unk_00, 0, 0, 1); + ov5_021DFA3C(param0->unk_00, 4, 1, 1); + ov5_021DFA3C(param0->unk_00, 5, 2, 1); + ov5_021DFA3C(param0->unk_00, 6, 3, 1); + + ov5_021DF864(param0->unk_00, 0, 0, 0, 0, 0, Unk_ov5_02200540); + ov5_021DF864(param0->unk_00, 5, 5, 3, 4, 0, Unk_ov5_02200558); + ov5_021DF864(param0->unk_00, 6, 5, 4, 5, 0, Unk_ov5_02200528); + ov5_021DF864(param0->unk_00, 7, 5, 5, 6, 0, Unk_ov5_02200570); +} + +static void ov5_021F2E2C (UnkStruct_ov5_021F2D20 * param0) +{ + ov5_021DFA08(param0->unk_00, 0); + ov5_021DFA08(param0->unk_00, 5); + + ov5_021DFA30(param0->unk_00, 0); + ov5_021DFA30(param0->unk_00, 3); + + ov5_021DFA30(param0->unk_00, 4); + ov5_021DFA30(param0->unk_00, 5); + + ov5_021DFA7C(param0->unk_00, 0); + ov5_021DFA7C(param0->unk_00, 4); + ov5_021DFA7C(param0->unk_00, 5); + ov5_021DFA7C(param0->unk_00, 6); + + ov5_021DF9D4(param0->unk_00, 0); + ov5_021DF9D4(param0->unk_00, 5); + ov5_021DF9D4(param0->unk_00, 6); + ov5_021DF9D4(param0->unk_00, 7); +} + +void ov5_021F2EA4 (UnkStruct_02061AB4 * param0, int param1) +{ + int v0; + VecFx32 v1; + UnkStruct_021F2EA4 v2; + UnkStruct_ov5_021DF47C * v3; + UnkStruct_ov101_021D5D90 * v4; + + v3 = ov5_021DF578(param0); + + v2.unk_00 = sub_02063020(param0); + v2.unk_04 = sub_02063030(param0); + v2.unk_08 = sub_02063040(param0); + v2.unk_10 = v3; + v2.unk_0C = ov5_021DF574(v3); + v2.unk_14 = ov5_021DF55C(v3, 19); + v2.unk_18 = param0; + + sub_02063050(param0, &v1); + + v0 = sub_02062758(param0, 2); + v4 = ov5_021DF72C(v3, &Unk_ov5_022004EC, &v1, param1, &v2, v0); +} + +static int ov5_021F2F0C (UnkStruct_ov101_021D5D90 * param0, void * param1) +{ + int v0, v1; + VecFx32 v2; + UnkStruct_021F2FA0 * v3; + const UnkStruct_021F2EA4 * v4; + + v3 = param1; + v4 = sub_020715BC(param0); + + v3->unk_18 = *v4; + v3->unk_04 = sub_02062924(v3->unk_18.unk_18); + v3->unk_08 = sub_02062910(v3->unk_18.unk_18); + v3->unk_0C = sub_02062918(v3->unk_18.unk_18); + + v2.x = (((v3->unk_18.unk_00) << 4) * FX32_ONE); + v2.z = (((v3->unk_18.unk_08) << 4) * FX32_ONE); + v2.y = sub_02063074(v3->unk_18.unk_18); + v3->unk_14 = sub_020644A4(v3->unk_18.unk_0C, &v2); + + v2.x += ((((16 * FX32_ONE) >> 1))); + v2.z += ((((16 * FX32_ONE) >> 1)) + (FX32_ONE * 6) + (FX32_ONE * 4)); + + sub_020715D4(param0, &v2); + + v3->unk_34 = ov5_021DF84C(v3->unk_18.unk_10, 0, &v2); + + if (sub_020715B4(param0) == 0) { + v3->unk_00 = 1; + } + + return 1; +} + +static void ov5_021F2FA0 (UnkStruct_ov101_021D5D90 * param0, void * param1) +{ + UnkStruct_021F2FA0 * v0; + + v0 = param1; + sub_020211FC(v0->unk_34); +} + +static void ov5_021F2FAC (UnkStruct_ov101_021D5D90 * param0, void * param1) +{ + int v0; + UnkStruct_021F2FA0 * v1; + UnkStruct_02061AB4 * v2; + + v1 = param1; + v2 = v1->unk_18.unk_18; + + if (sub_020627B4(v2, v1->unk_04, v1->unk_08, v1->unk_0C) == 0) { + ov5_021DF74C(param0); + return; + } + + if (v1->unk_14 == 0) { + VecFx32 v3, v4; + + sub_020715E4(param0, &v3); + + v4.x = (((v1->unk_18.unk_00) << 4) * FX32_ONE); + v4.z = (((v1->unk_18.unk_08) << 4) * FX32_ONE); + v4.y = v3.y; + + v1->unk_14 = sub_020644A4(v1->unk_18.unk_0C, &v4); + + if (v1->unk_14 == 1) { + v3.y = v4.y; + sub_020715D4(param0, &v3); + } + } + + switch (v1->unk_00) { + case 0: + sub_02021368(v1->unk_34, FX32_ONE); + v0 = sub_020213D4(v1->unk_34) / FX32_ONE; + + if (v0 >= 12) { + v1->unk_00 = 1; + } + break; + case 1: + sub_02021380(v1->unk_34, (12 * FX32_ONE)); + v1->unk_00 = 2; + case 2: + if (sub_020627B4(v2, v1->unk_04, v1->unk_08, v1->unk_0C) == 0) { + ov5_021DF74C(param0); + return; + } + + { + int v5, v6; + + v5 = sub_02063020(v2); + v6 = sub_02063040(v2); + + if ((v1->unk_18.unk_00 != v5) || (v1->unk_18.unk_08 != v6)) { + ov5_021DF74C(param0); + return; + } + } + break; + } +} + +static void ov5_021F308C (UnkStruct_ov101_021D5D90 * param0, void * param1) +{ + VecFx32 v0; + UnkStruct_021F2FA0 * v1; + UnkStruct_02061AB4 * v2; + + v1 = param1; + v2 = v1->unk_18.unk_18; + + if (sub_020627B4(v2, v1->unk_04, v1->unk_08, v1->unk_0C) == 0) { + ov5_021DF74C(param0); + return; + } + + sub_020715E4(param0, &v0); + sub_020212A8(v1->unk_34, &v0); +} + +static const UnkStruct_ov101_021D86B0 Unk_ov5_022004EC = { + (sizeof(UnkStruct_021F2FA0)), + ov5_021F2F0C, + ov5_021F2FA0, + ov5_021F2FAC, + ov5_021F308C +}; + +static const UnkStruct_020217F4 Unk_ov5_02200540[] = { + {0x0, 0xC, 0x0}, + {0x0, 0x0, 0x2} +}; + +static const UnkStruct_ov101_021D86B0 Unk_ov5_02200500; + +void include_unk_ov5_02200500 (void) +{ + int dummy = Unk_ov5_02200500.unk_00; +} + +static int ov5_021F30C4 (UnkStruct_ov101_021D5D90 * param0, void * param1) +{ + VecFx32 v0; + UnkStruct_021F30FC * v1; + const UnkStruct_021F30C4 * v2; + + v1 = param1; + v2 = sub_020715BC(param0); + v1->unk_08 = *v2; + + sub_020715E4(param0, &v0); + v1->unk_1C = ov5_021DF84C(v1->unk_08.unk_0C, 0, &v0); + + return 1; +} + +static void ov5_021F30FC (UnkStruct_ov101_021D5D90 * param0, void * param1) +{ + UnkStruct_021F30FC * v0; + + v0 = param1; + sub_020211FC(v0->unk_1C); +} + +static void ov5_021F3108 (UnkStruct_ov101_021D5D90 * param0, void * param1) +{ + int v0; + UnkStruct_021F30FC * v1; + + v1 = param1; + + switch (v1->unk_00) { + case 0: + sub_02021368(v1->unk_1C, FX32_ONE); + v0 = sub_020213D4(v1->unk_1C) / FX32_ONE; + + if (v0 >= 12) { + v1->unk_04 = 1; + v1->unk_00 = 1; + } + break; + case 1: + break; + } +} + +static void ov5_021F313C (UnkStruct_ov101_021D5D90 * param0, void * param1) +{ + VecFx32 v0; + UnkStruct_021F30FC * v1; + + v1 = param1; + sub_020715E4(param0, &v0); + sub_020212A8(v1->unk_1C, &v0); +} + +static const UnkStruct_ov101_021D86B0 Unk_ov5_02200500 = { + (sizeof(UnkStruct_021F30FC)), + ov5_021F30C4, + ov5_021F30FC, + ov5_021F3108, + ov5_021F313C +}; + +static const UnkStruct_ov101_021D86B0 Unk_ov5_02200514; + +static const UnkStruct_020217F4 Unk_ov5_02200558[] = { + {0x0, 0x28, 0x1}, + {0x0, 0x0, 0x2} +}; + +static const UnkStruct_020217F4 Unk_ov5_02200528[] = { + {0x0, 0x18, 0x1}, + {0x0, 0x0, 0x2} +}; + +static const UnkStruct_020217F4 Unk_ov5_02200570[] = { + {0x0, 0x28, 0x1}, + {0x0, 0x0, 0x2} +}; + +UnkStruct_ov101_021D5D90 * ov5_021F3154 (UnkStruct_0203CDB0 * param0, int param1, int param2, int param3) +{ + VecFx32 v0; + UnkStruct_021F3154 v1; + UnkStruct_ov5_021DF47C * v2; + UnkStruct_ov101_021D5D90 * v3; + + v2 = param0->unk_40; + + v1.unk_00 = param1; + v1.unk_04 = param2; + v1.unk_0C = v2; + v1.unk_08 = param0; + v1.unk_10 = ov5_021DF55C(v2, 19); + + v0.x = (((param1) << 4) * FX32_ONE) + ((((16 * FX32_ONE) >> 1))); + v0.y = 0; + v0.z = (((param2) << 4) * FX32_ONE) + (((((16 * FX32_ONE) >> 1)) + (FX32_ONE * 6) + (FX32_ONE * 4)) / 2); + + v3 = ov5_021DF72C(v2, &Unk_ov5_02200514, &v0, param3, &v1, 0xff); + return v3; +} + +int ov5_021F31A8 (UnkStruct_ov101_021D5D90 * param0) +{ + UnkStruct_021F31A8 * v0; + + v0 = sub_02071598(param0); + return v0->unk_04; +} + +static int ov5_021F31B4 (UnkStruct_ov101_021D5D90 * param0, void * param1) +{ + int v0; + VecFx32 v1; + UnkStruct_021F31A8 * v2; + const UnkStruct_021F3154 * v3; + + v2 = param1; + v3 = sub_020715BC(param0); + v2->unk_10 = *v3; + v2->unk_0C = sub_020715B4(param0); + + v1.x = (((v2->unk_10.unk_00) << 4) * FX32_ONE) + ((((16 * FX32_ONE) >> 1))); + v1.z = (((v2->unk_10.unk_04) << 4) * FX32_ONE) + (((((16 * FX32_ONE) >> 1)) + (FX32_ONE * 6) + (FX32_ONE * 4)) / 2); + + v1.y = 0; + sub_020644A4(v2->unk_10.unk_08, &v1); + v1.y += (FX32_ONE); + + sub_020715D4(param0, &v1); + + switch (v2->unk_0C) { + case 0: + v0 = 5; + break; + case 1: + v0 = 6; + break; + case 2: + default: + v0 = 7; + } + + v2->unk_24 = ov5_021DF84C(v2->unk_10.unk_0C, v0, &v1); + return 1; +} + +static void ov5_021F3238 (UnkStruct_ov101_021D5D90 * param0, void * param1) +{ + UnkStruct_021F31A8 * v0; + + v0 = param1; + sub_020211FC(v0->unk_24); +} + +static void ov5_021F3244 (UnkStruct_ov101_021D5D90 * param0, void * param1) +{ + int v0; + UnkStruct_021F31A8 * v1; + + v1 = param1; + + switch (v1->unk_00) { + case 0: + if (sub_02021368(v1->unk_24, FX32_ONE) == 1) { + v1->unk_04 = 1; + v1->unk_00++; + } + break; + case 1: + break; + } +} + +static void ov5_021F326C (UnkStruct_ov101_021D5D90 * param0, void * param1) +{ + VecFx32 v0; + UnkStruct_021F31A8 * v1; + + v1 = param1; + + sub_020715E4(param0, &v0); + sub_020212A8(v1->unk_24, &v0); +} + +static const UnkStruct_ov101_021D86B0 Unk_ov5_02200514 = { + (sizeof(UnkStruct_021F31A8)), + ov5_021F31B4, + ov5_021F3238, + ov5_021F3244, + ov5_021F326C +}; diff --git a/src/overlay005/ov5_021F5A10.c b/src/overlay005/ov5_021F5A10.c new file mode 100644 index 0000000000..968443ec4c --- /dev/null +++ b/src/overlay005/ov5_021F5A10.c @@ -0,0 +1,567 @@ +#include +#include + +#include "struct_decls/struct_020216E0_decl.h" +#include "struct_decls/struct_02061AB4_decl.h" +#include "overlay005/struct_ov5_021DF47C_decl.h" +#include "overlay101/struct_ov101_021D5D90_decl.h" + +#include "struct_defs/struct_020217F4.h" +#include "struct_defs/struct_0203CDB0.h" +#include "overlay101/struct_ov101_021D86B0.h" + +#include "unk_02005474.h" +#include "unk_02020AEC.h" +#include "unk_02061804.h" +#include "unk_020711EC.h" +#include "overlay005/ov5_021DF440.h" +#include "overlay005/ov5_021ECC20.h" +#include "overlay005/ov5_021F5A10.h" + +void include_unk_ov5_02200B98(void); + +typedef struct { + s16 unk_00; + s16 unk_02; + u8 unk_04; + u8 unk_05; + u8 unk_06; + u8 unk_07; + UnkStruct_ov5_021DF47C * unk_08; +} UnkStruct_ov5_021F5A34; + +typedef struct { + int unk_00; + UnkStruct_ov5_021DF47C * unk_04; + UnkStruct_ov5_021F5A34 * unk_08; + UnkStruct_02061AB4 * unk_0C; +} UnkStruct_ov5_021F5D8C; + +typedef struct { + int unk_00; + int unk_04; + int unk_08; + int unk_0C; + int unk_10; + int unk_14; + VecFx32 unk_18; + VecFx32 unk_24; + UnkStruct_ov5_021F5D8C unk_30; + UnkStruct_020216E0 * unk_40; +} UnkStruct_ov5_021F5C4C; + +static void ov5_021F5A34(UnkStruct_ov5_021F5A34 * param0); +static void ov5_021F5A40(UnkStruct_ov5_021F5A34 * param0); +static void ov5_021F5A58(UnkStruct_ov5_021F5A34 * param0); +static void ov5_021F5A64(UnkStruct_ov5_021F5A34 * param0); +static void ov5_021F5A7C(UnkStruct_ov5_021F5A34 * param0, int param1); +static void ov5_021F5A90(UnkStruct_ov5_021F5A34 * param0, int param1); +static void ov5_021F5AB4(UnkStruct_ov5_021F5A34 * param0); +static void ov5_021F5B00(UnkStruct_ov5_021F5A34 * param0); +static void ov5_021F5B50(UnkStruct_ov5_021F5A34 * param0); +static void ov5_021F5B80(UnkStruct_ov5_021F5A34 * param0); +static void ov5_021F5BB0(UnkStruct_ov5_021F5A34 * param0); +static void ov5_021F5BC0(UnkStruct_ov5_021F5A34 * param0); +static void ov5_021F5BD0(UnkStruct_ov5_021F5A34 * param0); +static void ov5_021F5BE0(UnkStruct_ov5_021F5A34 * param0); +static void ov5_021F5BF0(UnkStruct_ov5_021F5A34 * param0, int param1); +static void ov5_021F5C04(UnkStruct_ov5_021F5A34 * param0, int param1); +static UnkStruct_020216E0 * ov5_021F5C18(UnkStruct_ov5_021DF47C * param0, int param1, VecFx32 * param2, u32 param3); + +static const UnkStruct_ov101_021D86B0 Unk_ov5_02200B98; +static const UnkStruct_ov101_021D86B0 Unk_ov5_02200B84; +static const UnkStruct_ov101_021D86B0 Unk_ov5_02200BAC; +const UnkStruct_020217F4 Unk_ov5_02200BC0[]; + +void * ov5_021F5A10 (UnkStruct_ov5_021DF47C * param0) +{ + UnkStruct_ov5_021F5A34 * v0; + + v0 = ov5_021DF53C(param0, (sizeof(UnkStruct_ov5_021F5A34)), 0, 0); + v0->unk_08 = param0; + + return v0; +} + +void ov5_021F5A24 (void * param0) +{ + UnkStruct_ov5_021F5A34 * v0 = param0; + + ov5_021F5B50(v0); + ov5_021DF554(v0); +} + +static void ov5_021F5A34 (UnkStruct_ov5_021F5A34 * param0) +{ + param0->unk_00++; +} + +static void ov5_021F5A40 (UnkStruct_ov5_021F5A34 * param0) +{ + param0->unk_00--; + GF_ASSERT(param0->unk_00 >= 0); +} + +static void ov5_021F5A58 (UnkStruct_ov5_021F5A34 * param0) +{ + param0->unk_02++; +} + +static void ov5_021F5A64 (UnkStruct_ov5_021F5A34 * param0) +{ + param0->unk_02--; + GF_ASSERT(param0->unk_02 >= 0); +} + +static void ov5_021F5A7C (UnkStruct_ov5_021F5A34 * param0, int param1) +{ + if (param1 == 0) { + ov5_021F5A34(param0); + } else { + ov5_021F5A58(param0); + } +} + +static void ov5_021F5A90 (UnkStruct_ov5_021F5A34 * param0, int param1) +{ + if (param1 == 0) { + ov5_021F5A40(param0); + } else { + ov5_021F5A64(param0); + } +} + +void ov5_021F5AA4 (UnkStruct_0203CDB0 * param0, BOOL param1) +{ + UnkStruct_ov5_021F5A34 * v0 = ov5_021DF55C(param0->unk_40, 20); + + v0->unk_06 = (u8)param1; +} + +static void ov5_021F5AB4 (UnkStruct_ov5_021F5A34 * param0) +{ + if (param0->unk_04 == 0) { + param0->unk_04 = 1; + ov5_021DF9E0(param0->unk_08, 1, 85); + ov5_021DFA14(param0->unk_08, 1, 170); + ov5_021DFA3C(param0->unk_08, 1, 4, 1); + ov5_021DF864(param0->unk_08, 1, 1, 1, 1, 0, Unk_ov5_02200BC0); + } +} + +static void ov5_021F5B00 (UnkStruct_ov5_021F5A34 * param0) +{ + if (param0->unk_05 == 0) { + param0->unk_05 = 1; + ov5_021DF9E0(param0->unk_08, 10, 108); + ov5_021DFA14(param0->unk_08, 10, 170); + ov5_021DFA3C(param0->unk_08, 11, 13, 1); + ov5_021DF864(param0->unk_08, 12, 10, 10, 11, 0, Unk_ov5_02200BC0); + } +} + +static void ov5_021F5B50 (UnkStruct_ov5_021F5A34 * param0) +{ + if (param0->unk_04 == 1) { + param0->unk_04 = 0; + + ov5_021DFA08(param0->unk_08, 1); + ov5_021DFA30(param0->unk_08, 1); + ov5_021DFA7C(param0->unk_08, 1); + ov5_021DF9D4(param0->unk_08, 1); + } +} + +static void ov5_021F5B80 (UnkStruct_ov5_021F5A34 * param0) +{ + if (param0->unk_05 == 1) { + param0->unk_05 = 0; + + ov5_021DFA08(param0->unk_08, 10); + ov5_021DFA30(param0->unk_08, 10); + ov5_021DFA7C(param0->unk_08, 11); + ov5_021DF9D4(param0->unk_08, 12); + } +} + +static void ov5_021F5BB0 (UnkStruct_ov5_021F5A34 * param0) +{ + if (param0->unk_00 == 0) { + ov5_021F5AB4(param0); + } +} + +static void ov5_021F5BC0 (UnkStruct_ov5_021F5A34 * param0) +{ + if (param0->unk_02 == 0) { + ov5_021F5B00(param0); + } +} + +static void ov5_021F5BD0 (UnkStruct_ov5_021F5A34 * param0) +{ + if (param0->unk_00 == 0) { + ov5_021F5B50(param0); + } +} + +static void ov5_021F5BE0 (UnkStruct_ov5_021F5A34 * param0) +{ + if (param0->unk_02 == 0) { + ov5_021F5B80(param0); + } +} + +static void ov5_021F5BF0 (UnkStruct_ov5_021F5A34 * param0, int param1) +{ + if (param1 == 0) { + ov5_021F5BB0(param0); + } else { + ov5_021F5BC0(param0); + } +} + +static void ov5_021F5C04 (UnkStruct_ov5_021F5A34 * param0, int param1) +{ + if (param1 == 0) { + ov5_021F5BD0(param0); + } else { + ov5_021F5BE0(param0); + } +} + +static UnkStruct_020216E0 * ov5_021F5C18 (UnkStruct_ov5_021DF47C * param0, int param1, VecFx32 * param2, u32 param3) +{ + int v0[2] = {1, 12}; + UnkStruct_020216E0 * v1 = ov5_021DF84C(param0, v0[param1], param2); + + if (param3 == 1) { + NNSG3dResMdl * v2 = sub_020213F4(v1); + NNS_G3dMdlSetMdlFogEnableFlagAll(v2, 0); + } + + return v1; +} + +int ov5_021F5C4C (UnkStruct_ov101_021D5D90 * param0) +{ + UnkStruct_ov5_021F5C4C * v0; + + v0 = sub_02071598(param0); + return v0->unk_14; +} + +void ov5_021F5C58 (UnkStruct_ov101_021D5D90 * param0) +{ + UnkStruct_ov5_021F5C4C * v0 = sub_02071598(param0); + + v0->unk_10 = 1; + + if (v0->unk_40 != NULL) { + sub_02021320(v0->unk_40, 0); + } +} + +static int ov5_021F5C70 (UnkStruct_ov101_021D5D90 * param0, void * param1) +{ + VecFx32 v0; + UnkStruct_ov5_021F5C4C * v1; + const UnkStruct_ov5_021F5D8C * v2; + + v1 = param1; + v2 = sub_020715BC(param0); + + v1->unk_30 = *v2; + v1->unk_24.y = ((FX32_ONE * 6)); + + ov5_021F5BF0(v1->unk_30.unk_08, v1->unk_30.unk_00); + + sub_020715E4(param0, &v0); + v1->unk_40 = ov5_021F5C18(v1->unk_30.unk_04, v1->unk_30.unk_00, &v0, v1->unk_30.unk_08->unk_06); + ov5_021F5A7C(v1->unk_30.unk_08, v1->unk_30.unk_00); + + if (sub_020715B4(param0) == 1) { + sub_02005748(1501); + } + + return 1; +} + +static void ov5_021F5CD4 (UnkStruct_ov101_021D5D90 * param0, void * param1) +{ + VecFx32 v0; + UnkStruct_ov5_021F5C4C * v1 = param1; + + sub_020715E4(param0, &v0); + + switch (v1->unk_00) { + case 0: + v1->unk_18.y += v1->unk_24.y; + + if (v1->unk_18.y) { + v1->unk_24.y -= FX32_ONE * 2; + } else { + v1->unk_24.y = 0; + v1->unk_00++; + } + break; + case 1: + v1->unk_04++; + + if (v1->unk_04 >= 30) { + v1->unk_00++; + v1->unk_04 = 0; + v1->unk_14 = 1; + } + break; + case 2: + break; + } + + sub_020715D4(param0, &v0); +} + +static void ov5_021F5D38 (UnkStruct_ov101_021D5D90 * param0, void * param1) +{ + UnkStruct_ov5_021F5C4C * v0; + + v0 = param1; + + sub_020211FC(v0->unk_40); + + ov5_021F5A90(v0->unk_30.unk_08, v0->unk_30.unk_00); + ov5_021F5C04(v0->unk_30.unk_08, v0->unk_30.unk_00); +} + +static void ov5_021F5D54 (UnkStruct_ov101_021D5D90 * param0, void * param1) +{ + VecFx32 v0; + UnkStruct_ov5_021F5C4C * v1; + + v1 = param1; + + if (v1->unk_10 == 1) { + return; + } + + sub_020715E4(param0, &v0); + + v0.x += v1->unk_18.x; + v0.y += v1->unk_18.y; + v0.z += v1->unk_18.z; + + sub_020212A8(v1->unk_40, &v0); +} + +UnkStruct_ov101_021D5D90 * ov5_021F5D8C (UnkStruct_02061AB4 * param0, int param1, int param2, int param3) +{ + int v0; + UnkStruct_ov5_021F5D8C v1; + UnkStruct_ov5_021DF47C * v2; + VecFx32 v3; + UnkStruct_ov101_021D5D90 * v4; + const UnkStruct_ov101_021D86B0 * v5; + + v2 = ov5_021DF578(param0); + + v1.unk_00 = param1; + v1.unk_04 = v2; + v1.unk_08 = ov5_021DF55C(v2, 20); + v1.unk_0C = param0; + + sub_02063050(param0, &v3); + v0 = sub_02062C0C(param0) + 1; + + if (param3 == 1) { + v5 = &Unk_ov5_02200BAC; + } else { + v5 = &Unk_ov5_02200B84; + } + + v4 = ov5_021DF72C(v2, v5, &v3, param2, &v1, v0); + return v4; +} + +static int ov5_021F5DE4 (UnkStruct_ov101_021D5D90 * param0, void * param1) +{ + VecFx32 v0; + UnkStruct_ov5_021F5C4C * v1; + const UnkStruct_ov5_021F5D8C * v2; + + v1 = param1; + v2 = sub_020715BC(param0); + + v1->unk_30 = *v2; + v1->unk_08 = sub_02062910(v1->unk_30.unk_0C); + v1->unk_0C = sub_02062918(v1->unk_30.unk_0C); + v1->unk_24.y = ((FX32_ONE * 6)); + + ov5_021F5BF0(v1->unk_30.unk_08, v1->unk_30.unk_00); + + sub_020715E4(param0, &v0); + v1->unk_40 = ov5_021F5C18(v1->unk_30.unk_04, v1->unk_30.unk_00, &v0, v1->unk_30.unk_08->unk_06); + ov5_021F5A7C(v1->unk_30.unk_08, v1->unk_30.unk_00); + + if (sub_020715B4(param0) == 1) { + sub_02005748(1501); + } + + return 1; +} + +static void ov5_021F5E58 (UnkStruct_ov101_021D5D90 * param0, void * param1) +{ + UnkStruct_ov5_021F5C4C * v0; + UnkStruct_02061AB4 * v1; + VecFx32 v2; + + v0 = param1; + v1 = v0->unk_30.unk_0C; + + GF_ASSERT(sub_02062764(v1, v0->unk_08, v0->unk_0C) != 0); + ov5_021ECDA0(v1, &v2); + + v2.y += ((FX32_ONE * 32)); + v2.z += ((FX32_ONE * 1)); + + switch (v0->unk_00) { + case 0: + v0->unk_18.y += v0->unk_24.y; + + if (v0->unk_18.y) { + v0->unk_24.y -= FX32_ONE * 2; + } else { + v0->unk_24.y = 0; + v0->unk_00++; + } + break; + case 1: + v0->unk_04++; + + if (v0->unk_04 >= 30) { + v0->unk_00++; + v0->unk_04 = 0; + v0->unk_14 = 1; + } + break; + case 2: + break; + } + + sub_020715D4(param0, &v2); +} + +static int ov5_021F5EE0 (UnkStruct_ov101_021D5D90 * param0, void * param1) +{ + VecFx32 v0; + UnkStruct_ov5_021F5C4C * v1; + const UnkStruct_ov5_021F5D8C * v2; + + v1 = param1; + v2 = sub_020715BC(param0); + + v1->unk_30 = *v2; + v1->unk_08 = sub_02062910(v1->unk_30.unk_0C); + v1->unk_0C = sub_02062918(v1->unk_30.unk_0C); + v1->unk_24.y = ((FX32_ONE * 6)); + v1->unk_10 = 1; + + ov5_021F5BF0(v1->unk_30.unk_08, v1->unk_30.unk_00); + ov5_021F5A7C(v1->unk_30.unk_08, v1->unk_30.unk_00); + + return 1; +} + +static void ov5_021F5F24 (UnkStruct_ov101_021D5D90 * param0, void * param1) +{ + UnkStruct_ov5_021F5C4C * v0; + UnkStruct_02061AB4 * v1; + VecFx32 v2; + + v0 = param1; + v1 = v0->unk_30.unk_0C; + + GF_ASSERT(sub_02062764(v1, v0->unk_08, v0->unk_0C) != 0); + ov5_021ECDA0(v1, &v2); + + v2.y += ((FX32_ONE * 32)); + v2.z += ((FX32_ONE * 1)); + + switch (v0->unk_00) { + case 0: + case 1: + v0->unk_00++; + break; + case 2: + v0->unk_40 = ov5_021F5C18(v0->unk_30.unk_04, v0->unk_30.unk_00, &v2, v0->unk_30.unk_08->unk_06); + sub_02021320(v0->unk_40, 0); + v0->unk_00++; + break; + case 3: + sub_02021320(v0->unk_40, 1); + v0->unk_10 = 0; + + if (sub_020715B4(param0) == 1) { + sub_02005748(1501); + } + + v0->unk_00++; + case 4: + v0->unk_18.y += v0->unk_24.y; + + if (v0->unk_18.y) { + v0->unk_24.y -= FX32_ONE * 2; + } else { + v0->unk_24.y = 0; + v0->unk_00++; + } + break; + case 5: + v0->unk_04++; + + if (v0->unk_04 >= 30) { + v0->unk_00++; + v0->unk_04 = 0; + v0->unk_14 = 1; + } + break; + case 6: + break; + } + + sub_020715D4(param0, &v2); +} + +static const UnkStruct_ov101_021D86B0 Unk_ov5_02200B98 = { + (sizeof(UnkStruct_ov5_021F5C4C)), + ov5_021F5C70, + ov5_021F5D38, + ov5_021F5CD4, + ov5_021F5D54 +}; + +static const UnkStruct_ov101_021D86B0 Unk_ov5_02200B84 = { + (sizeof(UnkStruct_ov5_021F5C4C)), + ov5_021F5DE4, + ov5_021F5D38, + ov5_021F5E58, + ov5_021F5D54 +}; + +static const UnkStruct_ov101_021D86B0 Unk_ov5_02200BAC = { + (sizeof(UnkStruct_ov5_021F5C4C)), + ov5_021F5EE0, + ov5_021F5D38, + ov5_021F5F24, + ov5_021F5D54 +}; + +static const UnkStruct_020217F4 Unk_ov5_02200BC0[] = { + {0x0, 0x1, 0x0}, + {0x0, 0x0, 0x2} +}; + +void include_unk_ov5_02200B98 (void) +{ + int dummy = Unk_ov5_02200B98.unk_00; +} diff --git a/src/overlay005/ov5_021FAF40.c b/src/overlay005/ov5_021FAF40.c new file mode 100644 index 0000000000..f81d6a8b56 --- /dev/null +++ b/src/overlay005/ov5_021FAF40.c @@ -0,0 +1,1992 @@ +#include +#include + +#include "overlay005/const_ov5_021FD77C.h" +#include "overlay005/const_ov5_021FAF50.h" +#include "overlay005/const_ov5_021FB97C.h" +#include "overlay005/const_ov5_021FB5BC.h" +#include "overlay005/const_ov5_021FB470.h" +#include "overlay005/const_ov5_021FB484.h" +#include "overlay005/const_ov5_021FAF48.h" +#include "overlay005/const_ov5_021FB67C.h" +#include "overlay005/const_ov5_021FC194.h" +#include "overlay005/const_ov5_021FB51C.h" +#include "overlay005/const_ov5_021FC9B4.h" +#include "overlay005/const_ov5_021FAF40.h" + +#include "struct_defs/struct_020217F4.h" +#include "overlay005/struct_ov5_021EC700.h" +#include "overlay005/struct_ov5_021ECD10.h" +#include "overlay005/struct_ov5_021ED2D0.h" +#include "overlay005/struct_ov5_021EDD04.h" +#include "overlay005/struct_ov5_021FB0F0.h" +#include "overlay005/struct_ov5_021FB67C.h" +#include "overlay005/struct_ov5_021FB97C.h" + +#include "unk_020677F4.h" +#include "overlay005/ov5_021EB1A0.h" +#include "overlay005/ov5_021ECA70.h" +#include "overlay005/ov5_021ECC20.h" + +static const UnkStruct_ov5_021FB0F0 Unk_ov5_021FB0F0 = { + ov5_021EBA0C, + ov5_021EBAD0, + ov5_021EBA34, + ov5_021EBA60, + ov5_021EBA8C +}; + +static const UnkStruct_ov5_021FB0F0 Unk_ov5_021FAF88 = { + ov5_021EBA0C, + ov5_021EBF50, + ov5_021EBA34, + ov5_021EBA60, + ov5_021EBA8C +}; + +static const UnkStruct_ov5_021FB0F0 Unk_ov5_021FAF60 = { + ov5_021EBA0C, + ov5_021EC3F0, + ov5_021EBA34, + ov5_021EBA60, + ov5_021EBA8C +}; + +static const UnkStruct_ov5_021FB0F0 Unk_ov5_021FAFB0 = { + ov5_021EBA0C, + ov5_021EC454, + ov5_021EBA34, + ov5_021EBA60, + ov5_021EBA8C +}; + +static const UnkStruct_ov5_021FB0F0 Unk_ov5_021FAFEC = { + ov5_021EBA0C, + ov5_021EC4BC, + ov5_021EBA34, + ov5_021EBA60, + ov5_021EBA8C +}; + +static const UnkStruct_ov5_021FB0F0 Unk_ov5_021FB014 = { + ov5_021EBA0C, + ov5_021EC15C, + ov5_021EBA34, + ov5_021EBA60, + ov5_021EBA8C +}; + +static const UnkStruct_ov5_021FB0F0 Unk_ov5_021FB0DC = { + ov5_021EBA0C, + ov5_021EC554, + ov5_021EBA34, + ov5_021EBA60, + ov5_021EBA8C +}; + +static const UnkStruct_ov5_021FB0F0 Unk_ov5_021FB0C8 = { + ov5_021EBA0C, + ov5_021EC5C0, + ov5_021EBA34, + ov5_021EBA60, + ov5_021EBA8C +}; + +static const UnkStruct_ov5_021FB0F0 Unk_ov5_021FAFD8 = { + ov5_021EB2EC, + ov5_021EB398, + ov5_021EB314, + ov5_021EB328, + ov5_021EB354 +}; + +static const UnkStruct_ov5_021FB0F0 Unk_ov5_021FB0A0 = { + ov5_021EB2EC, + ov5_021EB40C, + ov5_021EB314, + ov5_021EB328, + ov5_021EB354 +}; + +static const UnkStruct_ov5_021FB0F0 Unk_ov5_021FB03C = { + ov5_021EB2EC, + ov5_021EB438, + ov5_021EB314, + ov5_021EB328, + ov5_021EB354 +}; + +static const UnkStruct_ov5_021FB0F0 Unk_ov5_021FB08C = { + ov5_021EB2EC, + ov5_021EB720, + ov5_021EB314, + ov5_021EB328, + ov5_021EB354 +}; + +static const UnkStruct_ov5_021FB0F0 Unk_ov5_021FB064 = { + ov5_021EB7F8, + ov5_021EB8B8, + ov5_021EB834, + ov5_021EB848, + ov5_021EB874 +}; + +static const UnkStruct_ov5_021FB0F0 Unk_ov5_021FB000 = { + ov5_021EC734, + ov5_021EC75C, + ov5_021EC760, + ov5_021EC778, + ov5_021EC790 +}; + +static const UnkStruct_ov5_021FB0F0 Unk_ov5_021FAF74 = { + sub_02067870, + sub_02067890, + sub_02067950, + sub_02067968, + sub_02067998 +}; + +static const UnkStruct_ov5_021FB0F0 Unk_ov5_021FB078 = { + ov5_021EB2EC, + ov5_021EB944, + ov5_021EB314, + ov5_021EB328, + ov5_021EB354 +}; + +static const UnkStruct_ov5_021FB0F0 Unk_ov5_021FB050 = { + ov5_021EC7B8, + ov5_021EC75C, + ov5_021EC760, + ov5_021EC778, + ov5_021EC7D0 +}; + +const UnkStruct_ov5_021FB0F0 Unk_ov5_021FB470 = { + ov5_021ECE18, + ov5_021ECE30, + ov5_021ECE34, + ov5_021ECE38, + ov5_021ECE3C +}; + +const UnkStruct_ov5_021FB0F0 Unk_ov5_021FAF9C = { + ov5_021ECA70, + ov5_021ECA90, + ov5_021ECABC, + ov5_021ECAC4, + ov5_021ECAF0 +}; + +const UnkStruct_ov5_021FB0F0 Unk_ov5_021FB0B4 = { + ov5_021ECB34, + ov5_021ECB58, + ov5_021ECB78, + ov5_021ECAC4, + ov5_021ECAF0 +}; + +const UnkStruct_ov5_021FB0F0 dummy = { + NULL, + NULL, + NULL, + NULL, + NULL +}; + +const UnkStruct_ov5_021FB0F0 Unk_ov5_021FAFC4 = { + ov5_021EC824, + ov5_021EC8EC, + ov5_021EC858, + ov5_021EC86C, + ov5_021EC898 +}; + +const UnkStruct_ov5_021FB0F0 Unk_ov5_021FB028 = { + ov5_021EC938, + ov5_021EC9E8, + ov5_021EC95C, + ov5_021EC970, + ov5_021EC9A0 +}; + +const UnkStruct_ov5_021FB97C Unk_ov5_021FB97C[] = { + { 0x0, &Unk_ov5_021FB0F0 }, + { 0x1, &Unk_ov5_021FAFD8 }, + { 0x2, &Unk_ov5_021FAFD8 }, + { 0x3, &Unk_ov5_021FAFD8 }, + { 0x4, &Unk_ov5_021FAFD8 }, + { 0x5, &Unk_ov5_021FAFD8 }, + { 0x6, &Unk_ov5_021FAFD8 }, + { 0x7, &Unk_ov5_021FAFD8 }, + { 0x8, &Unk_ov5_021FAFD8 }, + { 0x9, &Unk_ov5_021FAFD8 }, + { 0xA, &Unk_ov5_021FAFD8 }, + { 0xB, &Unk_ov5_021FAFD8 }, + { 0xC, &Unk_ov5_021FAFD8 }, + { 0xD, &Unk_ov5_021FAFD8 }, + { 0xE, &Unk_ov5_021FAFD8 }, + { 0xf, &Unk_ov5_021FAFD8 }, + { 0x10, &Unk_ov5_021FAFD8 }, + { 0x11, &Unk_ov5_021FAFD8 }, + { 0x12, &Unk_ov5_021FAFD8 }, + { 0x13, &Unk_ov5_021FAFD8 }, + { 0x14, &Unk_ov5_021FAFD8 }, + { 0x15, &Unk_ov5_021FAF88 }, + { 0x16, &Unk_ov5_021FAFD8 }, + { 0x17, &Unk_ov5_021FAFD8 }, + { 0x18, &Unk_ov5_021FAFD8 }, + { 0x19, &Unk_ov5_021FAFD8 }, + { 0x1A, &Unk_ov5_021FB08C }, + { 0x1B, &Unk_ov5_021FAFD8 }, + { 0x1C, &Unk_ov5_021FAFD8 }, + { 0x1D, &Unk_ov5_021FAFD8 }, + { 0x1E, &Unk_ov5_021FAFD8 }, + { 0x1f, &Unk_ov5_021FAFD8 }, + { 0x20, &Unk_ov5_021FAFD8 }, + { 0x21, &Unk_ov5_021FAFD8 }, + { 0x22, &Unk_ov5_021FAFD8 }, + { 0x23, &Unk_ov5_021FAFD8 }, + { 0x24, &Unk_ov5_021FAFD8 }, + { 0x25, &Unk_ov5_021FAFD8 }, + { 0x26, &Unk_ov5_021FAFD8 }, + { 0x27, &Unk_ov5_021FAFD8 }, + { 0x28, &Unk_ov5_021FAFD8 }, + { 0x29, &Unk_ov5_021FAFD8 }, + { 0x2A, &Unk_ov5_021FAFD8 }, + { 0x2B, &Unk_ov5_021FAFD8 }, + { 0x2C, &Unk_ov5_021FAFD8 }, + { 0x2D, &Unk_ov5_021FAFD8 }, + { 0x2E, &Unk_ov5_021FAFD8 }, + { 0x2f, &Unk_ov5_021FAFD8 }, + { 0x30, &Unk_ov5_021FAFD8 }, + { 0x31, &Unk_ov5_021FAFD8 }, + { 0x32, &Unk_ov5_021FAFD8 }, + { 0x33, &Unk_ov5_021FAFD8 }, + { 0x34, &Unk_ov5_021FAFD8 }, + { 0x35, &Unk_ov5_021FAFD8 }, + { 0x36, &Unk_ov5_021FAFD8 }, + { 0x37, &Unk_ov5_021FAFD8 }, + { 0x38, &Unk_ov5_021FAFD8 }, + { 0x39, &Unk_ov5_021FAFD8 }, + { 0x3A, &Unk_ov5_021FAFD8 }, + { 0x3B, &Unk_ov5_021FAFD8 }, + { 0x3C, &Unk_ov5_021FAFD8 }, + { 0x3D, &Unk_ov5_021FAFD8 }, + { 0x3E, &Unk_ov5_021FAFD8 }, + { 0x3f, &Unk_ov5_021FAFD8 }, + { 0x40, &Unk_ov5_021FAFD8 }, + { 0x41, &Unk_ov5_021FAFD8 }, + { 0x42, &Unk_ov5_021FAFD8 }, + { 0x43, &Unk_ov5_021FAFD8 }, + { 0x44, &Unk_ov5_021FAFD8 }, + { 0x45, &Unk_ov5_021FAFD8 }, + { 0x46, &Unk_ov5_021FAFD8 }, + { 0x47, &Unk_ov5_021FAFD8 }, + { 0x48, &Unk_ov5_021FAFD8 }, + { 0x49, &Unk_ov5_021FAFD8 }, + { 0x4A, &Unk_ov5_021FAFD8 }, + { 0x4B, &Unk_ov5_021FAFD8 }, + { 0x4C, &Unk_ov5_021FAFD8 }, + { 0x4D, &Unk_ov5_021FAFD8 }, + { 0x4E, &Unk_ov5_021FAFD8 }, + { 0x4f, &Unk_ov5_021FAFD8 }, + { 0x50, &Unk_ov5_021FAFD8 }, + { 0x51, &Unk_ov5_021FAFD8 }, + { 0x52, &Unk_ov5_021FAFD8 }, + { 0x53, &Unk_ov5_021FAFD8 }, + { 0x54, &Unk_ov5_021FB0A0 }, + { 0x55, &Unk_ov5_021FB0A0 }, + { 0x56, &Unk_ov5_021FB0A0 }, + { 0x57, &Unk_ov5_021FB0A0 }, + { 0x58, &Unk_ov5_021FAFD8 }, + { 0x59, &Unk_ov5_021FAFD8 }, + { 0x5A, &Unk_ov5_021FAFD8 }, + { 0x5B, &Unk_ov5_021FB000 }, + { 0x5C, &Unk_ov5_021FB000 }, + { 0x5D, &Unk_ov5_021FB000 }, + { 0x5E, &Unk_ov5_021FB000 }, + { 0x5f, &Unk_ov5_021FB000 }, + { 0x60, &Unk_ov5_021FB000 }, + { 0x61, &Unk_ov5_021FB0F0 }, + { 0x62, &Unk_ov5_021FAF88 }, + { 0x63, &Unk_ov5_021FAFD8 }, + { 0x64, &Unk_ov5_021FAF74 }, + { 0x76, &Unk_ov5_021FB050 }, + { 0x78, &Unk_ov5_021FAFD8 }, + { 0x79, &Unk_ov5_021FAFD8 }, + { 0x7A, &Unk_ov5_021FAFD8 }, + { 0x7B, &Unk_ov5_021FAFD8 }, + { 0x7C, &Unk_ov5_021FAFD8 }, + { 0x7D, &Unk_ov5_021FAFD8 }, + { 0x7E, &Unk_ov5_021FAFD8 }, + { 0x7f, &Unk_ov5_021FAFD8 }, + { 0x80, &Unk_ov5_021FAFD8 }, + { 0x81, &Unk_ov5_021FAFD8 }, + { 0x82, &Unk_ov5_021FAFD8 }, + { 0x83, &Unk_ov5_021FAFD8 }, + { 0x84, &Unk_ov5_021FAFD8 }, + { 0x85, &Unk_ov5_021FAFD8 }, + { 0x86, &Unk_ov5_021FAFD8 }, + { 0x87, &Unk_ov5_021FAFD8 }, + { 0x88, &Unk_ov5_021FAFD8 }, + { 0x89, &Unk_ov5_021FAFD8 }, + { 0x8A, &Unk_ov5_021FAFD8 }, + { 0x8B, &Unk_ov5_021FAFD8 }, + { 0x8C, &Unk_ov5_021FAFD8 }, + { 0x8D, &Unk_ov5_021FAFD8 }, + { 0x8E, &Unk_ov5_021FAFD8 }, + { 0x8f, &Unk_ov5_021FAFD8 }, + { 0x90, &Unk_ov5_021FAFD8 }, + { 0x91, &Unk_ov5_021FAFD8 }, + { 0x92, &Unk_ov5_021FAFD8 }, + { 0x93, &Unk_ov5_021FAFD8 }, + { 0x94, &Unk_ov5_021FAFD8 }, + { 0x95, &Unk_ov5_021FAFD8 }, + { 0x96, &Unk_ov5_021FAFD8 }, + { 0x97, &Unk_ov5_021FB0B4 }, + { 0x98, &Unk_ov5_021FB0B4 }, + { 0x99, &Unk_ov5_021FB0B4 }, + { 0x9A, &Unk_ov5_021FAF9C }, + { 0x9B, &Unk_ov5_021FAF9C }, + { 0x9C, &Unk_ov5_021FB03C }, + { 0x9D, &Unk_ov5_021FB03C }, + { 0x9E, &Unk_ov5_021FAFD8 }, + { 0x9f, &Unk_ov5_021FB03C }, + { 0xA0, &Unk_ov5_021FB03C }, + { 0xA1, &Unk_ov5_021FB03C }, + { 0xA2, &Unk_ov5_021FAFD8 }, + { 0xA3, &Unk_ov5_021FAFD8 }, + { 0xA4, &Unk_ov5_021FAFD8 }, + { 0xA5, &Unk_ov5_021FAFD8 }, + { 0xA6, &Unk_ov5_021FAFD8 }, + { 0xA7, &Unk_ov5_021FAFD8 }, + { 0xA8, &Unk_ov5_021FAFD8 }, + { 0xA9, &Unk_ov5_021FAFD8 }, + { 0xAA, &Unk_ov5_021FAFD8 }, + { 0xAB, &Unk_ov5_021FAFD8 }, + { 0xAC, &Unk_ov5_021FAFD8 }, + { 0xAD, &Unk_ov5_021FB078 }, + { 0xAE, &Unk_ov5_021FB0A0 }, + { 0xaf, &Unk_ov5_021FAFD8 }, + { 0xB0, &Unk_ov5_021FAFB0 }, + { 0xB1, &Unk_ov5_021FAFB0 }, + { 0xB4, &Unk_ov5_021FAFEC }, + { 0xB5, &Unk_ov5_021FAFEC }, + { 0xB2, &Unk_ov5_021FAF60 }, + { 0xB3, &Unk_ov5_021FAF60 }, + { 0xB6, &Unk_ov5_021FB0A0 }, + { 0xB7, &Unk_ov5_021FB000 }, + { 0xB8, &Unk_ov5_021FB0A0 }, + { 0xB9, &Unk_ov5_021FAFD8 }, + { 0xBA, &Unk_ov5_021FB0F0 }, + { 0xBB, &Unk_ov5_021FB0F0 }, + { 0xBC, &Unk_ov5_021FB014 }, + { 0xBD, &Unk_ov5_021FB014 }, + { 0xBE, &Unk_ov5_021FAFD8 }, + { 0xbf, &Unk_ov5_021FAFD8 }, + { 0xC0, &Unk_ov5_021FAFD8 }, + { 0xC1, &Unk_ov5_021FAFD8 }, + { 0xC2, &Unk_ov5_021FAFD8 }, + { 0xC3, &Unk_ov5_021FB064 }, + { 0xC4, &Unk_ov5_021FB0DC }, + { 0xC5, &Unk_ov5_021FB0DC }, + { 0xC6, &Unk_ov5_021FAFB0 }, + { 0xC7, &Unk_ov5_021FAFB0 }, + { 0xC8, &Unk_ov5_021FB0C8 }, + { 0xC9, &Unk_ov5_021FB0C8 }, + { 0xCA, &Unk_ov5_021FB0A0 }, + { 0xCB, &Unk_ov5_021FB0A0 }, + { 0xCC, &Unk_ov5_021FAFD8 }, + { 0xCD, &Unk_ov5_021FAFD8 }, + { 0xCE, &Unk_ov5_021FAFD8 }, + { 0xcf, &Unk_ov5_021FAFD8 }, + { 0xD0, &Unk_ov5_021FAFD8 }, + { 0xD1, &Unk_ov5_021FB000 }, + { 0xD2, &Unk_ov5_021FB0F0 }, + { 0xD3, &Unk_ov5_021FB0F0 }, + { 0xD4, &Unk_ov5_021FB0F0 }, + { 0xD5, &Unk_ov5_021FAFD8 }, + { 0xD6, &Unk_ov5_021FAFD8 }, + { 0xD7, &Unk_ov5_021FAFD8 }, + { 0xD8, &Unk_ov5_021FAFD8 }, + { 0xD9, &Unk_ov5_021FAFD8 }, + { 0xDA, &Unk_ov5_021FAFD8 }, + { 0xDB, &Unk_ov5_021FAFD8 }, + { 0xDC, &Unk_ov5_021FAFD8 }, + { 0xDD, &Unk_ov5_021FAFD8 }, + { 0xDE, &Unk_ov5_021FAFD8 }, + { 0xdf, &Unk_ov5_021FAFD8 }, + { 0xE0, &Unk_ov5_021FAFD8 }, + { 0xE1, &Unk_ov5_021FAFD8 }, + { 0xE2, &Unk_ov5_021FAFD8 }, + { 0xE3, &Unk_ov5_021FAFD8 }, + { 0xE4, &Unk_ov5_021FAFD8 }, + { 0xE5, &Unk_ov5_021FAFD8 }, + { 0xE6, &Unk_ov5_021FB03C }, + { 0xE7, &Unk_ov5_021FAFD8 }, + { 0xE8, &Unk_ov5_021FAFD8 }, + { 0xE9, &Unk_ov5_021FAFD8 }, + { 0xEA, &Unk_ov5_021FAFD8 }, + { 0xEB, &Unk_ov5_021FAFD8 }, + { 0xEC, &Unk_ov5_021FAFD8 }, + { 0xED, &Unk_ov5_021FAFD8 }, + { 0xEE, &Unk_ov5_021FAFD8 }, + { 0xef, &Unk_ov5_021FAFD8 }, + { 0xf0, &Unk_ov5_021FAFD8 }, + { 0xf1, &Unk_ov5_021FAFD8 }, + { 0xf2, &Unk_ov5_021FAFD8 }, + { 0xf3, &Unk_ov5_021FAFD8 }, + { 0xf4, &Unk_ov5_021FAFD8 }, + { 0xf5, &Unk_ov5_021FAFD8 }, + { 0xf6, &Unk_ov5_021FAFD8 }, + { 0xf7, &Unk_ov5_021FAFD8 }, + { 0xf8, &Unk_ov5_021FB0A0 }, + { 0xf9, &Unk_ov5_021FB0A0 }, + { 0xfa, &Unk_ov5_021FB0A0 }, + { 0xfb, &Unk_ov5_021FB0A0 }, + { 0xfc, &Unk_ov5_021FB0F0 }, + { 0xfd, &Unk_ov5_021FB0F0 }, + { 0xfe, &Unk_ov5_021FB0F0 }, + { 0xff, &Unk_ov5_021FB0F0 }, + { 0x100, &Unk_ov5_021FAFB0 }, + { 0x101, &Unk_ov5_021FAFB0 }, + { 0x102, &Unk_ov5_021FAF60 }, + { 0x103, &Unk_ov5_021FAF60 }, + { 0x104, &Unk_ov5_021FAFB0 }, + { 0x105, &Unk_ov5_021FAFB0 }, + { 0x106, &Unk_ov5_021FB000 }, + { 0x107, &Unk_ov5_021FB0F0 }, + { 0x108, &Unk_ov5_021FAFC4 }, + { 0x109, &Unk_ov5_021FB028 }, + { 0x10A, &Unk_ov5_021FB028 }, + { 0x10B, &Unk_ov5_021FB028 }, + { 0x10C, &Unk_ov5_021FAFB0 }, + { 0x10D, &Unk_ov5_021FAFB0 }, + { 0x10E, &Unk_ov5_021FB0DC }, + { 0x10f, &Unk_ov5_021FB0DC }, + { 0x110, &Unk_ov5_021FAFB0 }, + { 0x111, &Unk_ov5_021FAFB0 }, + { 0x112, &Unk_ov5_021FB0DC }, + { 0x113, &Unk_ov5_021FB0DC }, + { 0xffff, NULL } +}; + +const UnkStruct_ov5_021ED2D0 Unk_ov5_021FC9B4[] = { + { 0x0, 0x5A }, + { 0x1, 0x0 }, + { 0x2, 0x1 }, + { 0x3, 0x2 }, + { 0x4, 0x3 }, + { 0x5, 0x4 }, + { 0x6, 0x5 }, + { 0x7, 0x6 }, + { 0x8, 0x7 }, + { 0x9, 0x8 }, + { 0xA, 0x9 }, + { 0xB, 0xA }, + { 0xC, 0xB }, + { 0xD, 0xC }, + { 0xE, 0xD }, + { 0xf, 0xE }, + { 0x10, 0xF }, + { 0x11, 0x10 }, + { 0x12, 0x11 }, + { 0x13, 0x12 }, + { 0x14, 0x13 }, + { 0x15, 0x5C }, + { 0x16, 0x14 }, + { 0x17, 0x15 }, + { 0x18, 0x16 }, + { 0x19, 0x17 }, + { 0x1A, 0x18 }, + { 0x1B, 0x19 }, + { 0x1C, 0x1A }, + { 0x1D, 0x1B }, + { 0x1E, 0x1C }, + { 0x1f, 0x1D }, + { 0x20, 0x1E }, + { 0x21, 0x1F }, + { 0x22, 0x20 }, + { 0x23, 0x21 }, + { 0x24, 0x22 }, + { 0x25, 0x23 }, + { 0x26, 0x24 }, + { 0x27, 0x25 }, + { 0x28, 0x26 }, + { 0x29, 0x27 }, + { 0x2A, 0x28 }, + { 0x2B, 0x29 }, + { 0x2C, 0x2A }, + { 0x2D, 0x2B }, + { 0x2E, 0x2C }, + { 0x2f, 0x2D }, + { 0x30, 0x2E }, + { 0x31, 0x2F }, + { 0x32, 0x30 }, + { 0x33, 0x31 }, + { 0x34, 0x32 }, + { 0x35, 0x33 }, + { 0x36, 0x34 }, + { 0x37, 0x35 }, + { 0x38, 0x36 }, + { 0x39, 0x37 }, + { 0x3A, 0x38 }, + { 0x3B, 0x39 }, + { 0x3C, 0x3A }, + { 0x3D, 0x3B }, + { 0x3E, 0x3C }, + { 0x3f, 0x3D }, + { 0x40, 0x3E }, + { 0x41, 0x3F }, + { 0x42, 0x40 }, + { 0x43, 0x41 }, + { 0x44, 0x42 }, + { 0x45, 0x43 }, + { 0x46, 0x44 }, + { 0x47, 0x45 }, + { 0x48, 0x46 }, + { 0x49, 0x47 }, + { 0x4A, 0x48 }, + { 0x4B, 0x49 }, + { 0x4C, 0x4A }, + { 0x4D, 0x4B }, + { 0x4E, 0x4C }, + { 0x4f, 0x4D }, + { 0x50, 0x4E }, + { 0x51, 0x4F }, + { 0x52, 0x50 }, + { 0x53, 0x51 }, + { 0x54, 0x52 }, + { 0x55, 0x53 }, + { 0x56, 0x54 }, + { 0x57, 0x55 }, + { 0x58, 0x56 }, + { 0x59, 0x57 }, + { 0x5A, 0x58 }, + { 0x61, 0x5B }, + { 0x62, 0x5D }, + { 0x63, 0x5E }, + { 0x1000, 0x5F }, + { 0x1001, 0x60 }, + { 0x1002, 0x61 }, + { 0x1003, 0x62 }, + { 0x78, 0x63 }, + { 0x79, 0x64 }, + { 0x7A, 0x65 }, + { 0x7B, 0x66 }, + { 0x7C, 0x67 }, + { 0x7D, 0x68 }, + { 0x7E, 0x69 }, + { 0x7f, 0x6A }, + { 0x80, 0x6B }, + { 0x81, 0x6C }, + { 0x82, 0x6D }, + { 0x83, 0x6E }, + { 0x84, 0x6F }, + { 0x85, 0x70 }, + { 0x86, 0x71 }, + { 0x87, 0x72 }, + { 0x88, 0x73 }, + { 0x89, 0x74 }, + { 0x8A, 0x75 }, + { 0x8B, 0x76 }, + { 0x8C, 0x77 }, + { 0x8D, 0x78 }, + { 0x8E, 0x79 }, + { 0x8f, 0x7A }, + { 0x90, 0x7B }, + { 0x91, 0x7C }, + { 0x92, 0x7D }, + { 0x93, 0x7E }, + { 0x94, 0x7F }, + { 0x95, 0x80 }, + { 0x96, 0x81 }, + { 0x97, 0x82 }, + { 0x98, 0x83 }, + { 0x99, 0x84 }, + { 0x9A, 0x85 }, + { 0x9B, 0x86 }, + { 0x9C, 0x87 }, + { 0x9D, 0x88 }, + { 0x9E, 0x89 }, + { 0x9f, 0x8A }, + { 0xA0, 0x8B }, + { 0xA1, 0x8C }, + { 0xA2, 0x8D }, + { 0xA3, 0x8E }, + { 0xA4, 0x8F }, + { 0xA5, 0x90 }, + { 0xA6, 0x91 }, + { 0xA7, 0x92 }, + { 0xA8, 0x93 }, + { 0xA9, 0x94 }, + { 0xAA, 0x95 }, + { 0xAB, 0x96 }, + { 0xAC, 0x97 }, + { 0xAD, 0x98 }, + { 0xAE, 0x99 }, + { 0xaf, 0x9A }, + { 0xB0, 0x9B }, + { 0xB1, 0x9C }, + { 0xB4, 0x9D }, + { 0xB5, 0x9E }, + { 0xB2, 0x9F }, + { 0xB3, 0xA0 }, + { 0xB6, 0xA1 }, + { 0xB8, 0xA2 }, + { 0xB9, 0xA3 }, + { 0xBA, 0xA4 }, + { 0xBB, 0xA5 }, + { 0xBC, 0xA6 }, + { 0xBD, 0xA7 }, + { 0xBE, 0xA8 }, + { 0xbf, 0xA9 }, + { 0xC0, 0xAA }, + { 0x1004, 0xAB }, + { 0x1005, 0xAC }, + { 0x1006, 0xAD }, + { 0x1007, 0xAE }, + { 0x1008, 0xAF }, + { 0x1009, 0xB0 }, + { 0x100A, 0xB1 }, + { 0x100B, 0xB2 }, + { 0x100C, 0xB3 }, + { 0x100D, 0xB4 }, + { 0x100E, 0xB5 }, + { (0x1000 + 0xf), 0xB6 }, + { 0x1010, 0xB7 }, + { 0x1011, 0xB8 }, + { 0x1012, 0xB9 }, + { 0x1013, 0xBA }, + { 0x1014, 0xBB }, + { 0x1015, 0xBC }, + { 0x1016, 0xBD }, + { 0x1017, 0xBE }, + { 0x1018, 0xBF }, + { 0x1019, 0xC0 }, + { 0x101A, 0xC1 }, + { 0x101B, 0xC2 }, + { 0x101C, 0xC3 }, + { 0x101D, 0xC4 }, + { 0x101E, 0xC5 }, + { (0x1000 + 0x1f), 0xC6 }, + { 0x1020, 0xC7 }, + { 0x1021, 0xC8 }, + { 0x1022, 0xC9 }, + { 0x1023, 0xCA }, + { 0x1024, 0xCB }, + { 0x1025, 0xCC }, + { 0x1026, 0xCD }, + { 0x1027, 0xCE }, + { 0x1028, 0xCF }, + { 0x1029, 0xD0 }, + { 0x102A, 0xD1 }, + { 0x102B, 0xD2 }, + { 0x102C, 0xD3 }, + { 0x102D, 0xD4 }, + { 0x102E, 0xD5 }, + { (0x1000 + 0x2f), 0xD6 }, + { 0x1030, 0xD7 }, + { 0x1031, 0xD8 }, + { 0x1032, 0xD9 }, + { 0x1033, 0xDA }, + { 0x1034, 0xDB }, + { 0x1035, 0xDC }, + { 0x1036, 0xDD }, + { 0x1037, 0xDE }, + { 0x1038, 0xDF }, + { 0x1039, 0xE0 }, + { 0x103A, 0xE1 }, + { 0x103B, 0xE2 }, + { 0x103C, 0xE3 }, + { 0x103D, 0xE4 }, + { 0x103E, 0xE5 }, + { (0x1000 + 0x3f), 0xE6 }, + { 0x1040, 0xE7 }, + { 0x1041, 0xE8 }, + { 0x1042, 0xE9 }, + { 0x1043, 0xEA }, + { 0x1044, 0xEB }, + { 0x1045, 0xEC }, + { 0x1046, 0xED }, + { 0x1047, 0xEE }, + { 0x1048, 0xEF }, + { 0x1049, 0xF0 }, + { 0x104A, 0xF1 }, + { 0x104B, 0xF2 }, + { 0x104C, 0xF3 }, + { 0x104D, 0xF4 }, + { 0x104E, 0xF5 }, + { (0x1000 + 0x4f), 0xF6 }, + { 0x1050, 0xF7 }, + { 0x1051, 0xF8 }, + { 0x1052, 0xF9 }, + { 0x1053, 0xFA }, + { 0x1054, 0xFB }, + { 0x1055, 0xFC }, + { 0x1056, 0xFD }, + { 0x1057, 0xFE }, + { 0x1058, 0xFF }, + { 0x1059, 0x100 }, + { 0x105A, 0x101 }, + { 0x105B, 0x102 }, + { 0x105C, 0x103 }, + { 0x105D, 0x104 }, + { 0x105E, 0x105 }, + { (0x1000 + 0x5f), 0x106 }, + { 0x1060, 0x107 }, + { 0x1061, 0x108 }, + { 0x1062, 0x109 }, + { 0x1063, 0x10A }, + { 0x1064, 0x10B }, + { 0x1065, 0x10C }, + { 0x1066, 0x10D }, + { 0x1067, 0x10E }, + { 0x1068, 0x10F }, + { 0x1069, 0x110 }, + { 0x106A, 0x111 }, + { 0x106B, 0x112 }, + { 0x106C, 0x113 }, + { 0x106D, 0x114 }, + { 0x106E, 0x115 }, + { (0x1000 + 0x6f), 0x116 }, + { 0x1070, 0x117 }, + { 0x1071, 0x118 }, + { 0x1072, 0x119 }, + { 0x1073, 0x11A }, + { 0x1074, 0x11B }, + { 0x1075, 0x11C }, + { 0x1076, 0x11D }, + { 0x1077, 0x11E }, + { 0x1078, 0x11F }, + { 0x1079, 0x120 }, + { 0x107A, 0x121 }, + { 0x107B, 0x122 }, + { 0x107C, 0x123 }, + { 0x107D, 0x124 }, + { 0x107E, 0x125 }, + { (0x1000 + 0x7f), 0x126 }, + { 0x1080, 0x127 }, + { 0x1081, 0x128 }, + { 0x1082, 0x129 }, + { 0x1083, 0x12A }, + { 0x1084, 0x12B }, + { 0x1085, 0x12C }, + { 0x1086, 0x12D }, + { 0x1087, 0x12E }, + { 0x1088, 0x12F }, + { 0x1089, 0x130 }, + { 0x108A, 0x131 }, + { 0x108B, 0x132 }, + { 0x108C, 0x133 }, + { 0x108D, 0x134 }, + { 0x108E, 0x135 }, + { (0x1000 + 0x8f), 0x136 }, + { 0x1090, 0x137 }, + { 0x1091, 0x138 }, + { 0x1092, 0x139 }, + { 0x1093, 0x13A }, + { 0x1094, 0x13B }, + { 0x1095, 0x13C }, + { 0x1096, 0x13D }, + { 0x1097, 0x13E }, + { 0x1098, 0x13F }, + { 0x1099, 0x140 }, + { 0x109A, 0x141 }, + { 0x109B, 0x142 }, + { 0x109C, 0x143 }, + { 0x109D, 0x144 }, + { 0x109E, 0x145 }, + { (0x1000 + 0x9f), 0x146 }, + { 0x10A0, 0x147 }, + { 0x10A1, 0x148 }, + { 0x10A2, 0x149 }, + { 0x10A3, 0x14A }, + { 0x10A4, 0x14B }, + { 0x10A5, 0x14C }, + { 0x10A6, 0x14D }, + { 0x10A7, 0x14E }, + { 0x10A8, 0x14F }, + { 0x10A9, 0x150 }, + { 0x10AA, 0x151 }, + { 0x10AB, 0x152 }, + { 0x10AC, 0x153 }, + { 0x10AD, 0x154 }, + { 0x10AE, 0x155 }, + { (0x1000 + 0xaf), 0x156 }, + { 0x10B0, 0x157 }, + { 0x10B1, 0x158 }, + { 0x10B2, 0x159 }, + { 0x10B3, 0x15A }, + { 0x10B4, 0x15B }, + { 0x10B5, 0x15C }, + { 0x10B6, 0x15D }, + { 0x10B7, 0x15E }, + { 0x10B8, 0x15F }, + { 0x10B9, 0x160 }, + { 0x10BA, 0x161 }, + { 0x10BB, 0x162 }, + { 0x10BC, 0x163 }, + { 0x10BD, 0x164 }, + { 0x10BE, 0x165 }, + { (0x1000 + 0xbf), 0x166 }, + { 0x10C0, 0x167 }, + { 0xC1, 0x169 }, + { 0xC2, 0x168 }, + { 0xC3, 0x16A }, + { 0xC4, 0x16B }, + { 0xC5, 0x16C }, + { 0xC6, 0x16D }, + { 0xC7, 0x16E }, + { 0xC8, 0x16F }, + { 0xC9, 0x170 }, + { 0xCA, 0x171 }, + { 0xCB, 0x172 }, + { 0xCC, 0x173 }, + { 0xCD, 0x174 }, + { 0xCE, 0x175 }, + { 0xcf, 0x176 }, + { 0xD0, 0x177 }, + { 0xD2, 0x5A }, + { 0xD3, 0x5B }, + { 0xD4, 0x5A }, + { 0xD5, 0x178 }, + { 0xD6, 0x179 }, + { 0xD7, 0x17A }, + { 0xD8, 0x17B }, + { 0xD9, 0x17C }, + { 0xDA, 0x17D }, + { 0xDB, 0x17E }, + { 0xDC, 0x17F }, + { 0xDD, 0x180 }, + { 0xDE, 0x181 }, + { 0xdf, 0x182 }, + { 0xE0, 0x183 }, + { 0xE1, 0x184 }, + { 0xE2, 0x185 }, + { 0xE3, 0x186 }, + { 0xE4, 0x187 }, + { 0xE5, 0x188 }, + { 0xE6, 0x189 }, + { 0xE7, 0x18A }, + { 0xE8, 0x18B }, + { 0xE9, 0x18C }, + { 0xEA, 0x18D }, + { 0xEB, 0x18E }, + { 0xEC, 0x18F }, + { 0xED, 0x190 }, + { 0xEE, 0x191 }, + { 0xef, 0x192 }, + { 0xf0, 0x193 }, + { 0xf1, 0x194 }, + { 0xf2, 0x195 }, + { 0xf3, 0x196 }, + { 0xf4, 0x197 }, + { 0xf5, 0x198 }, + { 0xf6, 0x199 }, + { 0xf7, 0x19A }, + { 0xf8, 0x19B }, + { 0xf9, 0x19C }, + { 0xfa, 0x19D }, + { 0xfb, 0x19E }, + { 0xfc, 0x1A1 }, + { 0xfd, 0x1A2 }, + { 0xfe, 0x1A3 }, + { 0xff, 0x1A4 }, + { 0x100, 0x19F }, + { 0x101, 0x1A0 }, + { 0x102, 0x9F }, + { 0x103, 0xA0 }, + { 0x104, 0x9B }, + { 0x105, 0x9C }, + { 0x107, 0x5B }, + { 0x108, 0x83 }, + { 0x109, 0x82 }, + { 0x10A, 0x83 }, + { 0x10B, 0x84 }, + { 0x10C, 0x16D }, + { 0x10D, 0x16E }, + { 0x10E, 0x16B }, + { 0x10f, 0x16C }, + { 0x110, 0x16D }, + { 0x111, 0x16E }, + { 0x112, 0x16B }, + { 0x113, 0x16C }, + { 0xffff, 0x0 } +}; + +const UnkStruct_ov5_021ED2D0 Unk_ov5_021FB484[] = { + { 0x0, 0x1A5 }, + { 0x1, 0x1A6 }, + { 0x2, 0x1A7 }, + { 0x3, 0x1A8 }, + { 0x4, 0x1A9 }, + { 0x5, 0x1AC }, + { 0x6, 0x1B3 }, + { 0x7, 0x1B4 }, + { 0x8, 0x1B5 }, + { 0x9, 0x1A5 }, + { 0xA, 0x1B6 }, + { 0xB, 0x1B8 }, + { 0xC, 0x1B9 }, + { 0xD, 0x1BA }, + { 0xE, 0x1BB }, + { 0xf, 0x1B7 }, + { 0x10, 0x1BC }, + { 0x11, 0x1A5 }, + { 0xffff, 0x0 } +}; + +const UnkStruct_ov5_021ED2D0 Unk_ov5_021FB5BC[] = { + { 0x0, 0x1BD }, + { 0x1, 0x1BE }, + { 0x2, 0x1BF }, + { 0x3, 0x1C0 }, + { 0x4, 0x1C1 }, + { 0x5, 0x1C2 }, + { 0x6, 0x1C3 }, + { 0x7, 0x1C4 }, + { 0x8, 0x1C5 }, + { 0x9, 0x1C6 }, + { 0xA, 0x1C7 }, + { 0xB, 0x1C8 }, + { 0xC, 0x1C9 }, + { 0xD, 0x1CA }, + { 0xE, 0x1CB }, + { 0xf, 0x1CC }, + { 0x10, 0x1CD }, + { 0x11, 0x1CE }, + { 0x12, 0x1CF }, + { 0x13, 0x1D0 }, + { 0x14, 0x1D1 }, + { 0x15, 0x1D2 }, + { 0x16, 0x1D3 }, + { 0xffff, 0x0 } +}; + +static const UnkStruct_020217F4 Unk_ov5_021FB380[] = { + { 0x0, 0xF, 0x0 }, + { 0x10, 0x1F, 0x0 }, + { 0x20, 0x2F, 0x0 }, + { 0x30, 0x3F, 0x0 }, + { 0x40, 0x4F, 0x0 }, + { 0x50, 0x5F, 0x0 }, + { 0x60, 0x6F, 0x0 }, + { 0x70, 0x7F, 0x0 }, + { 0x0, 0x0, 0x2 } +}; + +static const UnkStruct_020217F4 Unk_ov5_021FB3EC[] = { + { 0x0, 0xF, 0x0 }, + { 0x10, 0x1F, 0x0 }, + { 0x20, 0x2F, 0x0 }, + { 0x30, 0x3F, 0x0 }, + { 0x40, 0x47, 0x0 }, + { 0x48, 0x4F, 0x0 }, + { 0x50, 0x53, 0x1 }, + { 0x54, 0x57, 0x1 }, + { 0x58, 0x5B, 0x1 }, + { 0x5C, 0x5F, 0x1 }, + { 0x0, 0x0, 0x2 } +}; + +static const UnkStruct_020217F4 Unk_ov5_021FB284[] = { + { 0x0, 0x2, 0x0 }, + { 0x3, 0x5, 0x0 }, + { 0x6, 0x9, 0x0 }, + { 0xA, 0xB, 0x0 }, + { 0x0, 0x0, 0x2 } +}; + +static const UnkStruct_020217F4 Unk_ov5_021FB134[] = { + { 0x0, 0xA, 0x1 }, + { 0x0, 0x0, 0x2 } +}; + +static const UnkStruct_020217F4 Unk_ov5_021FB200[] = { + { 0x0, 0xF, 0x0 }, + { 0x10, 0x1C, 0x0 }, + { 0x0, 0x0, 0x2 } +}; + +static const UnkStruct_020217F4 Unk_ov5_021FB2C0[] = { + { 0x0, 0xF, 0x0 }, + { 0x10, 0x1F, 0x0 }, + { 0x20, 0x2F, 0x0 }, + { 0x30, 0x3F, 0x0 }, + { 0x0, 0x0, 0x2 } +}; + +static const UnkStruct_020217F4 Unk_ov5_021FB338[] = { + { 0x0, 0xF, 0x0 }, + { 0x10, 0x1F, 0x0 }, + { 0x20, 0x2F, 0x0 }, + { 0x30, 0x3F, 0x0 }, + { 0x40, 0x44, 0x1 }, + { 0x0, 0x0, 0x2 } +}; + +static const UnkStruct_020217F4 Unk_ov5_021FB17C[] = { + { 0x0, 0x3C, 0x0 }, + { 0x0, 0x0, 0x2 } +}; + +static const UnkStruct_020217F4 Unk_ov5_021FB224[] = { + { 0x0, 0x7, 0x0 }, + { 0x8, 0x10, 0x0 }, + { 0x0, 0x0, 0x2 } +}; + +static const UnkStruct_020217F4 Unk_ov5_021FB1AC[] = { + { 0x0, 0x10, 0x0 }, + { 0x0, 0x0, 0x2 } +}; + +static const UnkStruct_020217F4 Unk_ov5_021FB1C4[] = { + { 0x0, 0x10, 0x0 }, + { 0x0, 0x0, 0x2 } +}; + +static const UnkStruct_020217F4 Unk_ov5_021FB2FC[] = { + { 0x0, 0xF, 0x1 }, + { 0x10, 0x1F, 0x1 }, + { 0x20, 0x2F, 0x1 }, + { 0x30, 0x40, 0x1 }, + { 0x0, 0x0, 0x2 } +}; + +static const UnkStruct_020217F4 Unk_ov5_021FB104[] = { + { 0x0, 0x20, 0x0 }, + { 0x0, 0x0, 0x2 } +}; + +static const UnkStruct_020217F4 Unk_ov5_021FB248[] = { + { 0x0, 0xB, 0x1 }, + { 0xC, 0x17, 0x1 }, + { 0x18, 0x23, 0x1 }, + { 0x24, 0x30, 0x1 }, + { 0x0, 0x0, 0x2 } +}; + +static const UnkStruct_020217F4 Unk_ov5_021FB11C[] = { + { 0x0, 0x8, 0x1 }, + { 0x0, 0x0, 0x2 } +}; + +static const UnkStruct_020217F4 Unk_ov5_021FB1DC[] = { + { 0x0, 0x14, 0x1 }, + { 0x15, 0x29, 0x1 }, + { 0x0, 0x0, 0x2 } +}; + +static const UnkStruct_020217F4 Unk_ov5_021FB14C[] = { + { 0x0, 0x14, 0x0 }, + { 0x0, 0x0, 0x2 } +}; + +static const UnkStruct_020217F4 Unk_ov5_021FB164[] = { + { 0x0, 0x13, 0x0 }, + { 0x0, 0x0, 0x2 } +}; + +static const UnkStruct_020217F4 Unk_ov5_021FB194[] = { + { 0x0, 0x3B, 0x1 }, + { 0x0, 0x0, 0x2 } +}; + +const int dummy2[] = { + 0x1, + 0x2, + 0x3, + 0x4, + 0x5, + 0x6, + 0x7, + 0x8, + 0x9, + 0xa, + 0xb, + 0xc, + 0xd, + 0xe, + 0xf, + 0x10, + 0x11, + 0x12, + 0x13, + 0x14, + 0xffff +}; + +const int Unk_ov5_021FAF50[] = { + 0x0, + 0x1, + 0x2, + 0xffff +}; + +const int Unk_ov5_021FAF48[] = { + 0x0, + 0xffff +}; + +const UnkStruct_ov5_021EDD04 Unk_ov5_021FD77C[] = { + { 0x0, 0x0, 0x1, Unk_ov5_021FB380 }, + { 0x1, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x2, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x3, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x4, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x5, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x6, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x7, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x8, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x9, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0xA, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0xB, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0xC, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0xD, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0xE, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0xf, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x10, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x11, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x12, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x13, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x14, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x15, 0x0, 0x3, Unk_ov5_021FB3EC }, + { 0x16, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x17, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x18, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x19, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x1A, 0x0, 0xB, Unk_ov5_021FB338 }, + { 0x1B, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x1C, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x1D, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x1E, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x1f, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x20, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x21, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x22, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x23, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x24, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x25, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x26, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x27, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x28, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x29, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x2A, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x2B, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x2C, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x2D, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x2E, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x2f, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x30, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x31, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x32, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x33, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x34, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x35, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x36, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x37, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x38, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x39, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x3A, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x3B, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x3C, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x3D, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x3E, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x3f, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x40, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x41, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x42, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x43, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x44, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x45, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x46, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x47, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x48, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x49, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x4A, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x4B, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x4C, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x4D, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x4E, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x4f, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x50, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x51, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x52, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x53, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x54, 0x1, 0x0, Unk_ov5_021FB2C0 }, + { 0x55, 0x2, 0x0, Unk_ov5_021FB2C0 }, + { 0x56, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x57, 0x1, 0x0, Unk_ov5_021FB2C0 }, + { 0x58, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x59, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x5A, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x61, 0x0, 0x1, Unk_ov5_021FB380 }, + { 0x62, 0x0, 0x3, Unk_ov5_021FB3EC }, + { 0x63, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x1000, 0x3, 0x2, Unk_ov5_021FB17C }, + { 0x1001, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1002, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1003, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x78, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x79, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x7A, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x7B, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x7C, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x7D, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x7E, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x7f, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x80, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x81, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x82, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x83, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x84, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x85, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x86, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x87, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x88, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x89, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x8A, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x8B, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x8C, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x8D, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x8E, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x8f, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x90, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x91, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x92, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x93, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x94, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x95, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x96, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x97, 0x0, 0x8, Unk_ov5_021FB1C4 }, + { 0x98, 0x0, 0x8, Unk_ov5_021FB1C4 }, + { 0x99, 0x0, 0x8, Unk_ov5_021FB1C4 }, + { 0x9A, 0x5, 0x8, Unk_ov5_021FB1AC }, + { 0x9B, 0x5, 0x8, Unk_ov5_021FB1AC }, + { 0x9C, 0x5, 0x10, Unk_ov5_021FB14C }, + { 0x9D, 0x0, 0x11, Unk_ov5_021FB14C }, + { 0x9E, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x9f, 0x0, 0x12, Unk_ov5_021FB14C }, + { 0xA0, 0x5, 0x13, Unk_ov5_021FB14C }, + { 0xA1, 0x0, 0x14, Unk_ov5_021FB14C }, + { 0xA2, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0xA3, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0xA4, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0xA5, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0xA6, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0xA7, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0xA8, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0xA9, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0xAA, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0xAB, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0xAC, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0xAD, 0x0, 0x7, Unk_ov5_021FB224 }, + { 0xAE, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0xaf, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0xB0, 0x0, 0x4, Unk_ov5_021FB134 }, + { 0xB1, 0x0, 0x4, Unk_ov5_021FB134 }, + { 0xB2, 0x0, 0x6, Unk_ov5_021FB284 }, + { 0xB3, 0x0, 0x6, Unk_ov5_021FB284 }, + { 0xB4, 0x0, 0x5, Unk_ov5_021FB200 }, + { 0xB5, 0x0, 0x5, Unk_ov5_021FB200 }, + { 0xB6, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0xB8, 0x5, 0x0, Unk_ov5_021FB2C0 }, + { 0xB9, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0xBA, 0x0, 0x9, Unk_ov5_021FB380 }, + { 0xBB, 0x0, 0x9, Unk_ov5_021FB380 }, + { 0xBC, 0x6, 0xA, Unk_ov5_021FB2FC }, + { 0xBD, 0x6, 0xA, Unk_ov5_021FB2FC }, + { 0xBE, 0x1, 0x0, Unk_ov5_021FB2C0 }, + { 0xbf, 0x1, 0x0, Unk_ov5_021FB2C0 }, + { 0xC0, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0x1004, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1005, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1006, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1007, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1008, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1009, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x100A, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x100B, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x100C, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x100D, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x100E, 0x4, 0x2, Unk_ov5_021FB17C }, + { (0x1000 + 0xf), 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1010, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1011, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1012, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1013, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1014, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1015, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1016, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1017, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1018, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1019, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x101A, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x101B, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x101C, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x101D, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x101E, 0x4, 0x2, Unk_ov5_021FB17C }, + { (0x1000 + 0x1f), 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1020, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1021, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1022, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1023, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1024, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1025, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1026, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1027, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1028, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1029, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x102A, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x102B, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x102C, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x102D, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x102E, 0x4, 0x2, Unk_ov5_021FB17C }, + { (0x1000 + 0x2f), 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1030, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1031, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1032, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1033, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1034, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1035, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1036, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1037, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1038, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1039, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x103A, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x103B, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x103C, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x103D, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x103E, 0x4, 0x2, Unk_ov5_021FB17C }, + { (0x1000 + 0x3f), 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1040, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1041, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1042, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1043, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1044, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1045, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1046, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1047, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1048, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1049, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x104A, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x104B, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x104C, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x104D, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x104E, 0x4, 0x2, Unk_ov5_021FB17C }, + { (0x1000 + 0x4f), 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1050, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1051, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1052, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1053, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1054, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1055, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1056, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1057, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1058, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1059, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x105A, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x105B, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x105C, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x105D, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x105E, 0x4, 0x2, Unk_ov5_021FB17C }, + { (0x1000 + 0x5f), 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1060, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1061, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1062, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1063, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1064, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1065, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1066, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1067, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1068, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1069, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x106A, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x106B, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x106C, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x106D, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x106E, 0x4, 0x2, Unk_ov5_021FB17C }, + { (0x1000 + 0x6f), 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1070, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1071, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1072, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1073, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1074, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1075, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1076, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1077, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1078, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1079, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x107A, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x107B, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x107C, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x107D, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x107E, 0x4, 0x2, Unk_ov5_021FB17C }, + { (0x1000 + 0x7f), 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1080, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1081, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1082, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1083, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1084, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1085, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1086, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1087, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1088, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1089, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x108A, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x108B, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x108C, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x108D, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x108E, 0x4, 0x2, Unk_ov5_021FB17C }, + { (0x1000 + 0x8f), 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1090, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1091, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1092, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1093, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1094, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1095, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1096, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1097, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1098, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x1099, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x109A, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x109B, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x109C, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x109D, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x109E, 0x4, 0x2, Unk_ov5_021FB17C }, + { (0x1000 + 0x9f), 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x10A0, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x10A1, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x10A2, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x10A3, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x10A4, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x10A5, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x10A6, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x10A7, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x10A8, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x10A9, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x10AA, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x10AB, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x10AC, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x10AD, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x10AE, 0x4, 0x2, Unk_ov5_021FB17C }, + { (0x1000 + 0xaf), 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x10B0, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x10B1, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x10B2, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x10B3, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x10B4, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x10B5, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x10B6, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x10B7, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x10B8, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x10B9, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x10BA, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x10BB, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x10BC, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x10BD, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x10BE, 0x4, 0x2, Unk_ov5_021FB17C }, + { (0x1000 + 0xbf), 0x4, 0x2, Unk_ov5_021FB17C }, + { 0x10C0, 0x4, 0x2, Unk_ov5_021FB17C }, + { 0xC1, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0xC2, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0xC3, 0x0, 0xC, Unk_ov5_021FB104 }, + { 0xC4, 0x0, 0xD, Unk_ov5_021FB248 }, + { 0xC5, 0x0, 0xD, Unk_ov5_021FB248 }, + { 0xC6, 0x0, 0xE, Unk_ov5_021FB11C }, + { 0xC7, 0x0, 0xE, Unk_ov5_021FB11C }, + { 0xC8, 0x0, 0xf, Unk_ov5_021FB1DC }, + { 0xC9, 0x0, 0xf, Unk_ov5_021FB1DC }, + { 0xCA, 0x7, 0x0, Unk_ov5_021FB2C0 }, + { 0xCB, 0x8, 0x0, Unk_ov5_021FB2C0 }, + { 0xCC, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0xCD, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0xCE, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0xcf, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0xD0, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0xD2, 0x9, 0x1, Unk_ov5_021FB380 }, + { 0xD3, 0x9, 0x1, Unk_ov5_021FB380 }, + { 0xD4, 0xf, 0x1, Unk_ov5_021FB380 }, + { 0xD5, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0xD6, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0xD7, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0xD8, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0xD9, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0xDA, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0xDB, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0xDC, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0xDD, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0xDE, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0xdf, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0xE0, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0xE1, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0xE2, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0xE3, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0xE4, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0xE5, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0xE6, 0xB, 0x15, Unk_ov5_021FB164 }, + { 0xE7, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0xE8, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0xE9, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0xEA, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0xEB, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0xEC, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0xED, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0xEE, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0xef, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0xf0, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0xf1, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0xf2, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0xf3, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0xf4, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0xf5, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0xf6, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0xf7, 0x0, 0x0, Unk_ov5_021FB2C0 }, + { 0xf8, 0xC, 0x0, Unk_ov5_021FB2C0 }, + { 0xf9, 0x10, 0x0, Unk_ov5_021FB2C0 }, + { 0xfa, 0xD, 0x0, Unk_ov5_021FB2C0 }, + { 0xfb, 0xE, 0x0, Unk_ov5_021FB2C0 }, + { 0xfc, 0x0, 0x1, Unk_ov5_021FB380 }, + { 0xfd, 0x0, 0x1, Unk_ov5_021FB380 }, + { 0xfe, 0x0, 0x1, Unk_ov5_021FB380 }, + { 0xff, 0x0, 0x1, Unk_ov5_021FB380 }, + { 0x100, 0x0, 0x16, Unk_ov5_021FB194 }, + { 0x101, 0x0, 0x16, Unk_ov5_021FB194 }, + { 0x102, 0xf, 0x6, Unk_ov5_021FB284 }, + { 0x103, 0xf, 0x6, Unk_ov5_021FB284 }, + { 0x104, 0xf, 0x4, Unk_ov5_021FB134 }, + { 0x105, 0xf, 0x4, Unk_ov5_021FB134 }, + { 0x107, 0xf, 0x1, Unk_ov5_021FB380 }, + { 0x108, 0x11, 0x8, Unk_ov5_021FB1C4 }, + { 0x109, 0x0, 0x8, Unk_ov5_021FB1C4 }, + { 0x10A, 0x0, 0x8, Unk_ov5_021FB1C4 }, + { 0x10B, 0x0, 0x8, Unk_ov5_021FB1C4 }, + { 0x10C, 0xf, 0xE, Unk_ov5_021FB11C }, + { 0x10D, 0xf, 0xE, Unk_ov5_021FB11C }, + { 0x10E, 0xf, 0xD, Unk_ov5_021FB248 }, + { 0x10f, 0xf, 0xD, Unk_ov5_021FB248 }, + { 0x110, 0x9, 0xE, Unk_ov5_021FB11C }, + { 0x111, 0x9, 0xE, Unk_ov5_021FB11C }, + { 0x112, 0x9, 0xD, Unk_ov5_021FB248 }, + { 0x113, 0x9, 0xD, Unk_ov5_021FB248 }, + { 0xffff, 0xffff, 0xffff, NULL } +}; + +const int Unk_ov5_021FAF40[] = { + 0x9, + 0xffff +}; + +const UnkStruct_ov5_021ECD10 Unk_ov5_021FC194[] = { + { 0x0, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x1, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x2, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x3, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x4, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x5, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x6, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x7, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x8, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x9, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0xA, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0xB, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0xC, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0xD, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0xE, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0xf, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x10, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x11, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x12, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x13, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x14, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x15, 0x1, 0x1, 0x2, 0x1, 0x0 }, + { 0x16, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x17, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x18, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x19, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x1A, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x1B, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x1C, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x1D, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x1E, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x1f, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x20, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x21, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x22, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x23, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x24, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x25, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x26, 0x1, 0x1, 0x2, 0x1, 0x0 }, + { 0x27, 0x1, 0x1, 0x2, 0x1, 0x0 }, + { 0x28, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x29, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x2A, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x2B, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x2C, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x2D, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x2E, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x2f, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x30, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x31, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x32, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x33, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x34, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x35, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x36, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x37, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x38, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x39, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x3A, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x3B, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x3C, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x3D, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x3E, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x3f, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x40, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x41, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x42, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x43, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x44, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x45, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x46, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x47, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x48, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x49, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x4A, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x4B, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x4C, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x4D, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x4E, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x4f, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x50, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x51, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x52, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x53, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x54, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x55, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x56, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x57, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x58, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x59, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x5A, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x5B, 0x2, 0x0, 0x0, 0x0, 0x0 }, + { 0x5C, 0x2, 0x0, 0x0, 0x0, 0x0 }, + { 0x5D, 0x2, 0x0, 0x0, 0x0, 0x0 }, + { 0x5E, 0x2, 0x0, 0x0, 0x0, 0x0 }, + { 0x5f, 0x2, 0x0, 0x0, 0x0, 0x0 }, + { 0x60, 0x2, 0x0, 0x0, 0x0, 0x0 }, + { 0x61, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x62, 0x1, 0x1, 0x2, 0x1, 0x0 }, + { 0x63, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x64, 0x1, 0x0, 0x0, 0x1, 0x0 }, + { 0x76, 0x2, 0x1, 0x0, 0x0, 0x0 }, + { 0x78, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x79, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x7A, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x7B, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x7C, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x7D, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x7E, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x7f, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x80, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x81, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x82, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x83, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x84, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x85, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x86, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x87, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x88, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x89, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x8A, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x8B, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x8C, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x8D, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x8E, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x8f, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x90, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x91, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x92, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x93, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x94, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x95, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x96, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x97, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x98, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x99, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x9A, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x9B, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x9C, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x9D, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x9E, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x9f, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0xA0, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0xA1, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0xA2, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0xA3, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0xA4, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0xA5, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0xA6, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0xA7, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0xA8, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0xA9, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0xAA, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0xAB, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0xAC, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0xAD, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0xAE, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0xaf, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0xB0, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0xB1, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0xB2, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0xB3, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0xB4, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0xB5, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0xB6, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0xB7, 0x2, 0x0, 0x0, 0x0, 0x0 }, + { 0xB8, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0xB9, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0xBA, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0xBB, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0xBC, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0xBD, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0xBE, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0xbf, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0xC0, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0xC1, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0xC2, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0xC3, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x2000, 0x0, 0x0, 0x0, 0x0, 0x0 }, + { 0xC4, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0xC5, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0xC6, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0xC7, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0xC8, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0xC9, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0xCA, 0x1, 0x0, 0x0, 0x0, 0x0 }, + { 0xCB, 0x1, 0x1, 0x0, 0x1, 0x0 }, + { 0xCC, 0x1, 0x1, 0x2, 0x1, 0x0 }, + { 0xCD, 0x1, 0x1, 0x2, 0x1, 0x0 }, + { 0xCE, 0x1, 0x1, 0x2, 0x1, 0x0 }, + { 0xcf, 0x1, 0x1, 0x2, 0x1, 0x0 }, + { 0xD0, 0x1, 0x1, 0x2, 0x1, 0x0 }, + { 0xD1, 0x2, 0x0, 0x0, 0x0, 0x0 }, + { 0xD2, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0xD3, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0xD4, 0x1, 0x0, 0x1, 0x1, 0x0 }, + { 0xD5, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0xD6, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0xD7, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0xD8, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0xD9, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0xDA, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0xDB, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0xDC, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0xDD, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0xDE, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0xdf, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0xE0, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0xE1, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0xE2, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0xE3, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0xE4, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0xE5, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0xE6, 0x1, 0x0, 0x1, 0x1, 0x0 }, + { 0xE7, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0xE8, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0xE9, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0xEA, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0xEB, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0xEC, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0xED, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0xEE, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0xef, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0xf0, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0xf1, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0xf2, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0xf3, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0xf4, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0xf5, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0xf6, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0xf7, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0xf8, 0x1, 0x0, 0x1, 0x1, 0x0 }, + { 0xf9, 0x1, 0x0, 0x1, 0x1, 0x0 }, + { 0xfa, 0x1, 0x1, 0x0, 0x1, 0x0 }, + { 0xfb, 0x1, 0x1, 0x0, 0x1, 0x0 }, + { 0xfc, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0xfd, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0xfe, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0xff, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x100, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x101, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x102, 0x1, 0x0, 0x0, 0x0, 0x0 }, + { 0x103, 0x1, 0x0, 0x0, 0x0, 0x0 }, + { 0x104, 0x1, 0x0, 0x0, 0x0, 0x0 }, + { 0x105, 0x1, 0x0, 0x0, 0x0, 0x0 }, + { 0x106, 0x2, 0x0, 0x0, 0x0, 0x0 }, + { 0x107, 0x1, 0x0, 0x1, 0x1, 0x0 }, + { 0x108, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x109, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x10A, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x10B, 0x1, 0x1, 0x1, 0x1, 0x0 }, + { 0x10C, 0x1, 0x0, 0x1, 0x1, 0x0 }, + { 0x10D, 0x1, 0x0, 0x1, 0x1, 0x0 }, + { 0x10E, 0x1, 0x0, 0x1, 0x1, 0x0 }, + { 0x10f, 0x1, 0x0, 0x1, 0x1, 0x0 }, + { 0x110, 0x1, 0x0, 0x1, 0x1, 0x0 }, + { 0x111, 0x1, 0x0, 0x1, 0x1, 0x0 }, + { 0x112, 0x1, 0x0, 0x1, 0x1, 0x0 }, + { 0x113, 0x1, 0x0, 0x1, 0x1, 0x0 }, + { 0xffff, 0x0, 0x0, 0x0, 0x0, 0x0 } +}; + +const UnkStruct_ov5_021FB67C Unk_ov5_021FB67C[] = { + { 0x1001, 0x1002, 0x1003 }, + { 0x1004, 0x1005, 0x1006 }, + { 0x1007, 0x1008, 0x1009 }, + { 0x100A, 0x100B, 0x100C }, + { 0x100D, 0x100E, (0x1000 + 0xf) }, + { 0x1010, 0x1011, 0x1012 }, + { 0x1013, 0x1014, 0x1015 }, + { 0x1016, 0x1017, 0x1018 }, + { 0x1019, 0x101A, 0x101B }, + { 0x101C, 0x101D, 0x101E }, + { (0x1000 + 0x1f), 0x1020, 0x1021 }, + { 0x1022, 0x1023, 0x1024 }, + { 0x1025, 0x1026, 0x1027 }, + { 0x1028, 0x1029, 0x102A }, + { 0x102B, 0x102C, 0x102D }, + { 0x102E, (0x1000 + 0x2f), 0x1030 }, + { 0x1031, 0x1032, 0x1033 }, + { 0x1034, 0x1035, 0x1036 }, + { 0x1037, 0x1038, 0x1039 }, + { 0x103A, 0x103B, 0x103C }, + { 0x103D, 0x103E, (0x1000 + 0x3f) }, + { 0x1040, 0x1041, 0x1042 }, + { 0x1043, 0x1044, 0x1045 }, + { 0x1046, 0x1047, 0x1048 }, + { 0x1049, 0x104A, 0x104B }, + { 0x104C, 0x104D, 0x104E }, + { (0x1000 + 0x4f), 0x1050, 0x1051 }, + { 0x1052, 0x1053, 0x1054 }, + { 0x1055, 0x1056, 0x1057 }, + { 0x1058, 0x1059, 0x105A }, + { 0x105B, 0x105C, 0x105D }, + { 0x105E, (0x1000 + 0x5f), 0x1060 }, + { 0x1061, 0x1062, 0x1063 }, + { 0x1064, 0x1065, 0x1066 }, + { 0x1067, 0x1068, 0x1069 }, + { 0x106A, 0x106B, 0x106C }, + { 0x106D, 0x106E, (0x1000 + 0x6f) }, + { 0x1070, 0x1071, 0x1072 }, + { 0x1073, 0x1074, 0x1075 }, + { 0x1076, 0x1077, 0x1078 }, + { 0x1079, 0x107A, 0x107B }, + { 0x107C, 0x107D, 0x107E }, + { (0x1000 + 0x7f), 0x1080, 0x1081 }, + { 0x1082, 0x1083, 0x1084 }, + { 0x1085, 0x1086, 0x1087 }, + { 0x1088, 0x1089, 0x108A }, + { 0x108B, 0x108C, 0x108D }, + { 0x108E, (0x1000 + 0x8f), 0x1090 }, + { 0x1091, 0x1092, 0x1093 }, + { 0x1094, 0x1095, 0x1096 }, + { 0x1097, 0x1098, 0x1099 }, + { 0x109A, 0x109B, 0x109C }, + { 0x109D, 0x109E, (0x1000 + 0x9f) }, + { 0x10A0, 0x10A1, 0x10A2 }, + { 0x10A3, 0x10A4, 0x10A5 }, + { 0x10A6, 0x10A7, 0x10A8 }, + { 0x10A9, 0x10AA, 0x10AB }, + { 0x10AC, 0x10AD, 0x10AE }, + { (0x1000 + 0xaf), 0x10B0, 0x10B1 }, + { 0x10B2, 0x10B3, 0x10B4 }, + { 0x10B5, 0x10B6, 0x10B7 }, + { 0x10B8, 0x10B9, 0x10BA }, + { 0x10BB, 0x10BC, 0x10BD }, + { 0x10BE, (0x1000 + 0xbf), 0x10C0 } +}; + +const UnkStruct_ov5_021EC700 Unk_ov5_021FB51C[] = { + { + 0x5B, + { + 0x0, + 0x0, + ((FX32_ONE * 6) - (FX32_ONE * 6) - (FX32_ONE * 2)) + } + }, + { + 0x5C, + { 0x0, 0x0, ((FX32_ONE * 6) - (FX32_ONE * 6) - (FX32_ONE * 2)) } + }, + { + 0x5D, + { + 0x0, + 0x0, + ((FX32_ONE * 6) - (FX32_ONE * 6) - (FX32_ONE * 2)) + } + }, + { + 0x5E, + { + 0x0, + 0x0, + ((FX32_ONE * 6) - (FX32_ONE * 6) - (FX32_ONE * 2)) + } + }, + { + 0x5f, + { + 0x0, + 0x0, + ((FX32_ONE * 6) - (FX32_ONE * 6) - (FX32_ONE * 2)) + } + }, + { + 0x60, + { + 0x0, + 0x0, + ((FX32_ONE * 6) - (FX32_ONE * 6) - (FX32_ONE * 2)) + } + }, + { + 0xB7, + { + 0x0, + 0x0, + ((FX32_ONE * 6) - (FX32_ONE * 6)) + } + }, + { + 0xD1, + { + 0x0, + 0x0, + ((FX32_ONE * 6) - (FX32_ONE * 6)) + } + }, + { + 0x106, + { + 0x0, + 0x0, + ((FX32_ONE * 6) - (FX32_ONE * 6)) + } + }, + { + 0xffff, + { + 0x0, + 0x0, + 0x0 + } + } +};